Googleスプレッドシートの整数を解析するにはどうすればよいですか?


16

GoogleスプレッドシートのparseInt()(JS)またはintval()(PHP)と同等のものは何ですか?

別のセルの行の数値の合計を計算したい。私が持っていたのであれば3 cups5 cups行に、私はなるだろう18


4
「3カップ」と「15カップ」という意味ですか、それとも何か不足していますか?
jonsca

回答:


15

このようなものを実装する1つの方法は

=VALUE(INDEX(FILTER(SPLIT(A1, " "), ISNUMBER(SPLIT(A1, " "))); 1; 1))

いくつかのサンプル文字列に対するこの式の結果を以下に示します。

ここに画像の説明を入力してください

個々のニーズに合わせてこれを変更する必要がある場合があります。「3カップ」のような単純な文字列に対しては、かなりうまく機能するはずです。

  • SPLIT(..., " ")文字列をスペースで区切られた部分に分割します。文字列にさらに文字を追加できます。たとえば" -/"、それらの文字が見つかったときにいつでも分割できます。

  • ISNUMBER 文字列が数字かどうかをチェックします。

  • FILTER 配列を取得し、2番目の関数を満たさないすべてのものを除外します。つまり、数値以外のすべてを除外します。

  • INDEX(...; 1; 1) は、配列の最初の行、最初の列に値を返します(したがって、リストされているすべての数値ではなく、最初の数値のみが取得されます)。

  • VALUE おそらく必要ありませんが、適切な測定のために、最終的な文字列を数値に変換します。


2
答えはVALUE
ユリアンオノフレイ

@IulianOnofreiいいえ、VALUE答えで与えたすべての入力例でエラー(「数値に解析できません」)が発生します。
6005

1
申し訳ありませんが、これはVALUEOPの最初の質問に対する答えであり、タイトルでもあります。
ユリアンオノフレイ

@IulianOnofrei私はJavaScriptを知りませんが、それはOPの質問を理解する方法ではありません。
6005

3

カップを含むセルで機能する別の代替手段

= ArrayFormula(SUM(INT(LEFT(B1:B2、FIND( ""、B1:B2)))))


1

正規表現の良い使用のようです。例えば:

WA57716の例

E2の式は次のとおりです。

="="&join("+",ArrayFormula(regexreplace(B2:D2,"\D","")))

これは、すべての非数値をストリップで結果を連結+し、前に付加=

値をコピー/貼り付け/貼り付けだけで、たとえばF2(E2の場合もあります)に置き換え=てから、置換し=ます。

登録しよう
REGEXREPLACEを

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.