新しいワークシート関数


Excel 2007で追加されるワークシート関数は次の通りです。

AVERAGEIF
AVERAGEIFS
COUNTIFS
CUBEKPIMEMBER
CUBEMEMBER
CUBEMEMBERPROPERTY
CUBERANKEDMEMBER
CUBESET
CUBESETCOUNT
CUBEVALUE
IFERROR
SUMIFS

CUBE~というのは、SQL Serverからデータを抽出して、ピボットテーブルを作成するときなどに使用する「キューブ」を操作するための関数です。一般的にはあまり使われないでしょう。新関数の中で注目したいのは、

AVERAGEIF
AVERAGEIFS
COUNTIFS
IFERROR
SUMIFS

です。簡単に紹介しましょう。

AVERAGEIF

今までSUMIF関数とCOUNTIF関数はありましたが、指定した条件で平均を計算するAVERAGEIF関数はありませんでした。今回、新登場です。まぁ、SUMIF/COUNTIFってやれば平均も計算できたんですけどね。Tipsがひとつ減ってしまいました(^^;

AVERAGEIFS,COUNTIFS,SUMIFS

指定した条件に一致するデータだけ計算する「○○IF」関数は、今まで条件をひとつしか指定できないという制限がありました。新しいExcel 2007では「○○IF」関数に複数条件を指定できる「○○IFS」関数が追加されました。

ここでは、SUMIFS関数を例にして使い方をご紹介しましょう。

最初の引数には、条件に一致したとき合計する数値が入力されているセル範囲を指定します。上図ではセル範囲C2:C10です。条件は「条件が入力されているセル範囲」と「条件」を対にして指定します。ここでは「セル範囲A2:A10(名前)」が「田中である」と、「セル範囲B2:B10(住所)」が「横浜である」という2つの条件を指定しました。該当するセルはC2とC8なので、計算結果は「846」となります。

注意しなければならないのは、指定した複数の条件はAND指定(かつ)となることです。「名前が"田中"または"鈴木"」という条件指定はできません。そりゃそうです。それなら従来のSUMIF関数を2つ使えばいいんですから。そうではなく「名前が"田中"かつ住所が"横浜"」という条件で計算ができます。関数の引数を見る限り、指定できる条件の数に制限はないように思います。

SUMIFS関数の引数は次の通りです。

SUMIFS(合計対象範囲,条件範囲1,条件1,[条件範囲2,条件2],[条件範囲3,条件3]...)

IFERROR

個人的に大注目なのは、このIFERROR関数です。たとえばVLOOKUP関数を使うとき、検索値のセルが空欄だったり、検索値が見つからなかったときなどにVLOOKUP関数はエラーになります。そこで今までは

  =IF(ISERROR(VLOOKUP(…)),"",VLOOKUP(…))

のように、IF関数とISERROR関数を組み合わせてエラーを表示しないようにしてきました。IFERROR関数はその名の通り、このIF関数とISERROR関数を組み合わせた関数です。引数は次の通り。

IFERROR(値,エラーの場合の値)

さっきの「=IF(ISERROR(VLOOKUP(…)),"",VLOOKUP(…))」は次のように書けます。

  =IFERROR(VLOOKUP(…),"")

VLOOKUP関数が正常に計算されるときはその値を返し、VLOOKUP関数がエラーになる場合は2番目の引数に指定した式を実行します。IFERROR関数自体はエラーにならないところがポイントです。

上図のセルE2には=IFERROR(VLOOKUP(D2,$A$2:$B$7,2,FALSE),"エラー")という式を入力し、セル範囲E3:E5にコピーしました。セルD3は空欄ですからVLOOKUP関数はエラーになります。また、VLOOKUP関数の第4引数にFALSEを指定して完全一致にしていますので、セルD4の「1006」は見つからずエラーになります。

Excelに実用的な新ワークシート関数が追加されるのは、SUMIF関数などが登場したExcel 2000以来です。新しいSUMIFS関数とIFERROR関数は、Excelの使い方を大きく変える可能性を秘めた関数です。