一番上の入り口へ > excel > 検索系の関数を極める!

検索系の関数を極める!

関数 概要 用例
lookup
(vlookup,hlookup)
ある範囲のなかで条件を満たすセルを調べるとき 名簿と得点の表があったとして、〜さんの国語の点は?と調べるとき、または 商品コードから商品名を探すときなどに使います。
match 条件を満たすセルがどこにあるかを調べるとき 表の中で〜さんの場所を調べ、その得点一覧を出力するときなどによく使います。その場合INDEX関数とセットで使います
文字列検索関数群 検索用途として、その他の文字列関数を説明します。 search , find(文字列内の特定文字位置) , replace(置き換え)など

lookup関数

lookupは調べ上げる関数です。
excelではある範囲のなかで条件を満たすセルを調べるときに使います。

=LOOKUP(検査値,検査範囲,対応範囲)
 ルックアップ

[検索値:"検査範囲"の中からこの検索値を検索します(Aさん、商品名、商品コードなど)。 複数列ある場合左端の縦列が優先対象になるようです。また数値は昇順にしておく必要があるそうです。
検査範囲:検索対象範囲です("B3:D8"など)。
対応範囲:例えば"列位置"番目で かつ 検索範囲で見つかった行に対応するセルの値をVLOOKUP関す結果として取得します

※検索の型:TRUEはデフォルト値。TRUEで一致しなかった場合、検索値未満の最も大きい値が採用される。

以下の例は名前を変更すると合計点が自動的に計算される例です。


これは合計点の一つだけですが、データ元の全列について同じように作れば、
一覧が検索されるのと同じように表示できますね。


このように名前から点数を求めたり、その逆も可能です。そして商品名から商品コードを求めたりすることにも使われます。


vlookupとhlookupは vertical(垂直)のv、horizontal(水平)のhと覚えておくと忘れません。

=VLOOKUP(検索値,範囲,列位置,検索の型)
 ブイ ルックアップ

[検索値:"範囲"の中の縦列の中からこの検索値を検索します(Aさん、商品名、商品コードなど)。 複数列ある場合左端の縦列が対象になるようです。
範囲:検索対象範囲です("B3:D8"など)。
列位置:"列位置"番目で かつ 検索範囲で見つかった行に対応するセルの値をVLOOKUP関す結果として取得します
検索の型:TRUE(近似の物を探す:あらかじめ検索範囲を昇順にしておくこと) or FALSE(完全一致:文字列の場合はこちら)]

※検索の型:TRUEはデフォルト値。TRUEで一致しなかった場合、検索値未満の最も大きい値が採用される。



実例はこちらを参考にしてください。 商品コード検索表を作る(レッツトライExcel)

match関数

何番目のデータかを調べるときは match関数を使います。

=MATCH(検査値,検査範囲,照合の型)
マッチ

[検査値:検査値を数値、文字列、論理値やセル参照で指定
検査範囲:検査値を含む連続したセル範囲を指定
照合の型:1、0、-1のいずれかの数値を指定
・0:完全一致
・1:(省略可能)検査値以下の最大の値が検索されます。データを昇順に並べ替えておく必要があります
・-1:検査値以上の最小の値が検索されます。データを降順に並べ替えておく必要があります
]

↑意図としては、合計(=H)が272(=B200)の人を探したい向けのサンプルです。
B200(=272)の値が、H185:H193の中で何行目かを match関数で検索しています。結果は 5行目でした。

それだけだと、使いづらいので、その行(=5)のデータを表示させています。
5行目1列目(相対値)は名前の列で Eさんです。同様に2列目は性別の列で男のパラメータでした。以下 英語は3列目、・・・計は7列目です。 INDEXの数式を使ってそれを表しています。



match関数を使ってもデータの番号のみしかわからないため、index関数などと組み合わせます。
第3引数の0は完全一致で検索する方法を指定します。そのため表はソートされている必要はありません。
検索値を超えないもっとも近い数字の場合 1,をその逆の場合 -1を照合値として指定する場合、元の表はソートされている必要があります。

また見つからない場合は N/Aエラーがでます。表示させたくない場合excelのオプションの設定かエラー処理をしてください。

実例はこちらを参考にしてください。 リストの過不足をチェック!(レッツトライExcel)

文字列検索関数群

関数 備考など
search
/find
=SEARCH("区","港区")= 3
=SEARCH("e","statement",6)= 7
半角の疑問符 (?) または半角のアスタリスク (*) をワイルドカード文字として使用することができます。
ワイルドカード文字の疑問符は任意の 1 文字を表し、アスタリスクは任意の文字列を表します
検索文字列が見つからないと、エラー値 #VALUE! が返されます。
replace =REPLACE("mother",SEARCH("other","mother"),5,"onday")
motherのotherを ondayに置き換えた結果を取得する例
文字に対して、特定の文字を置き換えます。
substitute =SUBSTITUTE(A2, "売上", "原価")
A2セルの売上を原価に置換した結果を取得する例
セルの文字に対して特定の文字を置き換えます。
mid =MID("夏みかん",2,3) = "みかん" 特定の範囲を抜き出します。

その他の検索わざ *と?

*と?は 検索対象につけると任意の文字を表すメタ(抽象的な表現)文字になります。


?: 出席と欠席 両方にマッチさせるには、 "?席" と書きます。?はその位置に対する任意の文字を示します。
*: ご飯、お昼御飯 両方にマッチさせるには、 "*飯" と書きます。

類似リンク(検索系関数 実例サンプルあり)

リストの過不足をチェック!(レッツトライExcel)

宴会幹事向け出欠確認アンケートを作る(レッツトライExcel)

マクロを使わずに重複行をサクッと削除するちょいわざ

C列にあるそれぞれの単語が対象シートのセルのどこにあるか調べるちょいわざ(match)

合計系の関数を極める!たった5つの関数を抑えれば大丈夫!活用図例付き(Excel関数使いこなし編)

検索系の関数を極める!(Excel関数使いこなし編)

ちょっと上ゆく関数を極める!(Excel関数使いこなし編)



上に戻る↑

一番上の入り口へ > excel >検索系の関数を極める!