私は Excel 初心者で、この問題を解決するために時間を費やしましたが、最終的には諦めました。誰かが答えをくれると非常にありがたいです。
数値のように見えるセルを含むデータセットがありますが、それらの「数値」では計算ができません。Google で検索したところ、それらの数値のように見えるセルは実際にはおそらく「テキスト」であることがわかりました (一部のプログラミング言語では何らかの文字列形式であると思われます)。
その後、数字のように見えるテキストを実数に変換する方法をいくつか見つけました。「テキストを列に分割」アプローチも失敗し、「形式を選択して貼り付け」アプローチも失敗しました。
どうやら、2 つの問題が組み合わさっているようです。1 つは、これらのセルが実際にはテキストであること、もう 1 つは、これらのセルの数字が空白で終わっていることです。そのことを説明する前に、この問題を解決するための私の取り組みについてもう少し説明させてください。また、組み込み関数 VALUE() を使用して、テキストを数値に変換できることもわかりました。試してみましたが失敗しました。その後、これらの数字のようなテキストの最後に空白が付いていることに気付きました。そこで、組み込み関数 TRIM() を使用して、数字のようなセルごとに空白で終わらずに新しいタブを取得しました。
しかし、空白を削除するために TRIM() 関数をすでに使用した新しいタブで =VALUE(B3) を使用した場合、依然としてエラーが発生しました。私の試行が失敗した理由と、グーグルで見つけたアプローチ (「特殊貼り付け」と「テキストを列に」) も失敗した理由を説明していただけますか?
私もこの投稿に従おうとしましたが、失敗しました... https://stackoverflow.com/questions/2741991/テキストを数字に変換する方法 どのような助けでも大歓迎です、ありがとう!
答え1
特にテキストのソースがHTML文書(ウェブページ)である場合によくある問題は、NBSP文字です。これは次のように削除できます。
=substitute(b3,char(160),"")
答え2
より一般的な解決策としては、すべての数字文字を抽出し、Excel が最初から結果を数字として扱うようにすることです。次の数式は、「0-9」、「-」、「.」のみを抽出しますが、他の文字を追加したり削除したりする方法は非常に明白です。
=VALUE(TEXTJOIN("",TRUE,IFERROR(UNICHAR(((UNICODE(MID(A1,SEQUENCE(1,LEN(A1)),1))<>47)*(UNICODE(MID(A1,SEQUENCE(1,LEN(A1)),1))>44)*(UNICODE(MID(A1,SEQUENCE(1,LEN(A1)),1))<58)*1)*UNICODE(MID(A1,SEQUENCE(1,LEN(A1)),1))),"")))
したがって、データ ソースがデータの書式設定に使用した、リストしにくい大量のスペースや「改行不可」スペース、またはその他の文字のどれであっても、また、データを有用な形式に抽出することを困難にするために使用された可能性さえある他の文字であっても、数式を使用してセルに抽出されるのは数字の「0 ~ 9」、負の符号、および小数点のみであり (または、出力を直接使用する数式に)、それが何であっても、それ以上問題になることはありません。
これにアプローチする「通常の方法」は 6 つあり、どうやら上記の方法が投稿者にとってはうまく機能したようですが、少なくとも経験上、使用されている文字は 12 個は知っています。ただし、リストを保持していないため、断片的な方法で毎回新しい戦いになります。さらに、これは、およびがF2-Edit-Enter
機能Paste|Special|Multiply (by 1)
しない状況を超えています... 機能するはずですが、どうやら Excel には、ユーザーが編集できない HIDDEN 書式設定文字が時々あるようです。問題ではありません。それらも残されます。