- ベストアンサー
よろしくお願いいたします
よろしくお願いいたします sheet1には、A列2行目からは、車種名が、400行ぐらい記載されており、A2列からV2列ぐらいまで店舗名が記載されており、各店にどの車が何台ぐらい置いてあるか、記載されてます。sheet2のA1に店名を打ち込むと、こなsheet2のA3~B4から車の各店の在庫数にもよりますが、下に店に置いてある在庫一覧を表示させたいのですが、どのようにしたらいいのでしょうか?よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>A列2行目からは、車種名が、400行ぐらい記載されており >A2列からV2列ぐらいまで店舗名が記載されており とありますが、それですとA2以下には車種名が入力されているのと同時に、A2~V2のセル範囲には店舗名が記載されている事になり、A2セルには車種名と店舗名のどちらが入力されている事になるのか解りません。 ですから、ここはA2セルには何も入力されておらず、店舗名が記載されているのはA2~V2のセル範囲ではなくB2~W2のセル範囲であり、車種名が入力されているのはA2以下ではなくA3以下であるものとします。 それと >こなsheet2のA3~B4から車の各店の在庫数にもよりますが、下に店に置いてある在庫一覧を表示させたい という文面では意味不明ですので、取りあえず仮の話として「sheet2のA3~B4ではなくSheet2のA列~B列の4行目以下に、Sheet2のA1セルに入力した車種の在庫がある店舗名と、在庫数を、『在庫数の多い順』に表示させる」ものとします。 その場合、まず、Sheet2のA3セルに「店舗」、Sheet2のB3セルに「在庫数」などという具合に、Sheet2のA3セルとB3セルに何らかの文字列を入力して下さい。 次に、Sheet2のB4セルに次の関数を入力して下さい。 =IF(OR($A$1="",B3=""),"",IF(ROWS(B$4:B4)>IFERROR(COUNT(INDEX(Sheet1!$B:$W,MATCH($A$1,Sheet1!$A:$A,0),)),0),"",LARGE(INDEX(Sheet1!$B:$W,MATCH($A$1,Sheet1!$A:$A,0),),ROWS(B$4:B4)))) 次に、Sheet2のA3セルに次の関数を入力して下さい。 =IF(ISNUMBER($B4),INDEX(Sheet1!$B$2:$W$2,MATCH($B4,OFFSET(Sheet1!$B$2:$W$2,MATCH($A$1,Sheet1!$A:$A,0)-ROW(Sheet1!$A$2),IF($B3=$B4,MATCH(A3,Sheet1!$B$2:$W$2,0),0)),0)+IF($B3=$B4,MATCH(A3,Sheet1!$B$2:$W$2,0),0)),"") 次に、Sheet2のA4~B4のセル範囲をコピーして、Sheet2のA列~B列の5行目以下に貼り付けて下さい。 以上です。