Excelでセルから必要な値を抜出す

「サーバに搭載されているメモリ容量をまとめてください」と依頼した場合、下記のようなフォーマットで回答が来たと仮定します。
ちなみに本サイトでは問題や課題の解決を最優先に考えていますので、各関数などについての説明は割愛します。個人的には解決できれば、とりあえずはコピペでもいいとも思っています。すべては模倣から始まり最終的に理解が必要な壁にあたった場合にはガッツリとロジックがまとまった情報を収集してください。

本来A列にはサーバ名などが記載されて来ると思いますが、メモリのみ列として見てください。サンプルは3行ですが、何百行や何千行になると手動で入力するのは大変な作業です。その場合、依頼を受けた作業者は手入力しているのかしれません。

本来ですと上のフォーマットの方がSUMで合計したり、特定のメモリ容量を搭載したサーバの台数をカウントしたりする場合には便利です。この為B列でメモリの数数値だけ抜出してみると合計(SUM関数)は0になってしまいます。
視覚としては数値なのですが、属性は文字列なので合計は0になります。使用した関数は以下になります。セルのプロパティを数値にしても思うようにならないことがあります。

=LEFT(A2,FIND("GB",A2)-1)

こんな場合には=LEFT(A2,FIND(“GB”,A2)-1)に1を乗じれば、数値化します。

=LEFT(A2,FIND("GB",A2)-1)*1

さらに下記のフォーマットが来る場合も少なくありません。

先程のやり方ですとエラーになりますので、合計もエラーです。

こんな場合には、もとのLEFT関数をIFとISERRORで囲むことにうまくいきます。

=IF(ISERROR(LEFT(A2,FIND("GB",A2)-1)*1),0,LEFT(A2,FIND("GB",A2)-1)*1)

Webサーバのログファイルから応答時間を抜き出して平均値を計算するなど応用できるケースは色々とあるかと思います。

まとめると、「Excelでもデータ型は前もって決めておく」と言うことになります。

ご参考まで。

関連記事

TOP