• ベストアンサー

最も安い店舗の名前をExcelで表示させたい

セルB1にB店 セルC1にC店 セルD1にD店 セルE1にE店 と店の名前を入力し セルA2からA10までには商品名 あめ りんご などが入っており セルB2からB10にはB店の各値段が セルC2からB10にはC店の各値段が セルD2からB10にはD店の各値段が セルE2からB10にはE店の各値段が 入力されています。 そこでB2からE2までの値を比較し B2の値が最も小さい(B店が最も安い場合には)B店 C2の値が最も小さい(C店が最も安い場合には)C店 D2の値が最も小さい(D店が最も安い場合には)D店 E2の値が最も小さい(E店が最も安い場合には)E店 とセルF2に表示させたいのですが、F2にはどうすれば良いのでしょうか ご教授願います よろしくお願いいたします。

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

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

F2セルに以下の式を貼り付けて、下方向にコピーしてみてください =OFFSET(A$1,,MIN(INDEX(SUBSTITUTE(((B2:E2=MIN(B2:E2))*1),0,10^5)*COLUMN(B2:E2),))-1)

その他の回答 (4)

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.5

    A      B    C   D    E    F 1          B店   C店  D店   E店  最安値店 2   あめ     20   15   18   19   C店 3   りんご    54   56   46   48   D店 4   みかん   31   32   33   29   E店 F2=INDEX($B$1:$E$1,MATCH(MIN(B2:E2),B2:E2,0)) ◆最安値店が複数あるとダメですが

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

中間作業セル(列)を使わない方法。 例データ A1:E2 東京 大阪 名古屋 広島 あめ 6 8 5 13 例えば =INDEX($B$1:$E$1,1,SUM(IF(MIN($B$2:$E$2)=B2:E2,COLUMN(B2:E2),0))-1) と入れて、SHIFT+CTRL+ENTER(3つのキーを同時押しする。配列数式) 結果 名古屋 ーー 残念なことに同じ値があると、エラーになる。 SUMPRODUCT関数に置き換え可能。 =INDEX($B$1:$E$1,1,SUMPRODUCT((MIN($B$2:$E$2)=B2:E2)*(COLUMN(B2:E2)))-1)

  • t-yamada_2
  • ベストアンサー率40% (587/1460)
回答No.3

セルF2には最小値、セルG2に店名を表示させるとした場合、 ・セルF2  =MIN(B2:E2) ・セルG2に  =INDEX($B$1:$E$1,MATCH(F2,B2:E2,0)) として後は下にドラッグしてください。

  • abekkan
  • ベストアンサー率27% (83/305)
回答No.2

Gを計算用の列として使います。表示させたくなければあとから列を非表示にするといいと思います。 G2に、=MIN(B2:E2) と書いてコピーし、G3~G10 にペースト。 F2に、=IF(B2=G2,B$1,IF(C2=G2,C$1,IF(D2=$G2,D$1,E$1))) と書いてコピーし、F3~F10 にペースト。 で どうでしょうか。 だだし、最安店が2つ以上あった場合は一番左の店名が表示されます。

関連するQ&A