文字列型数値をSUMやAVERAGE関数で集計する

エクセルにおいて、文字列型数値は集計関数の集計対象になりません。
文字列型数値を「SUM・MAX・AVERAGE・MIN・COUNT…」といった集計関数で直接取り扱うことはできず、「0」という結果が返ります。

たとえば以下の表において
=SUM(C3:C10)
は「0」になります。セルC3:C10には「表示形式:文字列」が適用してあります。

ただし下図のように四則演算は可能です。セルE3に
=C3+C4+C5+C6+C7+C8+C9+C10
の式をセットすれば適切な計算結果を得ることができます(セルE3は「表示形式:文字列」に)。
ただしこの方法は面倒ですね。何とかSUM関数が使えるように加工しましょう。

文字列型数値は、VALUE関数で標準の数値に変換すれば、集計関数で取り扱うことができます。
ただしVALUE関数は1つの文字列しか数値に変換できません。
無理に使おうとすれば以下のようになります。
=SUM(VALUE(C3),VALUE(C4),VALUE(C5),VALUE(C6),VALUE(C7),VALUE(C8),VALUE(C9),VALUE(C10))

VALUE関数は1つのセルのみでしか処理できません。
しかし集計関数内で利用する際に限り複数の値を同時処理させることができます。
すなわち
=SUM(VALUE(C3:C10))
のような処理です。

ただし標準では、VALUE関数の引数に複数の値を指定しても最初の値しか処理されません。
したがって上記の数式の計算結果は「54793」となってしまいます。
「VALUE(C3)」のみしか集計対象にならないからです。
しかしSUMやAVERAGEのような集計関数の内部で「VALUE(C3:C10)」を
VALUE(C3),
VALUE(C4),
VALUE(C5),
VALUE(C6),
VALUE(C7),
VALUE(C8),
VALUE(C9),
VALUE(C10)
のように認識させる手法が用意されています。
確定時に「{Ctrl}キーと{Shift}キーを押しながら{Enter}」を使うのです。

すると「配列数式」として処理され、「VALUE(C3:C10)」が上記のように展開された状態で集計されます。

下図ではセルE6に「=SUM(VALUE(C3:C10))」を作成しましたが、確定時には「{Ctrl}キーと{Shift}キーを押しながら{Enter}」を使いました。

数式バーをチェックすると数式が{}で囲まれたことがわかります。
この状態(配列数式)では、本来1つのセルしか処理できない関数部が、展開して処理されると考えてください。
{Ctrl}キーと{Shift}キーを押しながら{Enter}で確定」を使えば、集計関数の引数に1つのセルしか処理できない関数を「範囲」に対して処理できるように命令できるのです。

参考エクセルファイル:文字列型数値をSUMやAVERAGE関数で集計する

コメント