質問: エクセルで別シートに表示 a列に月日、b列に作業者名、c列に勤務体系(早番、遅番、他)があり、月日は4/1~3/31まであります。作業者名は多く、日々変動があります。 これを別シートに別表として表示します。 a列に月日、b列以降、c,d,e...に各作業者名が入り、個人別の勤務一覧となります。 例えば4/1 阿部 早番、石川 遅番のように月日と作業者名の交差セルに勤務体系が入るようにしたいのですが、作業者が変動するのでうまくいきません。 どなたかお助けください。
回答: no1です。 >fujillinさんの通りの内容のシートになります。 もう一度読み直したら、どうやら違う気がしてきました。 作成したいシートは、日付と作業者が項目軸となっているマトリックスに、勤務形態をプロットするイメージではなかろうかと思い直しましたので、ひとまずその内容で回答します。 違っているかも知れませんが、添付図のような構成を想定しました。 ・上段がsheet1で日々記入(?)してゆく元シート ・下段が、それを基にマトリックス状に整理したシート のイメージです。 sheet1で同じ日に同じ人が複数記入されていると(誤記入?)、マトリックスに該当するデータが複数あることになってしまいますが、先にヒットした方を採用し、ダブっていることのチェックは行っていません。 (もしも、そのようなチェックを行うなら、記入側のsheet1で行った方が良いでしょう) さてご質問の内容としては、マトリックスの内部(添付図の水色部)さえ埋められれば良さそうですが、項目(添付図の黄色、黄緑色部)も含めて抽出したい場合も含めて以下に記しておきます。 ※ 元のシート名は「sheet1」と仮定します。 ※ 下記の式は、sheet1の1~999行までを対象範囲としています。 (異なる場合は調整が必要です) 添付図の下段b2セルに =iferror(if($a2="","",index(sheet1!$c:$c,aggregate(15,6,index(row($a$1:$a$999)/(sheet1!$a$1:$a$999=$a2)/(sheet1!$b$1:$b$999=b$1),,),1))),"") の式を入れて、水色部分にフィルコピーすることで、タイトルに応じた内容を検索し表示されます。 項目蘭も自動抽出したい場合は。a2セルに =iferror(index(sheet1!a:a,aggregate(15,6,index(row($a$1:$a$999)/(countif(offset(sheet1!$a$1,0,0,row($a$1:$a$999)),sheet1!$a$1:$a$999)=1),,),row(a1))),"") の式を入れて下方にフィルコピー(黄色部分) b1セルに =iferror(index(sheet1!$b:$b,aggregate(15,6,index(row($b$1:$b$999)/(countif(offset(sheet1!$b$1,0,0,row($b$1:$b$999)),sheet1!$b$1:$b$999)=1),,),column(a1))),"") の式を入れて、右方にフィルコピー(黄緑色部分) ※ 抽出は出現順に行われますので、必ずしも(何かの)順序通りになるとは限りません。