関数で複数データを取り出す:Excel関数の技• 関数で複数データを取り出す• VLOOKUP関数で検索条件と一致したデータを取り出すことができますが、一致するデータが複数あるときには先頭だけしか取り出せません。 などの機能を使えばよいのですが操作が分からない人も使うので、関数で取り出したいというケースがあります。 そのようなケースではどのようにしたら良いか・・・ということについて書いてみます。 スポンサードリンク 作業列を使って複数データを取り出す サンプルデータ• ある条件と合致するデータを 複数 取り出したい・・・という時の考え方の例です。 下表のようなデータで、ある日付のデータをすべて抽出する方法を考えてみます。 コピーして練習に使えるように表を追記しておきます。 日付 商品 販売数 5月1日 みかん 100 5月2日 りんご 120 5月3日 バナナ 110 5月4日 桃 50 5月1日 バナナ 140 5月2日 桃 110 5月3日 みかん 105 5月4日 りんご 150 5月1日 バナナ 120 5月2日 桃 140• Microsoft 365では Filter関数を使うことができます。 Filter関数の使い方は をご覧ください。 次項のように、作業列や配列数式を使う必要がなくなり、関数を使って簡単にデータを抽出できるようになりました。 商品が「バナナ」のデータを抽出し、さらに、日付の昇順に並べ替えてみます。 SORT関数の使い方は をご覧ください。 作業列を使いたくないというケースがあります。 そのようなときは配列数式を利用することができます。 【考え方】条件と一致する行は何行目かを計算します。 計算された行数の小さい方から順番にデータを取り出します。 配列数式にします G5セルをI5セルまでコピーし、更にG5:I5セルを下方向へ必要なだけコピーします。 G2セルの検索値を5月2日に変えた結果の例です。 この部分を配列で処理しています。 SMALL ・・・・・・・,ROW A1 で、小さな値 行位置 から順番に取り出すようにしています。 【考え方】条件と一致しているか否かを調べます 作業列を利用します。 一致しているものについては連番を付けてやります。 この連番順にデータを取り出せばよさそう・・・と考えています。 検索する値はG2セルに入力するものとします。 D列を作業列として使用します。 条件と一致した行に連番を入れます。 A2セルとG2セルが同じなら、同じデータはA2セルから数えて何個目かを表示しています。 作業列の連番順にデータを取り出します。 行番号だけを絶対参照にします• ROW A1 を使うのは下方向へコピーして使うとき、1,2,3 と連番を発生させるためです。 D列の連番よりROW A1 が大きくなると、一致するデータは無いので、エラーとなります。 G5セルに入力した数式を右方向、および下方向へコピーすると完成です。 G5セルを選択し、フィルハンドルを右方向へ、I5セルまでドラッグして数式をコピーします。 G5:I5セルを選択して、フィルハンドルを下方向へドラッグして数式をコピーします。 下方向へは必要なだけコピーします。 一致するデータが表示しきれるだけの行にあらかじめコピーします。 Microsoft 365では XLOOKUP関数やSEQUENCE関数を使うことができます。 XLOOKUP関数の使い方は をご覧ください。 SEQUENCE関数の使い方は をご覧ください。 数式がシンプルなものになります。 しかし、Filter関数が使えるので・・・あくまでも使い方の一例ということです。 SEQUENCE 5 は連続した数値の配列(1,2,3,4,5 を作成しています。 該当するデータが5個程度を想定しています。 多くのデータが該当すると思われる場合はこの値を調整してください。 G5セルの数式を H5セル、I5セルにコピーします。 作業列を使う 2• 作業列をデータリストの左端列に設けることができると、なじみの多いVLOOKUP関数で取り出すことができます。 Filter関数を使うことができない場合は、左端列に作業列を作れるのであれば非常に簡単な数式となります。 データの左端列、A列に作業列を設けます。 この数式を横方向へ I5セルまでコピーし、さらに、G5:I5セルを選択して、下方向へデータが抽出されると想定される行までコピーします。 VLOOKUP関数では検索値が見つからないとエラーになるので、IFERROR関数でエラー処理をしています。 VLOOKUP関数の引数の列番号は数式をコピーするのを前提にCOLUMN関数を使って 連番 2,3,4 を生成するように小細工をしています。 IFERROR関数はExcel2007で追加された関数です。 詳細な使い方は をご覧ください。
次のフィルターを有効にする• データを抽出する• 複数条件を指定して抽出する• 検索条件の指定の仕方• 別シートへコピーする フィルターを有効にする データの [セル] を 1 つ選択します。 [データ] タブをクリックし、並べ替えとフィルターグループにある [フィルター] をクリックします。 見出し行にフィルターボタンが表示されます。 データに空白行や空白列が含まれているときは、その範囲内でしかフィルターが有効になりません。 そういうときは [すべてのセル] を範囲選択して [フィルター] をクリックします。 フィルタを解除する [データ] タブをクリックし、[クリア] をクリックして非表示の行を再表示できます。 [フィルター] をクリックしてフィルター機能を解除できます。 抽出したい [データ] をチェックして [OK] をクリックします。 チェックしたデータが抽出されます。 文字列を抽出 文字列が含まれる列では [テキストフィルター] から一致する値や一部を含む値などを抽出できます。 例として [指定の値を含む] をクリックします。 エクを入力して [OK] をクリックします。 エクが含まれるデータを抽出できます。 数値を抽出 数値の列では「数値フィルター」から以上や範囲などの抽出方法を選択できます。 日付を抽出 日付の列では「日付フィルター」から以降や範囲などの抽出方法を選択できます。 1 つの列に複数の条件を指定するには、検索条件専用のデータ欄を作成します。 上のデータがそれになります。 下の [データ] を 1 つ選択します。 [データ] タブをクリックし、並べ替えとフィルターグループにある [詳細設定] をクリックします。 リスト範囲に下のすべてのデータの範囲が入力されているか確認します。 [検索条件範囲] をクリックし、上の [データ] を範囲選択して [OK] をクリックします。 検索条件に一致するデータが抽出されます。 検索条件の指定の仕方 データの見出しと検索条件範囲の見出しは対応しています。 検索条件範囲の見出しに 名前と入力すれば、データの名前の列に対しての条件になります。 条件には比較演算子やワイルドカードを使用します。 次の比較演算子を使用できます。 任意の 1 文字 "あ? 名前が「エクセル」でバージョンが「2016」を抽出するには次のように入力します。 バージョンが「2010」以上かつ「2016」未満を抽出するには次のように入力します。 OR 条件の指定 複数の条件の内 1 つでも満たしていたら抽出するには、複数行に分けて条件を入力します。 名前が「エクセル」または「ワード」を抽出するには次のように入力します。 名前が「エクセル」またはバージョンが「2016」を抽出するには次のように入力します。 このように AND 条件と OR 条件を組み合わせて 3 つ以上の複数条件にも対応できます。 別シートへコピーする 抽出した結果を別シートにコピーする方法を紹介します。 コピーして貼り付ける フィルタを適用した [データ] をすべて範囲選択してコピーします。 別シートに貼り付けします。 フィルタで表示されているデータだけコピーできます。 詳細設定から出力する 出力先となる別シートの [セル] を 1 つ選択します。 [データ] タブをクリックし、並べ替えとフィルターグループにある [詳細設定] をクリックします。 [指定した範囲] を選択します。 [リスト範囲] と [検索条件範囲] に元のシートの範囲を入力し、[抽出範囲] に出力先の基点となる別シートのセルを入力して [OK] をクリックします。
次のSUMIF関数の設定 それでは早速、SUMIF関数を設定してみましょう。 答えを表示させたいセルをし、[関数の挿入]ボタンをクリックします。 関数を指定するためのダイアログボックスが表示されるので、[関数の分類]で「すべて表示」を選択すると、すべての関数が[関数名]欄にABC順で表示されます。 今回は SUMIF関数を使いたいので、一覧から「SUMIF」をクリックで選択し、[OK]ボタンを押します。 ちなみに、この一覧から「SUMIF」を選択する際、「SUMIF」の頭文字である「S」のところまで、を使うと便利です。 前のダイアログボックスで「SUMIF」を選択して[OK]ボタンをクリックすると、このようなダイアログボックスが表示されます。 SUMIF関数で設定する引数は3つ。 [範囲] この範囲が [検索条件] この条件に合っていたら [合計範囲] この範囲を合計してね という設定になるので、 これを今回やりたいことに照らし合わせると、 [範囲] 「性別」欄が (B2からB12番地が) [検索条件] F2番地の条件に合っていたら [合計範囲] 「予約数」欄を合計してね (D2からD12番地を合計してね) となります。 それでは[範囲]から設定していきましょう。 [範囲]欄に文字カーソルがあることを確認し、ここには、上の表のように「B2からB12番地が」という部分を設定したいので、 B2からB12番地をすると、 ダイアログボックスに、指定した範囲を設定できました。 続いて、[検索条件]欄に文字カーソルを移したいので、キーボードの[Tab]キーを押すか、 [検索条件]欄でクリックすると、[検索条件]欄に文字カーソルを移せます。 この欄には、条件が入力されているセルを指定します。 今回の場合、条件はF2番地に入力されているので、 F2番地をクリックで選択すると、[検索条件]欄にそのセルを指定できます。 指定が終わったら、最後の[合計範囲]欄に文字カーソルを移したいので、キーボードの[Tab]キーを押すか、 [合計範囲]欄でクリックすると、[合計範囲]欄に文字カーソルを移せます。 ここには、条件に合っていた場合に、実際に合計するデータがある範囲を指定します。 今回は、それはD2からD12番地なので、 D2からD12番地をすると、 [合計範囲]欄に、範囲を指定できました。 最後にダイアログボックス右下の[OK]ボタンをクリックすると、 条件に合ったデータの、「予約数」合計を表示させることができました! スポンサーリンク 条件が数字のとき もし、「年齢が45歳の人の、予約数を合計」したいなら、 [範囲] 「年齢」欄が (C2からC12番地が) [検索条件] F6番地の条件に合っていたら [合計範囲] 「予約数」欄を合計してね (D2からD12番地を合計してね) となるので、 答えを表示させたいG6番地に、 図のように指定したSUMIF関数を設定すればいいことになります。 条件に合ったデータの、「予約数」合計を表示させることができました! この章では、F6番地に入力されている年齢の条件は「45」となっています。 44でも、46でもない、「45ジャスト」「イコール45」という意味の条件です。 「40以上」のように、条件を「以上」や「以下」で設定したい場合については、「」の章でご紹介していますので、このまま読み進めてください。 「以上」や「以下」の条件にしたい 現在、F6番地に入力されている年齢の条件は「45」となっています。 こういった比較演算子や数字は、 半角で入力するのがお約束です。 その他、「以下」や「未満」などをどう表すかを詳しく知りたい方は、「」をご覧ください。 今回は、条件を入力するセルを準備し、数式には「条件はこのセルに入力しています」という指定をしています。 ですが、条件を入力するセルを準備せず、数式に直接条件を入力してしまうこともできます。 数式内に直接条件を入力する方法については、「」のページをご覧ください。
次の