• 締切済み

INDEX関数とMATCH関数(おそらく)について

エクセルで分からず、困っています。 表にあるように、左側に番号と野菜の名前があります。そして、「1月」の下に、“0”もしくは、“-”の2種類の数値が入っています。 1月欄に“0”が入っている全ての野菜の番号と野菜名を抽出したく、INDEX関数とMATCH関数を組み合わせていけばいい事までは分かったのですが、それ以上が分かりません。 言葉足らずで申し訳ないのですが、この表から取り出したいのは、「1」「じゃがいも」と「4」「なっぱ」になります。 どうか、よろしくお願い致します。

みんなの回答

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

 B列に番号が振られている事を利用する方法です。  今仮にL列を作業列として使用し、I3セル以下に取り出した番号、J3セル以下に取り出した品目を表示させるものとします。  まず、L3セルに次の数式を入力して下さい。 =IF(COUNTIF($D3:$G3)=0,"",$B3)  次に、L3セルをコピーして、L4~L6の範囲に貼り付けて下さい。  次に、I3セルに次の数式を入力して下さい。 =IF(ROWS($2:2)>COUNT($L:$L),"",SMALL($L:$L,ROWS($2:2)))  次に、J3セルに次の数式を入力して下さい。 =IF($I3="","",VLOOKUP($I3,$B:$C,2))  次に、I3~J3の範囲をコピーして、I4~J6の範囲に貼り付けて下さい。  以上です。

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

分かり易い方法は作業列を作って対応することでしょう。 お示しの表がシート1に有るとしてH4セルには次のp式を入力して下方にオートフィルドラッグします。 =IF(COUNTIF(D4:G4,0)>0,MAX(H$3:H3)+1,"") お求めの表をシート2のA列とB列に表示させるとしてシート2のA2セルには次の式を入力しB2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(ROW(A1)>MAX(Sheet1!$H:$H),"",INDEX(Sheet1!$B:$C,MATCH(ROW(A1),Sheet1!$H:$H,0),COLUMN(A1)))

専門家に質問してみよう