質問: EXCELで複数列*複数行から検索する方法 EXCELで添付画像のような表を作りました。 H3に名前を入れるとI3以下に名前の下のセルの値を列挙するような仕組みを作りたいです。(例:山田ならA,B,G、武田ならE,F,G,H) I3にはどのような関数を組めばいいでしょうか。
回答: データが多くなってもパソコンに負担の少ない方法は作業列を作って対応することです。 お示しの通りの表がB列とF列の3行目から12行目まであるとします。 そこでK3セルには次の式を入力してL3セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。 =IFERROR(INDEX($B$3:$F$12,MOD(ROW(A1)*2-1,10)+COLUMN(A1)-1,ROUNDUP(ROW(A1)/5,0))&"","") M3セルには次の式を入力します。 =IF(H$3="","",IF(K3<>H$3,"",COUNTIF(K$3:K3,K3))) N3セルには次の式を入力します。 =IF(M3="","",IFERROR(INDEX(N$2:N2,MATCH(M3-1,M$2:M2,0))&","&L3,L3)) M3セルとN3セルを選択してから含まれるそれらの式を下方にドラッグコピーします。 お求めのI3セルには次の式を入力すればよいでしょう。 =IF(H3="","",INDEX(N:N,MATCH(MAX(M:M),M:M,0))) なお、作業列が目障りでしたらそれらの列を選択して「非表示」にすればよいでしょう。