①のようなエクセルの表から②③④⑤の表が自動的に作成できるようにしたいのですが、どなたかお知恵を拝借できますでしょうか?

画像

Excel143閲覧

ベストアンサー

0
画像

ThanksImg質問者からのお礼コメント

早急なご対応ありがとうございます。

お礼日時:2/26 23:39

その他の回答(2件)

0

数式、というよりひょうの作り方が問題です。 下に返したのでは元の表のレコード数が限定されてしまいます。 かといって右に返すと日付が限定されます。 やはり別のシートに引っ張るのがいいと思いますがAグループとBグループ別々のシートでもいいのですが、グループ名をリストから選ぶのがコンパクトに収まります。 別シートのB1セルにAとBを選択できるようにドロップダウンリストを設定します。 3行目に元の表と同じ日付を右に展開します。 A4セルに =IFERROR(FILTER(Sheet4!$A:$A,(Sheet4!$B:$B=$B1)*(Sheet4!C:C="○")),"") と入れて日付の分だけ右にコピーします。

画像

上記の通りSheet4,sheet5,sheet6で試してみましたが、「この数式は正しくありません」と表示され、数式のFILTERのところがグレーに表示されます。氏名も勿論反映されず、空白のままです。

0

上の表がお示しの通りの表としてA列からAG列までの表とします。 お求めの表でA8セルにはAグループの文字が、横方向には日付を入力するのですが3列を1日当たりに列に使うとしてB8セルには次の式を入力して横方向にドラッグコピーします。 =IF(MOD(COLUMN(A1),3)<>1,"",INDEX($C$1:$AG$1,ROUNDUP(COLUMN(A1)/3,0))) またBグループについてはA15セルにBグループの文字をB15セルには次の式を入力して横方向にドラッグコピーします。 =IF(MOD(COLUMN(A1),3)<>1,"",INDEX($C$1:$AG$1,ROUNDUP(COLUMN(A1)/3,0))) 次にお望みの名前を表示するのですがB9セルには次の式を入力して横方向にドラッグコピーしたのちに13行まで下方にドラッグコピーします。 =IF(B$8="","",IFERROR(INDEX($A$2:$A$6,SMALL(INDEX((INDEX($C$2:$AG$6,1,MATCH(B$8,$C$1:$AG$1,0)):INDEX($C$2:$AG$6,5,MATCH(B$8,$C$1:$AG$1,0))<>"〇")*10^5+($B$2:$B$6<>"A")*10^5+ROW($1:$5),),ROW(A1))),"")) B16セルには次の式を入力して横方向にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(B$15="","",IFERROR(INDEX($A$2:$A$6,SMALL(INDEX((INDEX($C$2:$AG$6,1,MATCH(B$15,$C$1:$AG$1,0)):INDEX($C$2:$AG$6,5,MATCH(B$15,$C$1:$AG$1,0))<>"〇")*10^5+($B$2:$B$6<>"B")*10^5+ROW($1:$5),),ROW(A1))),"")