- ベストアンサー
Excel2007 表からの抽出方法を教えてください!
- Excel2007で年間スケジュール表から特定の月の日にちと場所を抽出する方法を教えてください。
- 試した関数ではうまくいかず、困っています。お助けください。
- 勤務表に出勤場所を自動で表示できるような表を作りたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
お示しの表がシート1に有るとして4月や5月と1行目に表示されているデータは例えば2012年4月と入力してセルの表示形式で4月のようになっているとします。 そこでお求めの表をシート2に表示させるとしてA1セルには2012年4月のように入力します。セル自体は2012/4/1のように認識されています。 そこでA2セルには日付、B2セルには曜日、C2セルには勤務地と文字を入力します。 A3セルには次の式を入力してセルの表示形式で d のように設定します。下方にドラッグコピーします。 =IF(MONTH(A$1-1+ROW(A1))<>MONTH(A$1),"",A$1-1+ROW(A1)) B3セルには次の式を入力して下方にドラッグコピーします。 =IF(A3="","",TEXT(A3,"aaa")) C3セルには次の式を入力して下方にドラッグコピーします。 =IF(A3="","",INDEX(Sheet1!$A$1:$AV$33,ROW(A1)+3,MATCH($A$1,Sheet1!$A$1:$AV$1,0)+2)&IF(AND(INDEX(Sheet1!$A$1:$AV$33,ROW(A1)+3,MATCH($A$1,Sheet1!$A$1:$AV$1,0)+2)<>0,INDEX(Sheet1!$A$1:$AV$33,ROW(A1)+3,MATCH($A$1,Sheet1!$A$1:$AV$1,0)+3)<>0),","&INDEX(Sheet1!$A$1:$AV$33,ROW(A1)+3,MATCH($A$1,Sheet1!$A$1:$AV$1,0)+3),IF(INDEX(Sheet1!$A$1:$AV$33,ROW(A1)+3,MATCH($A$1,Sheet1!$A$1:$AV$1,0)+3)<>0,INDEX(Sheet1!$A$1:$AV$33,ROW(A1)+3,MATCH($A$1,Sheet1!$A$1:$AV$1,0)+3),""))) 式が長くなっているのは午前と午後で勤務地が違っているような場合にカンマを付けた表示にするためです。
その他の回答 (1)
- aokii
- ベストアンサー率23% (5210/22062)
Sheet2のE1セルに、 2012年4月(←手入力して毎月変更) を記入することにして、 Sheet2のA1セルに、以下の式を入れ、 =HLOOKUP(MONTH(E1)&"月",Sheet1!1:1,1,FALSE) Sheet2のA4セルに、以下の式を入れて、下にドラッグコピーし、 =HLOOKUP($A$1,Sheet1!$1:$34,ROW(),FALSE) Sheet2のB4セルに、以下の式を入れて、下と右2列にドラッグコピー、してみて下さい。 =INDIRECT("Sheet1!R"&ROW()&"C"&MATCH($A$1,Sheet1!$1:$1)+COLUMN()-1,0)
お礼
回答ありがとうございます。 記載通り入力してできました♪ 勤務地まで表示されるとありがたいのですが(^_^;)
お礼
回答ありがとうございます。 私の頭ではちょっと難しいかな(^_^;) デモ 理解できるように頑張ります! ありがとうございました<m(__)m>