列と行が違っているようにも見られますので元のデータは次のようになっているとします。
シート1のA1セルには日付などの項目名が有り、A2セルから下方には4/1,4/1,4/1,4/2・・・のように日付が入力されているとします。B2セルから下方にはりんご、みかん、いちご…と入力されているとします。
そこで作業列としてC2セルには次の式を入力して下方にオートフィルドラッグします。
=IF(A2="","",IF(COUNTIF(A$2:A2,A2)=1,ROUNDDOWN(MAX(C$1:C1),-8)+100000000,ROUNDDOWN(MAX(C$1:C1),-8))+A2*1000+COUNTIF(A$2:A2,A2))
この式は日付も含んだ情報を含むために多少複雑な式になっています。
そこでお望みの表をシート2に作るとしたら例えばシート2のA2セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。
=IF(ROW(A1)=1,IF(COLUMN(A1)>MAX(Sheet1!$C:$C)/100000000,"",INDEX(Sheet1!$A:$A,MATCH((COLUMN(A1)+1)*100000000,Sheet1!$C:$C,1))),IF(OR(A$2="",COUNTIF(Sheet1!$C:$C,COLUMN(A1)*100000000+A$2*1000+ROW(A1)-1)=0),"",INDEX(Sheet1!$B:$B,MATCH(COLUMN(A1)*100000000+A$2*1000+ROW(A1)-1,Sheet1!$C:$C,0))))
なお2行目には日付のシリアル値が表示されますので書式の表示形式で日付にします。
これで日付を含めた書き換えが完成します。
お礼
迅速なご回答ありがとうございました。 配列を使用する方法も含め、まったく考え付きませんでした。 じっくり理解したいと思います。 本当にありがとうございました。