Excelの配列式と関数 - 例とガイドライン

  • これを共有
Michael Brown

このチュートリアルでは、Excelの配列式とは何か、ワークシートに正しく入力する方法、配列定数や配列関数の使用方法について学びます。

Excelの行列式は非常に強力なツールですが、使いこなすのが最も難しいものの1つです。 1つの行列式で複数の計算を実行し、何千もの通常の計算式を置き換えることができます。 それでも90%のユーザがワークシートで行列関数を使ったことがないのは、単に学習を始めるのが怖いという理由だけです。

このチュートリアルの目的は、できるだけ簡単に、そしてスムーズに習得できるようにすることです。

    Excelの配列とは何ですか?

    配列の関数や数式について説明する前に、「配列」という用語の意味を理解しておきましょう。 基本的に、配列は項目の集まりです。 項目はテキストまたは数値で、1つの行や列に存在することも、複数の行や列に存在することもできます。

    例えば、一週間の食料品リストをエクセルの配列形式にすると、次のようになります。

    {牛乳」「卵」「バター」「コーンフレーク」}。

    次に、セルA1~D1を選択し、数式バーに上記の配列の前に等号(=)を入力し、CTRL + SHIFT + ENTER を押すと、次の結果が得られます。

    今やったことは、1次元の水平配列の作成です。 ここまでは、特にひどいことはありませんよね?

    Excelの配列式とは何ですか?

    通常の数式と異なる点は、配列数式が1つの値だけでなく複数の値を処理することです。 つまり、Excelの配列数式は、配列内の個々の値をすべて評価し、数式で表された条件に従って、1つまたは複数の項目に対して複数の計算を行うのです。

    配列式は複数の値を同時に扱えるだけでなく、一度に複数の値を返すこともできます。 つまり、配列式が返す結果も配列なのです。

    配列式は、Excel 2019、Excel 2016、Excel 2013、Excel 2010、Excel 2007以下のすべてのバージョンで利用可能です。

    そして今、初めて配列式を作成するタイミングになったようです。

    Excelの配列式の簡単な例

    B列にいくつかの商品、C列にその価格があり、すべての売上の総計を計算したいとします。

    もちろん、次のような簡単な方法で、各行の小計を最初に計算することを妨げるものは何もありません。 =B2*C2 を作成し、それらの値を合計します。

    しかし、行列式を使えば、Excelが中間結果を列ではなくメモリに格納するため、余計なキー入力をせずに済みます。 つまり、必要なのは1つの行列式と2つの簡単なステップだけなのです。

    1. 空のセルを選択し、その中に次の数式を入力します。

      =sum(b2:b6*c2:c6)である。

    2. キーボードショートカットのCTRL + SHIFT + ENTERを押して、配列式を完成させます。

      これを実行すると、Microsoft Excelは数式を{curly braces}で囲みます。これは、配列数式であることを視覚的に示すものです。

      この数式は、指定した配列の各行(セルB2~C6)の値を掛け合わせ、小計を合計し、総計を出力するものである。

    何百行、何千行のデータを扱う場合、1つのセルに1つの配列式を入力するだけで、どれだけ時間を節約できるかを考えてみてください。

    なぜExcelで配列数式を使うのか?

    Excelの行列式は、高度な計算や複雑な作業を行うための最も便利なツールです。 1つの行列式で、文字通り何百もの通常の計算式を置き換えることができます。 配列式は、次のような作業に非常に適しています。

    • 特定の条件を満たす数値の合計、例えば、範囲内の最大値または最小値のN個の合計。
    • この例で示すように、1行おき、またはN行・1列おきに合計します。
    • 指定した範囲内のすべての文字または特定の文字の数を数えます。 以下は、すべての文字を数える配列式と、任意の文字を数える配列式です。

    Excelで配列の数式を入力する方法(Ctrl + Shift + Enter)

    すでにご存知のように、CTRL+SHIFT+ENTERの3キーの組み合わせは、通常の数式を配列数式に変える魔法のようなものです。

    Excelで配列の数式を入力する場合、4つの重要なポイントがあります。

    1. 数式を入力し終わり、CTRL SHIFT ENTERキーを同時に押すと、Excelは自動的に数式を{波括弧}で囲みます。 このようなセルを選択すると、数式バーに波括弧が表示されるので、そこに配列数式があることを知る手がかりになります。
    2. 数式を囲む中括弧を手動で入力することはできません。 配列の数式を完成させるには、Ctrl+Shift+Enterのショートカットを押す必要があります。
    3. 配列の数式を編集するたびに中括弧が消え、Ctrl+Shift+Enterキーを再度押して変更を保存する必要があります。
    4. Ctrl+Shift+Enterを押し忘れると、通常の数式と同じように、指定した配列の最初の値のみを処理することになります。

    Excel のすべての行列式は Ctrl + Shift + Enter を押す必要があるため、以下のように呼ばれることもあります。 CSEの計算式 .

    F9キーを使って配列式の一部を評価する

    Excel で配列式を使用する場合、関数がどのように計算し、項目(内部配列)を格納して、セルに最終結果を表示するかを観察できます。 これを行うには、関数の括弧内の 1 つまたは複数の引数を選択し、F9 キーを押します。 数式の評価モードを終了するには、Esc キーを押します。

    上の例では、全商品の小計を見るために、B2:B6*C2:C6を選択してF9キーを押すと、次のような結果が得られます。

    注意:F9 キーを押す前に、計算式の一部を選択する必要があります。そうしないと、F9 キーは計算式を単に計算値で置き換えます。

    Excelの単一セルおよび複数セル配列の計算式

    Excel の行列式は、1 つのセルまたは複数のセルの結果を返すことができます。 セルの範囲に入力された行列式は、次のように呼ばれます。 マルチセル方式 1つのセルに存在する配列数式は、以下のように呼ばれます。 たんさいぼうほう .

    Excelの配列関数には、TRANSPOSE、TREND、FREQUENCY、LINESTなど、複数セルの配列を返すように設計されているものがいくつかあります。

    SUM、AVERAGE、AGGREGATE、MAX、MINなどの他の関数は、Ctrl + Shift + Enter を使って1つのセルに入力すると、配列式を計算することができます。

    次の例は、単一セルおよび複数セルの配列式の使用方法を示しています。

    例1.単細胞の配列式

    例えば、B列とC列のように、2つの異なる月に売れた商品の数が記載されている列があり、最大の売上増加率を求めるとします。

    通常、次のような数式を使用して各製品の売上変化を計算する列、例えばD列を追加します。 =C2-B2 で、その追加列の最大値を求めます。 =MAX(D:D) .

    配列式は、中間結果を完全にメモリに格納するため、追加の列は必要ありません。 したがって、次の式を入力し、Ctrl + Shift + Enter を押すだけです。

    =max(c2:c6-b2:b6)

    例2.Excelでの複数セル配列の計算式

    先ほどのSUMの例で、各販売から10%の税金を支払わなければならず、1つの計算式で各商品の税額を計算したいとします。

    空のセルの範囲、例えばD2:D6を選択し、数式バーに次の数式を入力します。

    =b2:b6 * c2:c6 * 0.1

    Ctrl + Shift + Enter を押すと、Excel は選択した範囲の各セルに配列式のインスタンスを配置し、次のような結果が得られます。

    例3.Excelの配列関数を使って複数のセルからなる配列を返す場合

    すでに述べたように、Microsoft Excelには、複数セルの配列を扱うために特別に設計された、いわゆる「配列関数」がいくつかあります。 TRANSPOSEはそうした関数の一つで、上の表の転置、つまり行から列への変換に利用しようとするのです。

    1. 転置された表を出力したい空のセル範囲を選択します。 行を列に変換するので、元の表の列と行の数と同じ数の行と列をそれぞれ選択してください。 この例では、6列と4行を選択しています。
    2. F2キーを押して、編集モードに入ります。
    3. 数式を入力し、Ctrl + Shift + Enter キーを押します。

    この例では、計算式は次のようになります。

    =transpose($a$1:$d$6)

    このような仕上がりになります。

    Excel 2019 以前の CSE 配列式として TRANSPOSE を使用する方法です。 Dynamic Array Excel では、これは通常の式としても機能します。 Excel で転置する他の方法を学ぶには、こちらのチュートリアル:Excel で列と行を切り替える方法 を参照してください。

    マルチセル配列の数式を操作する方法

    Excel で複数セルの配列式を使用する場合、正しい結果を得るために以下のルールを必ず守ってください。

    1. 結果を出力したいセル範囲を選択する を数式で入力する。
    2. への 消す 複数のセルからなる配列数式を使用する場合は、その数式を含むすべてのセルを選択して DELETE 、または数式バーで数式全体を選択して DELETE 、さらに Ctrl + Shift + Enter キーを押してください。
    3. 行列式の個々のセルの内容を編集したり移動したりすることはできません。 また、複数セルの行列式に新しいセルを挿入したり、既存のセルを削除したりすることもできません。この操作を行うと、Microsoft Excel で " 配列の一部を変更することはできません ".
    4. への 縮む の数式を、より少ないセルに適用するには、まず既存の数式を削除してから、新しい数式を入力する必要があります。
    5. への 広げる 配列数式をより多くのセルに適用するには、現在の数式を含むすべてのセルと、数式を適用したい空のセルを選択し、F2キーを押して編集モードに切り替え、数式内の参照を調整し、Ctrl + Shift + Enterキーを押して数式を更新してください。
    6. Excelの表では、マルチセル配列の数式は使用できません。
    7. 複数のセルを持つ配列の数式は、数式が返す配列と同じサイズのセル範囲に入力する必要があります。 Excel の配列数式で選択範囲より大きな配列が作成されると、余分な値がワークシートに表示されません。 数式が返す配列が選択範囲より小さい場合、余分なセルに#N/A エラーが表示されます。

    数式が可変数の要素を持つ配列を返す可能性がある場合は、この例で示すように、数式が返す最大配列と同じかそれ以上の範囲に入力し、数式を IFERROR 関数で囲みます。

    Excelの配列定数

    Microsoft Excel では、配列定数は単純に静的な値の集合です。 これらの値は、数式を他のセルや値にコピーしても、決して変化しません。

    このチュートリアルの一番最初に、食料品リストから作成される配列定数の例をすでに見ました。 では、他の配列型がどのように存在し、どのように作成するのかを見てみましょう。

    配列定数には3種類あります。

    1.水平アレイ定数

    水平配列定数は、行に存在します。 行配列定数を作成するには、値をカンマで区切って入力し、 {1,2,3,4} のように中括弧で囲んでください。

    注意:配列定数を作成する場合は、開閉波括弧を手動で入力する必要があります。

    表計算ソフトで水平方向の配列を入力するには、行内の対応する数の空白セルを選択し、数式を入力する ={1,2,3,4} を入力し、Ctrl + Shift + Enter を押します。 結果は次のようになります。

    スクリーンショットにあるように、Excelは配列定数を別の中括弧で囲みます。これは、配列の数式を入力するときとまったく同じ動作です。

    2.垂直配列定数

    垂直方向の配列定数は、列の中に存在します。 水平方向の配列と同じように作成しますが、唯一の違いは、例えばセミコロンで項目を区切ることです。

    ={11; 22; 33; 44}

    3.二次元配列定数

    2次元の配列を作るには、各行をセミコロンで、データの各列をカンマで区切ります。

    ={"a", "b", "c"; 1, 2, 3}.

    Excel の配列定数を使用する

    配列定数は、Excelの配列計算式の基礎の一つです。 以下の情報とヒントは、最も効率的な方法でそれらを使用するのに役立つかもしれません。

    1. 配列定数の要素

      配列定数には、数値、テキスト値、ブール値(TRUEとFALSE)、エラー値を、カンマやセミコロンで区切って格納することができます。

      数値は、整数、10進数、科学的記数法で入力できます。 テキスト値を使用する場合は、Excelの数式と同様にダブルクォーテーション(")で囲んでください。

      配列定数には、他の配列、セル参照、範囲、日付、定義された名前、数式、関数を含めることはできません。

    2. 配列定数の命名

      配列定数を使いやすくするために、名前を付けます。

      • に切り替えてください。 数式タブ> 定義された名前 グループをクリックし 名前の定義 または、Ctrl + F3 キーを押しながら 新規 .
      • に名前を入力します。 名称
      • での について言及しています。 ボックスに、等号 (=) で囲まれた配列定数の項目を入力します。 たとえば、次のようになります。

        ={"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa" }.

      • OK]をクリックすると、名前を付けた配列が保存され、ウィンドウが閉じます。

      配列の定数をシートに入力するには、配列の項目数だけ行または列のセルを選択し、数式バーに配列の名前を入力し、=記号を付けて Ctrl + Shift + Enter キーを押します。

      このような結果になるはずです。

    3. エラーを未然に防ぐ

      アレイ定数が正しく動作しない場合、以下の問題がないか確認してください。

      • 配列定数の要素は、適切な文字で区切ります。水平配列定数の場合はカンマ、垂直配列定数の場合はセミコロンで区切ります。
      • 配列定数の項目数と正確に一致するセル範囲を選択。 選択したセル数が多い場合、余分な各セルに#N/Aエラーが発生。 選択したセル数が少ない場合、配列の一部分しか挿入されない。

    Excelの計算式で配列定数を使用する

    配列定数の概念を理解したところで、実際の課題を解決するために配列の情報式をどのように使用するかを見てみましょう。

    例1.範囲内の最大数/最小数の和

    まず、合計したい数だけ垂直方向の配列定数を作成します。 たとえば、範囲内の最小または最大の3つの数値を合計したい場合、配列定数は {1,2,3} となります。

    そして、LARGE関数かSMALL関数のどちらかを選び、最初のパラメータにセル全体の範囲を指定し、2番目のパラメータに配列定数を入れます。 最後に、SUM関数にこのように埋め込みます。

    最大3つの数字を合計する。 =SUM(LARGE(range, {1,2,3}))

    最小の3つの数字を合計する。 =SUM(SMALL(range, {1,2,3}))

    配列の数式を入力しているので、Ctrl + Shift + Enterを押すことを忘れないでください。

    同様の方法で、範囲内の最小値または最大値のN個の平均を計算することができます。

    上位3位の数値の平均値 =AVERAGE(LARGE(range, {1,2,3}))

    下位3つの数値の平均値。 =AVERAGE(SMALL(range, {1,2,3}))

    例2.複数の条件を持つセルをカウントする配列式

    例えば、注文のリストがあり、ある売り手がある商品を何回販売したかを知りたいとします。

    最も簡単な方法は、複数の条件を指定してCOUNTIFS式を使うことです。 しかし、多くの製品を含める場合、COUNTIFS式のサイズが大きくなりすぎることがあります。 よりコンパクトにするには、COUNTIFSとSUMを併用し、1つまたは複数の引数に配列定数を含めるなどします。

    =SUM(COUNTIFS(range1, "criteria1", range2, {"criteria1", "criteria2"})))

    実際の計算式は、次のようになるのではないでしょうか。

    =SUM(COUNTIFS(B2:B9, "sally", C2:C9, {"apples", "lemons"})))

    このサンプル配列は、デモンストレーションを目的としているため、2つの要素のみで構成されています。 実際の配列式では、Excel 2019~2007で合計文字数が8192文字(Excel 2003以下では1024文字)を超えないことと、大きな配列を処理できるコンピュータであれば、ビジネスロジックが必要とする数だけ要素を含めることができます。 お願いは、配列式の制限を参照してください。

    さらに、テーブル内の一致するすべての値の合計を求める高度な配列式の例です。配列定数を使用したSUMとVLOOKUPです。

    Excel の行列式における AND および OR 演算子

    配列演算子は、AND または OR ロジックを使用して、配列の処理方法を数式で指定します。

    • AND演算子は、アスタリスク(*)を乗算記号として、すべての条件が「真」と評価された場合に「真」を返すようにExcelに指示します。
    • OR演算子はプラス記号(+)であり、与えられた式の条件のいずれかが真と評価された場合に真を返します。

    AND演算子による配列式

    この例では、営業担当者がいる売上高の合計を求めます。 マイク そして、その製品は りんご :

    =SUM((A2:A9="Mike") * (B2:B9="Apples") * (C2:C9))

    または

    =SUM(IF(((A2:A9="Mike") * (B2:B9="Apples"))), (C2:C9))

    この式は、3つの配列の同じ位置の要素を掛け合わせています。 最初の2つの配列は、A2:A9を「Mike」、B2:B9を「Apples」と比較した結果である「真」と「偽」で表されます。 3番目の配列は、範囲C2:C9の売上番号です。 他の数学演算と同様に、掛け算によって真と偽はそれぞれ1、0になります。 そして、次のようになります。0を掛けると常に0になるので、どちらか一方または両方の条件が満たされないと、結果の配列は0になります。 両方の条件が満たされると、3番目の配列から対応する要素が最後の配列に入ります(例:1*1*C2 = 10)。 したがって、掛け算の結果は次の配列になります: {10;0;0;30;0;0;0}. 最後にSUM関数が配列の要素を合計して、結果を40で表します。

    OR演算子によるExcelの配列式

    次のOR演算子(+)を使った配列式は、販売員がマイクの場合、または製品がマイクの場合のすべての売上を集計します。 リンゴ

    =SUM(IF(((A2:A9="Mike") + (B2:B9="Apples")), (C2:C9)))

    この式では、最初の2つの配列の要素(テストしたい条件)を加算し、少なくとも1つの条件がTRUEと評価されればTRUE(>0)、すべての条件がFALSEと評価されればFALSE(0)となります。 次に、加算結果が0より大きいかどうかをIFでチェックし、0ならSUMで3番目の配列(C2:C9)の該当要素を足し合わせます。

    ヒント:最近のExcelでは、この種の作業には配列式を使う必要はありません。 単純なSUMIFS式で完全に処理できます。それでも、配列式のAND演算子やOR演算子は、より複雑なシナリオで役に立つかもしれませんし、非常に優れた頭の体操になります :)

    Excel の配列式における二重単項演算子

    Excelで配列の計算をしたことがある人は、ダッシュ(--)を含む数式をいくつか目にし、何に使うのか不思議に思ったことがあるのではないでしょうか。

    ダブルダッシュは、専門的には 二重単項演算子。 は、いくつかの式が返す非数値のブール値(TRUE / FALSE)を、配列関数が理解できる1や0に変換するために使用されます。

    次の例で理解しやすいと思います。 A列に日付のリストがあり、年に関係なく1月に発生する日付がいくつあるかを知りたいとします。

    次のような配合が効果的です。

    =SUM(--(MONTH(A2:A10)=1))

    これはExcelの配列式なので、Ctrl + Shift + Enterを押して完成させるのを忘れないようにしましょう。

    例えば、2は2月、3は3月といった具合です。 この数式をより柔軟にするには、スクリーンショットに示したように、いくつかのセルで月番号を指定することができます。

    次に、この配列式がどのように機能するかを分析してみましょう。 MONTH関数は、セルA2からA10の各日付の月を通し番号で表し、配列{2;1;4;2;12;1;2;12;1}を生成しています。

    その後、配列の各要素をセルD1の値(この例では1番)と比較します。 この比較の結果は、ブール値TRUEとFALSEの配列です。 覚えているように、配列式の特定の部分を選択してF9を押すと、その部分が何に相当するかを確認することができます。

    最後に、これらのブール値をSUM関数が理解できる1と0に変換する必要があります。 そのために必要なのが、二重単項演算子です。 最初の単項演算子は、TRUE/FALSEをそれぞれ-1/0に強制します。 二番目の単項演算子は、値を否定、つまり符号を反転させて+1や0にし、ほとんどのExcel関数が理解・処理できます。 もし、この二重単項を除去してしまうとを上記の式から求めると、うまくいきません。

    この短いチュートリアルが、Excelの行列式をマスターするためにお役に立てれば幸いです。 来週は、Excelの配列の続きとして、高度な式の例に焦点を当てます。 ご期待ください!お読みいただきありがとうございます。

    Michael Brown は、ソフトウェア ツールを使用して複雑なプロセスを簡素化することに情熱を注ぐ熱心なテクノロジー愛好家です。テクノロジー業界で 10 年以上の経験があり、Microsoft Excel と Outlook、さらに Google Sheets と Docs のスキルを磨いてきました。 Michael のブログは、彼の知識と専門知識を他の人と共有することに特化しており、生産性と効率を向上させるためのわかりやすいヒントとチュートリアルを提供しています。経験豊富なプロフェッショナルであろうと初心者であろうと、Michael のブログでは、これらの重要なソフトウェア ツールを最大限に活用するための貴重な洞察と実践的なアドバイスを提供しています。