条件に合うデータを関数で全て順に抽出できる数式の作り方

このページは「条件に合うデータを全て順に抽出する方法」の2ページ目です(⇒ 1ページ目へはこちら

 

ここでは、数式の作り方を解説します。

 

【お知らせ】

2021年10月31日に、数式を変更しました。結果、もっと分かりやすく使いやすくなったと思います。Chiquilin様、ありがとうございました。

 

以前の数式の解説は、期限付きで以下のリンクから見られます。

⇒ (旧)条件に合うデータをすべて一覧から抽出できる数式の作り方


  • このページの目次

1.数式の形を確認

2.数式を作ってみる

3.条件値の指定の仕方

 

なお、このページは「数式の作り方」だけの解説です。数式の意味、様々な条件指定の仕方、エラーへの対処方法を知りたい方は、ページの一番下のリンクをクリックして参照してください。



1.数式の形を確認

始めに、「条件に合うデータを順に抽出」できる数式の形や使い方、引数の指定の仕方を確認します。

 

1-1.数式の基本形

数式の基本形は、次の通りです。

=IFERROR(INDEX(元データの最左列,1/LARGE(INDEX((条件式)/ROW(条件範囲),0),ROW(A1))),"")

※ 条件が一つの場合

 

引数は、「元データの最左列」、「条件式」、「条件範囲」の3つです。

 

数式の形をコピーして、引数のところを直して使うと簡単だと思います。

 

1-2.数式は「左上のセル」に作る

数式は、「結果を表示させる範囲の『左上のセル』」に作ってください。

 

下の例の場合は、「セルA15」になります。

そして、セルA15に入れた数式を右および下方向へコピーします。

 

「左上に数式を作る」 → 「右・下方向へコピー」 → 「出来上がり」、とイメージしてください。



1-3.引数の指定の仕方

続いて、各引数の指定の仕方を見てみます。

 

ちなみに、ここは「こんなもんなんだ」レベルで読み流してください。次の「2.数式を作ってみる」を見ると、もっと分かると思います。

 

【基本形】

=IFERROR(INDEX(元データの最左列,1/LARGE(INDEX((条件式)/ROW(条件範囲),0),ROW(A1))),"")

 

1-3-1.「元データの最左列」

「元データの最左列」には、「元データの一番左の列全体」を1列指定します。

 

例えば、元データの一番左がA列の場合には「A:A」、D列の場合には「D:D」となります。

 

1-3-2.「条件式」

「条件式」は、

条件範囲 → 比較演算子 → 条件値

の順で指定します。

 

注意点は次の通りです。

・条件範囲:条件を指定する範囲を1列指定(←必ず絶対参照で)

・比較演算子:「=」や「<>」などの記号を指定

・条件値:条件値を値またはセル番号で指定(←セル番号は絶対参照で)

 

例えば、条件を「B5からB10で『50以上』」としたい場合、それぞれ次のようになります。

 ・条件範囲:$B$5:$B$10(『$』を付けて絶対参照化)

 ・比較演算子:>=

 ・条件値:50

 

つなげると、

$B$5:$B$10>=50

となります。これが条件式です。

 

なお、条件値をセル番号で指定する場合には、絶対参照にします。

 

例えば、先ほどの例で条件値「50」がセルA1に入っている場合、条件式は次の通りです。

$B$5:$B$10>=$A$1

 

このように、条件値にも「$」を付けます。

 

なお、適切に絶対参照にしないと、数式をコピーした時に正しい結果が返ってこないので、注意しましょう。

 

1-3-3.「条件範囲」

条件式で指定した「条件範囲」を、ここにも入れます。

 

同じく絶対参照にします。

 

なお、本当は列番号は条件範囲と違っても問題ありません。

 

ただ、全く同じものを入れると覚えたほうが分かりやすいと思います。



2.数式を作ってみる

次に、数式を実際に作ってみます。

上は、ある企業の出張実績の一覧です。

 

出張名や出張先、出張日、社員名、部署名と役職が入力されています。

 

この表(【元データ】)から、「部署が『総務部』」のデータを抜き出し、下の表(【抜き出したデータ】)に表示させてみます。

 

以下手順です。

 

(1)以下の数式をコピーし、結果を表示したい範囲の左上のセルに貼り付ける

【数式】

=IFERROR(INDEX(元データの最左列,1/LARGE(INDEX((条件式)/ROW(条件範囲),0),ROW(A1))),"")

※ 複数条件の場合には、この後紹介する数値をコピーし貼り付けます

 

(2)「元データの最左列」の文字を消し、元データの一番左側の列をクリックする

※ 列番号(赤矢印部分)を押すと簡単です

 

(3)「条件式」の文字を消し、まずは「条件範囲」を指定する

※マウスの左ボタンを押しながら選択すると簡単です

 

(4)キーボードのF4キーを1回押し、「$」を全部で4つ付ける

※ F4キーはキーの最上段にあります

 

(5)比較演算子を入力する

※ 条件に応じて「=」か「<>」、「>」などの記号を入れます

 

(6)条件値を入力する

※ 条件値の入れ方は、この後詳しく解説します

 

(7)「条件範囲」の文字を消し、「条件範囲」を指定する

 

(8)キーボードのF4キーを1回押し、「$」を全部で4つ付ける

 

(9)Enterキーを押す

 

(10)セルの右下にカーソルを当て、「+」マークになったら右方向に左ドラッグする

※ 左ドラッグとは、マウスで左クリックを押しながらカーソルを移動させることです

 

(11)範囲の右下にカーソルを当て、「+」マークになったら下方向にドラッグすれば完了

 

結果、セルA15に入れた数式は次のようになります。

=IFERROR(INDEX(A:A,1/LARGE(INDEX(($F$4:$F$9="総務部")/ROW($A$4:$A$9),0),ROW(A1))),"")

 

今回は、配列数式にする必要はありません。

 

簡単ですね。



3.条件値の指定の仕方

続いて、条件値の指定の仕方をもう少し掘り下げます。

 

各パターンでの条件値の指定の仕方を、確認してみましょう。

 

3-1.数式内に入力する場合

条件値を数式内に入力する場合、条件値の種類によって書き方が変わります。

 

(1)文字列

文字列の場合には、条件値を「"」で囲みます。

 例)条件値が「総務部」→”総務部"

 

(2)数値

数値の場合には、そのまま入力します。

 例)条件値が「50」→50

 

(3)日付

日付の場合には、DATEVALUE関数を使い「"」で囲みます。

 例)条件値が2021年1月1日→DATEVALUE("2021/1/1”)

 

(4)条件値が時間

時間の場合には、TIMEVALUE関数を使い「"」で囲みます。

 例)条件値が8:00→TIMEVALUE("8:00")

 

3-2.セル番号を指定する場合

セルに入力された値を条件値にする場合には、条件値の種類に関わらず、セル番号をそのまま入力します。

 

ただし、絶対参照にして数式コピーで参照先が動かないようにします($を2つ付ける)。

 

条件値にカーソルを当て、F4キーを1回押しましょう。

 例)セルA1に条件値が入っている→$A$1



4.複数条件の数式の形は

条件を複数にしたい場合、「どれも満たす(AND)」形にするか、「どれかを満たす(OR)」形にするかで、数式が変わります。

 

4-1.AND条件の場合

複数条件をAND(どの条件も満たす)で指定したい場合には、条件式の後に「*(条件式)を追加します。

 

例えば、条件が二つの場合は次のようになります。

=IFERROR(INDEX(元データの最左列,1/LARGE(INDEX((条件式1)*(条件式2)/ROW(条件範囲),0),ROW(A1))),"") 

 

三つの場合はこうなります。

=IFERROR(INDEX(元データの最左列,1/LARGE(INDEX((条件式1)*(条件式2)*(条件式3)/ROW(条件範囲),0),ROW(A1))),"") 

 

四つの場合はこうです。

=IFERROR(INDEX(元データの最左列,1/LARGE(INDEX((条件式1)*(条件式2)*(条件式3)*(条件式4)/ROW(条件範囲),0),ROW(A1))),"") 

 

このように、「*(条件式)」を追加すれば、条件を増やせます。

 

4-2.OR条件の場合

複数条件をOR(どれかの条件を満たす)で指定したい場合には、状況によって数式の形がさらに変わります。

 

詳しくは8ページ目で解説します。

 

以上、参考になれば幸いです。

 

次ページは、数式の構成を解説しています。

→ 次のページに行く(数式の構成の解説を見る)にはこちら 

 


【手元にあると便利なおすすめ】
 Excel関数逆引き辞典パーフェクト