• ベストアンサー

どんな関数を使えばいいでしょう(EXCEL)

EXCEL2003で以下のような表を作っています。 A2~A13・・1月~12月の月を入れています B1~D1・・・店舗名(店舗A~C)を入れています データは店舗ごと(月毎)の売上が入っています。 E列にその月の最低売上をMIN関数で出しています。 F列にE列で出した最低売上の店舗名を出したいのですが、どのように出したらよいのかわかりません。 なるべく簡単な方法で出したいのですが、どうしたら良いでしょうか? 関数で出すと思うのですが、どんな関数を使えばよいでしょうか? よろしくお願いいたします。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 MACH関数で抽出する際に、最低売り上げを出した店舗が複数(同額ワースト1が複数)存在した場合には、最低売り上げを出した店舗の中で、最も左側にある店舗の名前のみが抽出されてしまい、最低売り上げを出した複数の店舗の内の2つ目以降の名前は抽出されません。  そのため、左端に記載されている店舗Aが不利で、右端に記載されている店舗Cが有利になるという、不公平な事になります。  ですから、最低売上の店舗名を表示する欄はF列だけとするのではなく、複数店舗を表示可能な様に、G列とH列も最低売上の店舗名を表示する欄として用いる様にします。  そして、まず、E2セルに次の数式を入力して下さい。 =IF(COUNT($B2:$D2),MIN($B2:$D2),"")  次に、F2セルに次の数式を入力して下さい。 =IF(AND(ISNUMBER($E2),COLUMNS($F:F)<=COUNTIF($B2:$D2,$E2)),INDEX($1:$1,SUMPRODUCT(COLUMN($B2:$D2)*($B2:$D2=$E2)*(COUNTIF(OFFSET(INDEX(2:2,1),,,1,COLUMN($B2:$D2)),$E2)=COLUMNS($F:F)))),"")  次に、F2セルをコピーして、G2セルとH2セルに貼り付けて下さい。  次に、E2~H2の範囲をコピーして、E3~H13の範囲に貼り付けて下さい。  これで、最低売り上げを出した店舗が複数存在する場合にも、全ての最低売り上げを出した店舗の店舗名が、順番に表示されます。

その他の回答 (2)

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

例データ (文章だけを書いて説明するより、下記のようなシートの有様的な図示データを挙げよ) - A B C MIN 店舗 2011/1/1 10 5 20 5 B 2011/2/1 20 22 19 19 C 2011/3/1 30 35 30 30 A F2の式は =INDEX($B$1:$D$1,MATCH(E2,$B2:$D2,0)) 下方向に式を複写。 E列の式はE2に =MIN(B2:D2)  下方向に式を複写。 ーー この式のパターンは、この質問コーナーでもしょっちゅう出現する型だ。覚えておくとよい。 最後の例のように同じ最小値がある場合、最左列だけを取ってしまうので、説明資料などに使う場合は注意が必要。 「俺とこの店だけではないじゃないか」となるかも。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

F2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(COUNT(B2:D2)=0,"",INDEX(B$1:D$1,MATCH(MIN(B2:D2),B2:D2,0)))