GoogleスプレッドシートでSUM関数の結果が0になるので対処した話
自分用の備忘。Google検索で引っかかって、ここにたどり着いた人の役に立てば嬉しいです。
事象
確定申告用に仮想通貨取引所から履歴を取得してGoogleスプレッドシートで計算していたらSUM関数の結果が0になった。
ググっても「表示形式を数字にすればよいのでは?」という役に立たないアドバイスしかなかったので対処する。
原因
取引所の履歴は数字に単位(USD、JPY、BTC、XBT…etc)がつくのでそれを取り除くためにLEFT関数等を使っていた。
「0.00252869 XBT」というセルの「 XBT」4文字(半角スペース含む)を削るために
=(LEFT(A1,len(A1)-4)"
というような記述をしていた。
そのため内部的に数字ではなく文字列として扱われていた。
他にも似たような文字列を操作する関数等を使うと同じような事象が発生すると思われる。
”+”や"-"といった四則演算を噛ませば自動的に数字と判断して計算してくれるが、SUM関数だと文字列と判断され「0」として計算される。
画面上部のツールバーから表示形式を数字等に変えても表面的な書式しか変わらないので意味がない。
対応
VALUE関数を使って無理やり数字に変換する。普通に考えれば型変換すればいいじゃんという簡単な話だった。
上図の右側Q列が失敗したケース。
左側P列がVALUE関数で数字に変換したケース。
それぞれのセルの中身をS列とT列に明記する。
数字が左寄せになっていたら文字列として扱われているケースを疑ってください。
参考用の公式ドキュメント
↓
support.google.com
以上です。