実は簡単!INDEXとMATCHの組み合わせ! #Excel #LifeHacks #Office
INDEXとMATCHを覚えると、「どの列にあるか分からない」「条件が2つある」みたいな表でも安定して値を引けるようになります。私がよく使うのは、性別(男/女)とプラン(例:A/B)で料金を出すような“行×列”の表です。 ■基本:INDEXとMATCHの役割 ・INDEX:指定した範囲から、行番号・列番号の位置にある値を返す ・MATCH:範囲の中で「先頭から何番目か」を返す(位置=番号) たとえば料金表が C3:D5 にあり、行見出し(性別)が B3:B5、列見出し(プラン)が C2:D2 にあるなら、形はこれが鉄板です。 =INDEX(C3:D5, MATCH(C9, B3:B5, 0), MATCH(C8, C2:D2, 0)) ※C9に性別、C8にプランが入っている想定です。 ■MATCHの「照合の種類」は基本0(完全一致) MATCH(検索値, 検索範囲, [照合の種類]) の3つめは迷ったら0にしています。 ・0:完全一致(性別やプランなど“文字”の一致に必須) ・1:以下で最大(昇順ソートが前提) ・-1:以上で最小(降順ソートが前提) 文字検索で1や-1にすると、表の並び次第で意図しない値になるので注意です。 ■「AかつB(複数条件)」で縦持ちデータから抽出したいとき 表が“縦に長いデータ(明細)”の場合は、INDEX+MATCHに「条件列を掛け算」する方法が便利でした。 例:性別がC9、プランがC8の行の料金(E列)を返す =INDEX(E:E, MATCH(1, (B:B=C9)*(C:C=C8), 0)) ※古いExcelだと配列数式として確定が必要な場合があります。 ■SUMIFではなく「SUMIF×INDEX×MATCH」にしたいケース 月別などで列が増減する表だと、SUMIFだけだと参照列が固定できず困ることがあります。そんなときは、合計範囲をINDEX+MATCHで“列選択”してからSUMIFするのが手です。 (例)合計したい月の列位置をMATCHで求め、INDEXでその列全体を指定してSUMIF。 ■よくあるつまずき(体験談) ・男/女の入力が全角スペース混入で一致しない → TRIM/CLEANや入力規則(プルダウン)で予防 ・見出しの「プラン」が表記ゆれ(Aプラン/プランA) → マスタを統一してからMATCH ・#N/Aが出る → まずMATCH単体で位置が返るか確認すると原因が早いです INDEX+MATCHは慣れると、VLOOKUPより「列追加に強い」「2条件に強い」ので、性別×プランみたいな表はぜひ一度この形で作ってみてください。





























