元の表はシート1のA,B,C列の2行目から下方に入力されているとします。
作業列を使って対応することにします。
D2セルには次の式を入力して下方にドラッグコピーします。
=IF(A2="","",IF(COUNTIF(A2,"*月")=1,ROUNDDOWN(MAX(D$1:D1),-3)+1000,D1+1))
お求めの表ですがシート1のE2セルにあるいはシート2のA2セルに次の式を入力して横方向にドラッグコピーしたのちに下方向にもドラッグコピーします。
=IF(COUNTIF(Sheet1!$D:$D,ROUNDUP(COLUMN(A1)/3,0)*1000+ROW(A1)-1)=0,"",IF(AND(ROW(A1)=1,MOD(COLUMN(A1),3)=1),INDEX(Sheet1!$A:$A,MATCH(ROUNDUP(COLUMN(A1)/3,0)*1000,Sheet1!$D:$D,0)),IF(AND(ROW(A1)=1,MOD(COLUMN(A1),3)<>1),"",IF(ROW(A1)>1,IF(INDEX(Sheet1!$A:$C,MATCH(ROUNDUP(COLUMN(A1)/3,0)*1000+ROW(A1)-1,Sheet1!$D:$D,0),MOD(COLUMN(A1)-1,3)+1)=0,"",INDEX(Sheet1!$A:$C,MATCH(ROUNDUP(COLUMN(A1)/3,0)*1000+ROW(A1)-1,Sheet1!$D:$D,0),MOD(COLUMN(A1)-1,3)+1))))))
お礼
回答ありがとうございます。 office2003にて 式を入力すると =IF(COUNTIF(Sheet1!$D:$D,ROUNDUP(COLUMN(A1)/3,0)*1000+ROW(A1)-1)=0,"",IF(AND(ROW(A1)=1,MOD(COLUMN(A1),3)=1),INDEX(Sheet1!$A:$A,MATCH(ROUNDUP(COLUMN(A1)/3,0)*1000,Sheet1!$D:$D,0)),IF(AND(ROW(A1)=1,MOD(COLUMN(A1),3)<>1),"",IF(ROW(A1)>1,IF(INDEX(Sheet1!$A:$C,MATCH(ROUNDUP( この続きのCOLUMNが黒色に反転して、エラーが有ると警告が出てしまいます。
補足
(お礼の後から記述しました。) 回答ありがとうございます。 office2010で試したところ、エラーは出ず、期待通りの動作をしました。 大変すばらしいと思いました。