設定

LibreOffice Calcで余計な文字が入ったデータを数値に戻す

他人から「データの合計を計算して」と表計算のファイルを渡されたとしましょう。

SUM関数でやればいいね、楽勝!と思っていたら、ファイルがこのような感じだった場合どうするか。

入力者のコンピュータリテラシーやこのデータを出力したであろうアプリケーションの設計やバリデーション機能への憤りは抑えて対処を考えてみます。

対処

一番大きな問題はテキストデータとなってしまっている点です。

特に単位記号である「円」を含んでいる点が数値処理の障害になっています。これを削除しましょう。

SUBSTITUTE関数を使うと文字の変換を行うことができます。これを利用して円を削除しましょう。

一つ隣に列を追加して

=SUBSTITUTE(G4,"円",""))Code language: JavaScript (javascript)

これで円記号は削除されます。(G4はセルIDなので適切なものを指定しましょう)

しかし、まだテキストデータのままなので更にVALUE関数で数値化する必要があります。これで全角に対処します。

=VALUE(SUBSTITUTE(G4,"円",""))Code language: JavaScript (javascript)

これですべて数値になりました。SUM関数も動作するようになりました。

Excelでも同様手順で対処できるらしい(未確認)

おまけ

VALUE関数を使わずに、

=SUBSTITUTE(G4,"円","")+0Code language: JavaScript (javascript)
=SUBSTITUTE(G4,"円","")*1Code language: JavaScript (javascript)

も動作します。

数値計算することでアップコンバートするらしい。

でも、素直にVALUE関数で処理したほうがいいでしょう。

その他、テキストデータの対処はこちら

参考

https://ask.libreoffice.org/t/topic/63239

円 という文字を含んだテキストを数値として扱いたい。

はじめまして。 クレジットカードの利用履歴を、Calc 上で管理したいと思い、クレジットカード会社の利用履歴(HTMLです。)を、コピペして、Calc のシートに貼り付けました。 貼り付け自体は、上手く処理してくれたのですが、肝心の利用額の部分(ex 315円 というテキスト)を、数値としてセルが認識してくれません。 セルの書式でユーザー定義として、「#,###円」というものを追加してみたのですが、数値としては扱ってくれませんでした。この様な場合の対処方法を教えてください。

管理人

Recent Posts

情報セキュリティマネジメント試験取得への道

スキルアップを図るべく情報セキ…

2か月 ago

ファイナンシャルプランナー3級試験取得への道

スキルアップを図るべくファイナ…

2か月 ago

[rust] New Type Patternを使ってみる

DDDの考えを取り入れることで…

5か月 ago

RustでDDDの要素を取り入れてみる

前回SOLID原則というものを…

5か月 ago

期間限定!書籍無料キャンペーン2025

「mdBookではじめるKin…

5か月 ago