=IFERROR(INDEX($A:$N,AGGREGATE(15,6,ROW($1:$31)/(COUNTBLANK(OFFSET($B$3,ROW($1:$31)*3-3,,3,13))<(13*3)),INT((ROW(A1)-1)/3+1))*3+MOD(ROW(),3),COLUMN(A1)),"")
B3〜N91にデータが入っている場合です。
変更したい場合は、
=INDEX($A:$N,
の$A:$Nを日付列とデータが入っている列全体を指定
,AGGREGATE(15,6,ROW($1:$31)
ROW($1:$31)内の$1:$31、何日分の日付があるのか。
/(COUNTBLANK(OFFSET($B$3,ROW($1:$31)*3-3,,3,13))<(13*3))
$B$3を最初のデータが入っているセル
ROW($1:$31)内の$1:$31、何日分の日付があるのか。
*3-3,,3何行あるのか3行なので*3-3,,3
4行なら*4-4,,4
その次の13、BからN列迄何列あるのか13列なので13を入力COLUMNS($B:$N)の方が分かりやすかったかも。
<(13*3)
データ範囲が何行、何列か。3行13列なので3*13
((ROW(A1)-1)/3+1))*3+MOD(ROW(),3)
の3の部分、3行だからです。3か所あるので4行になるなら4に変更