• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExcelのMATCH関数での列指定)

ExcelのMATCH関数での列指定

このQ&Aのポイント
  • 社員名簿のデータを別シートにINDEX関数を使って抜き出したいが、MATCH関数での列指定が上手くいかない。
  • 別シートにある表から家族の年齢を取得したいが、一行に複数の家族がいるため、MATCH関数が使えない。
  • エクセルで作られた社員名簿のデータを別シートにINDEX関数を使って抜き出し、家族の年齢を取得する方法はあるか。

質問者が選んだベストアンサー

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

#01です OFFSET関数は基準セルから行数、列数を指定して離れたセルを参照しますが、基準セルがOFFSET(A1,0,0)、右となりならOFFSET(A1,0,1)になります。C1を指すときはOFFSET(A1,0,2)です 一方MATCH関数で列方向の検索をする場合はA列を基準(1)として何列目かを返します。C列に目的の検索語があれば3が返ります。 MATCHで得た3をOFFSET関数で使うために -1 しています。 今回はOFFSET(基準セル、行位置、列位置、行数、列数)の型も使用しています。OFFSET関数のHELPを見て、意味を考えて見て下さい 20は「20列目まで」を範囲とするために指定しましたが、別に40でも100でもかまいません。20を指定したので(家族氏名、年齢)の対は9個までと書いたのです(最初の2列は社員番号、社員氏名)

その他の回答 (1)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

シート1が以下の時に     A列   B列    C列    D列  E列    F列 1行目 123456 社員氏名A  家族A1  40  家族A2  18 2行目 234567 社員氏名B  家族B1  35  家族B2  9 3行目 345678 社員氏名C  家族C1  29   シート2に以下の結果を得るなら     A列   B列    C列    D列 1行目 123456 社員氏名A  家族A1  40 2行目 123456 社員氏名A  家族A2  18 3行目 234567 社員氏名B  家族B1  35 4行目 234567 社員氏名B  家族B2  9 5行目 345678 社員氏名C  家族C1  29   シート2のD1の式は以下になります =OFFSET(Sheet1!$A$1,MATCH($A1,Sheet1!A:A,0)-1,MATCH($C1,OFFSET(Sheet1!$A$1,MATCH($A1,Sheet1!A:A,0)-1,0,1,20),0)) D1を下方向にコピーしてください。なお扶養家族は9人までOKです

papabondo
質問者

補足

早速の回答ありがとうございます。こんな関数があったとは知りませんでした。勉強になりました。 ちなみに質問なんですが・・・ この式で-1や20という数字は何を意味しているのでしょうか?私にはちょっと複雑すぎて式の意味がいまいちよく理解できません^^;

関連するQ&A