取引銀行の数が変わってもその名前を自動的表示させ、しかも複数の月にわたってもその月末での残高を自動的に表示させることができます。
お示しのデータがシート1に有り、A1セルには取引銀行名、B1セルには日付、C1セルには残高とそれぞれ項目名が有り、2行目から下方にデータが入力されているとします。
D列には作業列を設け、D2セルには次の式を入力して下方にドラッグコピーします。
=IF(ROW(A1)<=COUNTA(A:A)-1,IF(COUNTIF(A$2:A2,A2)=1,ROUNDDOWN(MAX(D$1:D1),-7)+10000000,IF(COUNTIF(A$2:A2,A2)>1,ROUNDDOWN(INDEX(D$1:D1,MATCH(A2,A$1:A1,0)),-7),0))+DATE(YEAR(B2),MONTH(B2),1)*100+COUNTIF(A2:INDEX(A:A,MATCH(DATE(YEAR(B2),MONTH(B2)+1,0),B:B,1)),A2),IF(ROW(A1)<=COUNTA(A:A)-1+INT(MAX(D$1:D1)/10000000),(ROW(A1)-(COUNTA(A:A)-1))*10000000,""))
A列での銀行目が入力されるよりもさらに下の行までドラッグしてください。
シート2に各月末での残高を銀行名とともに自動的に表示させます。
A1セルには銀行名とでも項目名を入力したのちにA2セルには次の式を入力して下方にドラッグコピーします。
=IF(COUNTIF(A$1:A1,INDEX(Sheet1!$A:$A,MATCH(IF(ISNUMBER(SMALL(Sheet1!D:D,RANK((ROW(A1)+1)*10000000,Sheet1!D:D,1)-1)),SMALL(Sheet1!D:D,RANK((ROW(A1)+1)*10000000,Sheet1!D:D,1)-1),IF(COUNTIF(A$1:A1,MAX(Sheet1!D:D))>0,"",MAX(Sheet1!D:D))),Sheet1!$D:$D,0)))>0,"",INDEX(Sheet1!$A:$A,MATCH(IF(ISNUMBER(SMALL(Sheet1!D:D,RANK((ROW(A1)+1)*10000000,Sheet1!D:D,1)-1)),SMALL(Sheet1!D:D,RANK((ROW(A1)+1)*10000000,Sheet1!D:D,1)-1),IF(COUNTIF(A$1:A1,MAX(Sheet1!D:D))>0,"",MAX(Sheet1!D:D))),Sheet1!$D:$D,0)))
B1セルには今年の5月からでしたら2013年5月と入力します。数式バー上では2013/5/1の表示になっていることが必要です。B1セルのデータを右横方向にドラッグすることで2013年6月・・・のように変わりますね。
そこでB2セルには次の式を入力して右横方向にドラッグコピーしたのちに下方にもドラッグコピーします。
=IF(ISERROR(INDEX(Sheet1!$C:$C,MATCH(ROW(A1)*10000000+B$1*100+1,Sheet1!$D:$D,0))),"",INDEX(Sheet1!$C:$C,MATCH(ROW(A1)*10000000+B$1*100+1,Sheet1!$D:$D,0)))
これで銀行名も自動的に表示されますのでシート1でのデータが漏れなく表示されることになります。
お礼
す、すげー この短時間で作れるなんてすごすぎます! ありがとうございました!