• ベストアンサー

Excel 表と参照して一致したら行の最左を表示

エクセルについて教えてください。 A 01 02 03 04 05 B 06 07 08 09 10 C 11 12 13 14 15 のような表と、セルの値を照合して、元の値が 03ならA 10ならB 11ならC と表示させたいのです。 縦2列の表に作り変えればVLOOKUP関数でできるとおもいますが、このままの形でやりたいのです。方法をご存知でしたら教えてください。

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

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

検索する数値に重複がない場合は以下の式で可能です。 この式ではH1セルに検索値があることにしています。また検索値に合致するセルがない、もしくは2つ以上ある時は空白を表示しています。 =IF(COUNTIF(B1:F3,$H$1)=1,INDEX(A:A,SUMPRODUCT((B1:F3=$H$1)*ROW(B1:F3))),"")

noname#40784
質問者

お礼

重複はないのでこのやり方でバッチリできました。どうもありがとうございます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

A8に1-15の値があるとして =INDEX($A$1:$A$3,SUM(IF(B1:F3=$A$8,ROW(B1:F3),0))) と入れてSHIFT,CTRL,ENTERを3つ同時押しする。配列数式 結果 A8 が 3の場合 A あり場所は 行は =SUM(IF(B1:F3=$A$8,ROW(B1:F3),0)) SHIFT,CTRL,ENTERを3つ同時押しする。配列数式 列は =SUM(IF(B1:F3=$A$8,COLUMN(B1:F3),0)) SHIFT,CTRL,ENTERを3つ同時押しする。配列数式 ーー SUMの部分はSUMPRODUCTでもできる。 =INDEX($A$1:$A$3,SUMPRODUCT((B1:F3=$A$8)*ROW(B1:F3)))

noname#40784
質問者

お礼

ありがとうございます。教えていただいた方法でできました。 SHIFT,CTRL,ENTERを3つ同時押しで{}をつける技は初めて知りました。

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

#01です。重複があってもできるようにしました 重複する「最小の行」の値を表示する式 =IF(COUNTIF(B1:F3,H1)>0,INDEX(A:A,LARGE(INDEX((B1:F3=H1)*ROW(B1:F3),),COUNTIF(B1:F3,H1))),"") 重複する「最大の行」の値を表示する式 =IF(COUNTIF(B1:F3,H1)>0,INDEX(A:A,MAX(INDEX((B1:F3=H1)*ROW(B1:F3),))),"")

noname#40784
質問者

お礼

再度の回答ありがとうございます。今回は必要なかったですが、勉強になります。