目次
あるデータを検索する必要がある場合があります。 しかし、データセットが巨大な場合、探しているものを見つけるのは本当に大変です。 この記事では、次の方法を紹介します。 エクセルからデータを取り出す を、それぞれ異なる基準で判断しています。
練習用テンプレートダウンロード
練習用Excelテンプレートは、こちらから無料でダウンロードできます。
基準に基づいてデータを抽出する.xlsxExcelから条件に基づいてデータを抽出する5つの方法
ここでは、ある条件に基づいてExcelからデータを抽出する5種類の方法について説明します。
1.Excelから範囲指定でデータを抽出するための配列式の実装
以下のデータセットを例に、範囲を指定してデータを抽出する方法を説明します。 例えば、学生の詳細情報を集めたデータセットがあり、そこから 80点から100点まで .
を使って、ある範囲に基づいたデータを抽出する手順です。 アレイ の式は以下の通りです。
ステップス
- まず、条件を他のセルに保存しておき、後でそれを利用します。 つまり、以下の条件を満たした学生の情報を抽出するのです。 80点から100点まで を格納した。 開始値として80 と 終了値として100 において セルI4 と I5 を、それぞれご紹介します。
また、保存された値を探すために、カラムも保存する必要があります。 つまり、マーク80とマーク100が マーク欄 というものである。 第3列 をデータセットに格納しました。 3をColumn値として において セルI6 .
=index($b$5:$e$14,small(if((index($b$5:$e$14,,$i$6)=$i$4),match(row($b$5:$e$14),row($b$5:$e$14)),""),rows(g11:$g$11)),columns($a$1:a1)))
- 3番目に、 を押します。 Ctrl + Shift + Enter をキーボードで入力します。
そして、条件に一致する最初の抽出データが結果セルに表示されます。 例) ジョニー その ID でございます 3 ゲット 80点 において 生物学 で、彼のレコードは他の人より先にデータセットに格納されているので ジャニーズID 3 を結果セルに入力します。
- で列や行をドラッグして移動します。 フィルハンドル を取得した学生のみの詳細を取得することができます。 80点から100点まで .
フォーミュラ・ブレークダウン
- index($b$5:$e$14,,$i$6)
- Output: {60;30;80;55;87;95;100;42;25;18}
- 説明:INDEX機能 は、通常、指定されたセル範囲から単一の値または列や行全体を返します。 3 が格納されます。 セル$I$6 そのため、列全体が返されるわけではありません。 3 ( マークス 列) の全範囲から,データセット ( B$5:$E$14 )を出力します。
- INDEX($B$5:$E$14,,$I$6)<=$I$5。 ->となる。
- {60;30;80;55;87;95;100;42;25;18}<=100
- 出力:{TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE}。
- 説明する。 を保存しました。 100 において セル $I$5 を下回っているため 100 ($I$5) で埋め尽くされた列を返します。 真 .
同様に
- INDEX($B$5:$E$14,,$I$6)>=$I$4。 ->となる。
- { 60;30;80;55;87;95;100;42;25;18}>=80
- 出力:{FALSE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE;FALSE;FALSE}となります。
- 説明する。 を保存しました。 80 において セル$I$4 を返します。 真 カラムからの値が 八割以上 を返し、それ以外の場合は ファルス .
- (index($b$5:$e$14,,$i$6)=$i$4)です。 ->となる。
- {true;true;true;true;true;true;true}*{false;false;true;false;true;true;false}*{false;false;false;false}*{false;false;false;true;true;true;true;true;false
- 出力:{0;0;1;0;1;1;0;0}となります。
- 説明する。 ブール値には数値に相当するものがあります。 TRUE = 1 と FALSE = 0(ゼロ) 式中の算術演算を行う際に変換される。
- 行($b$5:$e$14)
- Output: {5;6;7;8;9;10;11;12;13;14}
- 説明する。 ROW機能 は、セル参照の行番号を計算する。
- match(row($b$5:$e$14),row($b$5:$e$14))。 ->となる。
- MATCH({5;6;7;8;9;10;11;12;13;14},{5;6;7;8;9;10;11;12;13;14})
- 出力:{1; 2; 3; 4; 5; 6; 7; 8; 9; 10}。
- 説明する。 MATCH機能 関数は、配列またはセル参照で、指定された値に一致する項目の相対位置を、指定された順序で返します。
- if((index($b$5:$e$14,,$i$6)=$i$4),match(row($b$5:$e$14)),row($b$5:$e$14),") ->となる。
- IF( {0;0;1;0;1;1;1;0;0;0}), {1; 2; 3; 4; 5; 6; 7; 8; 9; 10},"")
- 出力:{""; ""; 3; ""; 5; 6; 7; ""; "" }.
- 説明する。 IF機能 は,論理テストが以下の場合に1つの値を返す。 真 の場合は別の値、論理テストが ファルス .
- small(if((index($b$5:$e$14,,$i$6)=$i$4),match(row($b$5:$e$14)),""),rows(g11:$g$11))) ->となる。
- small({""; ""; 3; ""; 5; 6; 7; ""; ""},rows(g11:$g$11))。 ->となる。
- small({""; ""; 3; ""; 5; 6; 7; ""; "" },1)
- 出力:3
- 説明する。 SMALL機能 を返します。 k番目 最小値 を数字のグループから選択します。 3 は、このグループの中で最も小さい。
- index($b$5:$e$14,small(if((index($b$5:$e$14,,$i$6)=$i$4),match(row($b$5:$e$14),row($b$5:$e$14)),""),rows(g11:$g$11)),columns($a$1:a1))) ->となる。
- index($b$5:$e$14,3,,1)です。
- 出力:{3; "ジョニー", 80, "バイオロジー"}。
- 説明する。 があります。 INDEX 関数は、セル範囲( B$5:$E$14 ) を、行番号と列番号に基づいた値で指定する。
続きを読む エクセルでセルからデータを抽出する方法(5つの方法)
2.複数の条件に基づいてExcelからデータを抽出するための配列式の実装
上記では、指定した範囲に基づいてデータを抽出しましたが、ここでは、複数の条件に基づいてデータを抽出する方法を紹介します。
先ほどと同じデータセットを見てみましょう。ここでは、条件として値の範囲(Marks 80から100)を格納する代わりに、複数の条件、たとえば、学生の詳細を 化学・生物両部門 .
を使って、複数の条件に基づいてデータを抽出する手順です。 アレイ の式は以下の通りです。
ステップス
- まず、条件を他のセルに保存しておき、後でそれを使って作業します。 つまり、生徒の詳細を抽出するのは 化学 と 生物学 の部門があり、私たちはそれを保存しました。 化学 と 生物学 において セル H5 と H6 を、それぞれご紹介します。
- 次に、別のセルで、結果が必要な場所(ここでは、結果を セルG11 ) を書き、次の式を書きなさい。
=index($b$5:$e$14, small(if(countif($h$5:$h$6,$e$5:$e$14), match(row($b$5:$e$14), row($b$5:$e$14)), ""), rows(g11:$g$11))), columns($b$5:b5))
- 3つ目は、プレス Ctrl + Shift + Enter をキーボードで入力します。
その後、条件に合致する最初の抽出データを結果セルに取得します。 例)。 ジョニー その ID でございます 3 からです。 生物学部門 で、彼のレコードは他の人より先にデータセットに格納されているので ジャニーズID 3 を結果セルに入力します。
- で列や行をドラッグして移動します。 フィルハンドル の生徒の詳細のみを取得することができます。 部署名 の 化学 と 生物学 .
フォーミュラ・ブレークダウン
- countif($h$5:$h$6,$e$5:$e$14) ->となる。
- COUNTIF({"Chemistry"; "Biology"},{"Math"; "Physics"; "Biology"; "Chemistry"; "Physics"; "Math"; "Chemistry"; "Math"; "Biology";"})
- 出力:{0;0;1;0;0;1;0;1}。
- 説明する。 COUNTIF関数 の範囲にあるセルを特定することができます。 H$5:$H$6 に等しい E$5:$E$14 .
- if(countif($h$5:$h$6,$e$5:$e$14), match(row($b$5:$e$14), row($b$5:$e$14)), "") ->となる。
- if({0;0;1;0;0;1;0;0;1;0;1},match(row($b$5:$e$14), row($b$5:$e$14)), "") ->となる。
- IF({0;0;1;1;0;0;0;1;0;1},{ 1; 2; 3; 4; 5; 6; 7; 8; 9; 10},"")
- 出力:{""; ""; 3; 4; ""; ""; 8; "";10}。
- 説明する。 があります。 イフ 関数は3つの引数を持ち、最初の引数は論理式でなければならない。 もし、式が 真 の場合、あることが起こり(引数2)、もし ファルス が起こる(引数3)。 手順1で論理式が計算された。 真 イコール 1 と FALSE イコール 0(ゼロ) ...列なし 3, 4, 8 と 10 評する 真 (1) .
- small(if(countif($h$5:$h$6,$e$5:$e$14), match(row($b$5:$e$14), row($b$5:$e$14)), ""), rows(g11:$g$11)) ->となる。
- small({""; ""; 3; 4; ""; ""; 8; "";10},rows(g11:$g$11)) ->となる。
- small({""; ""; 3; 4; ""; ""; 8; "";10},1)
- 出力:3
- 説明する。 があります。 SMALL 関数が返します。 k番目 最小値 を数字のグループから選択します。 3 は、このグループの中で最も小さい。
- index($b$5:$e$14, small(if(countif($h$5:$h$6,$e$5:$e$14), match(row($b$5:$e$14), row($b$5:$e$14)), ""), rows(g11:$g$11))), columns($b$5:b5)) ->となる。
- index($b$5:$e$14, 3, columns($b$5:b5)) ->となる。
- index($b$5:$e$14, 3, 1)
- 出力:{3; "ジョニー", 80, "バイオロジー"}。
- 説明する。 があります。 INDEX 関数は、セル範囲( B$5:$E$14 ) を、行番号と列番号に基づいた値で指定する。
続きを読む Excelで単一の条件に基づいて複数の値を返す(3つのオプション)
3.フィルタコマンドツールを使って、Excelから範囲指定でデータを抽出する
Excel のフィルタコマンドツールは、最もよく使われる効果的なツールの 1 つであり、以下のような機能を備えています。 特定データを抽出する を、それぞれ異なる基準で判断しています。
次のデータセットを見てください。 前回は、このデータセットを使って、80点から100点までの学生の情報を Array 式で抽出しました。 本節では、その方法を エクセルのフィルターツール .
Excelの「フィルタ」を使って、ある範囲に基づいてデータを抽出する手順を以下に示します。
ステップス
- まず、以下の項目のみを選択します。 ヘッダー データセットの
- 2つ目は、次の通りです。 データ -> フィルタ .
- 第三に、挿入されます。 ドロップダウンボタン をデータセットの各ヘッダー名として使用する。
- そして、Marksを元にデータを抽出したいので、Marksをクリックします。 マークの横にあるドロップダウン・ボタン の欄があります。
- 次に、ドロップダウンリストより ナンバーフィルター -> Between... (再度、データを抽出しているため 八紘一宇 ということで、オプションを選択します。 間 .条件に応じて、リストから他のオプションを選択することができます)。
- では、ポップアップから カスタムオートフィルタ ボックスを選択します。 80 から ドロップダウンリスト をクリックすると表示されます。 ドロップダウンボタン よこ 以上である。 ラベルを選択し 100 ラベルボックス内 は以下である。 .
- をクリックします。 よっしゃー .
最終的には、「合格者」のみを対象とした詳細な情報をお届けします。 80点から100点まで .
続きを読む 画像からExcelにデータを抽出する方法(簡単な手順付き)
類似の読み物
- 別のExcelファイルからExcelにデータをインポートする方法(2つの方法)
- テキストファイルからExcelに変換するVBAコード(7つの方法)
- テキストファイルからエクセルに自動変換する方法(3つの適切な方法)
- Excelをデリミター付きテキストファイルに変換する(2つの簡単な方法)
- 複数の区切り文字があるテキストファイルをExcelに取り込む方法(3つの方法)
4.アドバンストフィルターを活用して、Excelから範囲指定でデータを抽出する
フィルタの項で示した多くの手順を踏むのが嫌な場合は アドバンストフィルター オプションを使用すると、指定した範囲に基づいてデータを抽出することができます。
Excelの高度なフィルタオプションを使用するには、後で使用する条件をワークシートに定義する必要があります。 次の図では、生徒の詳細情報を抽出するための条件を定義しています。 マーク 80~100 として、2つのセルで >=80 と <=100 下 マークス を使用することになり セル参照番号 を、後ほどご紹介します。
Excelの「高度なフィルタ」を使って、ある範囲に基づいたデータを抽出する手順を以下に示します。
ステップス
- まず最初に、以下を選択します。 データテーブル全体 .
- 次に、以下のサイトにアクセスします。 データ -> アドバンスド .
- 最後に、あなたの範囲を表示します。 せんたくデータ の横のボックスに リスト範囲 オプションを使用します。
- 次に、その横のボックスに 基準範囲 を選択します。 定義された条件を持つ細胞 あらかじめ定義された条件を保持するセルの参照番号に続いて、ワークシートの名前がそこに自動生成されるのがわかるでしょう。
- 最後に よっしゃー .
その結果 80点から100点まで .
続きを読む Excelでフィルタリングされたデータを別のシートに抽出する(4つの方法)
5.Excelで定義したテーブルから範囲指定でデータを抽出する
からデータを抽出することができます。 エクセルで定義された表 を使用して、Excel ワークシートから フィルター オプションを使用します。
次のような未整理のデータセットについて考えてみましょう。まず、Excelの表として定義し、そこからデータを抽出します。
Excelで定義された表から、ある範囲に基づいてデータを抽出する手順を以下に示します。
ステップス
- はじめにを選択します。 任意セル を押してください。 Ctrl T .
- その後、ポップアップ テーブルの作成 ボックスが表示され、次のように表示されます。 データセットの範囲を値として指定します。 .チェックボックスを保持する テーブルにはヘッダーがあります をマークしました。
- をクリックします。 よっしゃー .
それは テーブルを自動生成する というデータセットに基づき ドロップダウンボタン をヘッダと一緒に表示します。
- 次に、前回ご紹介した方法と同じように、[1]をクリックします。 マークの横にあるドロップダウン・ボタン カラムを使用し、Marks に基づいてデータを抽出したいためです。
- その後、ドロップダウンリストより ナンバーフィルター -> Between... (再度、データを抽出しているため 八紘一宇 を選択します。 間 .条件に応じて、リストから他のオプションを選択することができます)。
- では、ポップアップから カスタムオートフィルタ ボックスを選択します。 80 から ドロップダウンリスト をクリックすると表示されます。 ドロップダウンボタン よこ 以上である。 ラベルを選択し 100 ラベルボックス内 は以下である。 .
- 最後に よっしゃー .
最終的には、以下のような学生の詳細のみを含むExcelで定義されたテーブルが得られます。 80点から100点まで .
続きを読む: Excelで複数の条件に基づきテーブルからデータを抽出する方法
留意点
- 値を検索するデータテーブル配列の範囲は固定されているので、忘れずに ドル 記号を配列テーブルのセル参照番号の前に置く。
- 配列の値を扱うときは、忘れずに Ctrl + Shift + Enter を押すだけで、結果を抽出することができます。 入力 を使用しているときのみ機能します。 Microsoft 365 .
- を押した後 Ctrl + Shift + Enter の数式を数式バーで囲んでいることに気づきます。 中括弧{} を入力し、配列式として宣言します。 括弧{} を選択すると、Excelが自動的にこれを行います。
結論
今回は、様々な条件に基づいてExcelからデータを抽出する方法を学びました。 この記事が皆様のお役に立てれば幸いです。 また、このテーマについてご質問があればお気軽にお寄せください。