1:複数の比較 (セルと列の比較)

DGET関数 - 条件に合ったセルを取得 - 大文字小文字の無視有り無し指定 (ワイルドカード使用可)

説明
=DGET (データ範囲, フィールド, 検索条件)
「データ範囲」から「検索条件」を満たす行を検索し、その行の「フィールド」で指定した列の値を取得します。
見つからない場合は#VALUE!を返します。
複数見つかった場合は#NUM!を返します。
データ範囲
1行目が見出しとなっているデータの範囲を指定します。

フィールド
「検索条件」を満たす行を見つけたとき、取り出す列を指定します。
指定方法は「列見出し名」か「列番号」で指定します。
列番号を1にすると、範囲の左端の列の値が返されます。
列番号を2にすると、範囲の左から2列目の値が返されます。

検索条件
検索条件が書かれているセルの範囲を指定します。
検索条件の1行目には列見出し名、2行目以降に条件を指定します。
同じ行の条件でAND検索を指定し、別の行の条件でOR検索を指定します。
文字列や配列での条件は指定できず、条件を書いたセルを指定する必要があります。

検索条件の例
検索条件の例 動作
名前=beef "名前"列が"beef"に一致する行を検索する。
分類=meat,単価=150 "分類"列が"meat"に一致し
"単価"列が"150"に一致しする行を検索する。
分類=meat,単価150以上 "分類"列が"meat"に一致し
"単価"列が"150"以上の行を検索する。
分類=meat,単価150以上 または単価250以下 "分類"列が"meat"に一致し"単価"列が"150"以上の行、
または、単価が250以下の行を検索する。
名前がsaで始まる ワイルドカードを使用し、"名前"列が"sa"で始まる行を検索する。
任意の一文字を「?」、任意の文字列を「*」で表し、
「?」や「*」の文字自身は、「~」(チルダ)を付けて表す。
(「~?」、「~*」)
大文字小文字を無視せずにmeatに完全に一致 数式を指定してA列が"meat"に完全に一致する行を検索する。
数式を指定する場合は、列見出し名に存在しない名前を書く。
数式内の行番号(図では2)は、 列見出し行の次の行を指定する。
動作例
DGET関数は若干複雑なため、動作イメージを下記に用意しました。
1.「検索条件」(E1:F2)を満たす行を「データ範囲」(A1:C7)から検索します。
2 .発見した行(5行目) の「フィールド」("名前")で指定した列の値(tuna)を返します。
DGET関数の動作イメージ
例1A1:C7の範囲でE1:F2の条件で検索し、"名前"の値を取得する。
=DGET(A1:C7, "名前", E1:F2)
例1A1:C7の範囲でE1:F2の条件で検索し、B1の値を取得する。
=DGET(A1:C7, B1, E1:F2)
例1A1:C7の範囲でE1:F2の条件で検索し、データ範囲の2列目の値を取得する。
=DGET(A1:C7, 2, E1:F2)
応用1つの条件で検索する。
=DGET(A1:C7, "単価", 検索条件)の計算で、条件を満たした行の"単価"を取得します。
見つからない場合は#VALUE!と表示します。
複数見つかった場合は#NUM!と表示します。
大文字小文字の違いは無視します。
=DGET(A1:C7, "単価", E1:E2)
応用1つの条件で検索する。(ワイルドカードを使用する)
=DGET(A1:C7, "単価", 検索条件)の計算で、条件を満たした行の"単価"を取得します。
ワイルドカードを用いて「t」で始まる行を検索しています。
=DGET(A1:C7, "単価", E1:E2) 条件にワイルドカード指定
応用1つの条件でで検索する。(数式を使用する)
=DGET(A1:C7, "単価", 検索条件)の計算で、条件を満たした行の"単価"を取得します。
条件に "=EXACT(B2, 名前)"を指定することで、大文字小文字を無視しない検索をしています。
条件のB2の「2」には、列見出し行の次を指定します。
それにより、自動的に条件式の参照する行が切り替わり、正しい値を取得できます。
=DGET(A1:C7, "単価", E1:E2) 条件に数式指定
応用2つのAND条件で検索する。
=DGET(A1:C7, "単価", 検索条件)の計算で、分類が"meat"と一致し、単価が”400以上"の行の"単価"を取得します。
=DGET(A1:C7, "単価", E1:F2)
応用2つのOR条件で検索する。
=DGET(A1:C7, "単価", 検索条件)の計算で、単価が900以上 または 名前が"sardine"と一致する行の”単価"を取得します。
=DGET(A1:C7, "単価", E1:E3)