web-dev-qa-db-ja.com

indexhtmlから返されたテキストを切り捨てます

スプレッドシートを作成するのは初めてです。私は自分がプレイするゲーム用に作っています。 API呼び出しを使用して、ゲーム交換WebサイトからJSONデータを返し、ほぼリアルタイムで価格を更新しようとしています。ただし、後で他のセルで数値を操作するために、関数の戻り値をintにフォーマットする方法がわかりません。 enter image description here

EDIT以下のセル式。

=Index(ImportHtml(CONCAT("http://services.runescape.com/m=itemdb_oldschool/results.ws?query=", encode(B8)), "table", 1),O9,3)*1

編集

Error Function MULTIPLY parameter 1 expects number values. But '37.8k' is a text and cannot be coerced to a number.

あなたが見ることができるように、私はルーンエスケープをプレイするゲーム。 10k 100k 1m 2bの非標準の増分があります。そして、私に返されるものに応じて何とかできるようにしたいです(k、m、b)、価格に一致するようにそれぞれ数値を掛けます。これを行う方法をどこから探し始めたらいいのかわかりませんか?

2
bannji
=iferror(value(A1), if(right(A1)="k", left(A1, len(A1)-1)*1000, if(right(A1)="m", left(A1, len(A1)-1)*1000000, if(right(A1)="b", left(A1, len(A1)-1)*1000000000, "Unexpected Value"))))

これにより、A1の内容がチェックされ、それに関連付けられた数値が返されます。

まず、社内の方法を使用してA1を数値に変換しようとしてエラーが発生するかどうかを確認します。そうでない場合は、単にその結果を返します。これは、1000未満のすべての数値を処理します。

次に、右端の文字がkかどうかを確認します。そうである場合、その文字を削除し、残りの文字列に1000を掛けます。

文字がkでない場合、mかどうかを確認します。そうである場合、その文字を削除し、残りの文字列に1000000を掛けます。

文字がmでない場合は、bであるかどうかを確認し、数字がある場合は同様に(今回は1000000000で)削除して乗算します。

最後に、値がまだ数値ではなく、k、m、またはbで終わっていなかった場合、「Unexpected Value」という文字列が表示され、問題を警告します。

1
Emmabee