- ベストアンサー
エクセルでデータ抽出し、別シートを作成するための関数
- エクセルの2003・2007を使用して、指定の条件に一致するデータを抽出し、別のシートに作成するための関数について教えてください。
- 具体的に、B列が本日から10日間以内かつC列が空白のデータのA・B・D行を別のシートに作成する関数を教えてください。
- また、作成した別のシートには、抽出したデータの名前、日付1、備考が表示されるようにしてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
回答No1です。 サンプルBでB列の日付が数値で表示されるのは日付はシリアル値で評価されその値が表示されるのです。B列を選択して右クリックし、「セルの書式設定」から「表示形式」のタブで「日付」の中から選択すればよいでしょう。 ところで実はもう3項目を増やしたいとのこと、初めからそのようにご質問されるようにしましょう。 3項目増やした状態での式は次のように変わります。 サンプルAのシートではH2セルに次の式を入力して下方にオートフィルドラッグします。 =IF(B2="","",IF(AND(B2>=TODAY(),B2<TODAY()+10,C2=""),MAX(H$1:H1)+1,"")) サンプルBシートではA2セルに次の式を入力し右横方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。 =IF(OR(ROW(A1)>MAX(サンプルA!$H:$H),COLUMN(A1)>6),"",IF(COLUMN(A1)<=2,INDEX(サンプルA!$A:$B,MATCH(ROW(A1),サンプルA!$H:$H,0),COLUMN(A1)),IF(COLUMN(A1)>=3,INDEX(サンプルA!$A:$G,MATCH(ROW(A1),サンプルA!$H:$H,0),COLUMN(A1)+1))))
その他の回答 (1)
- KURUMITO
- ベストアンサー率42% (1835/4283)
サンプルAのシートではA1セルに氏名、A2セルから下方にデータが、B,C、D列についても1行目に項目名が2行目以降にそれぞれのデータがあるとします。 作業列をE列に作ってE2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(B2="","",IF(AND(B2>=TODAY(),B2<TODAY()+10,C2=""),MAX(E$1:E1)+1,"")) サンプルBシートではA,B,C列の1行目に項目名があるとしてA2セルには次の式を入力してC2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(ROW(A1)>MAX(サンプルA!$E:$E),"",IF(COLUMN(A1)<=2,INDEX(サンプルA!$A:$B,MATCH(ROW(A1),サンプルA!$E:$E,0),COLUMN(A1)),IF(COLUMN(A1)=3,INDEX(サンプルA!$D:$D,MATCH(ROW(A1),サンプルA!$E:$E,0)),"")))
補足
ご回答有難うございます 氏名と備考はコピペでうまく出来ました 有難うございます ただ、サンプルBの日付表示がうまく表示されないのです (40466等の数字が表示されます) また、サンプルAの後ろのほうの列からあと3項目程度サンプルBに表示したいのですが、 関数も結構変わっちゃいますか? 素人ですいません
お礼
2度も回答頂き、ありがとうございました おかげさまで無事、作業完了しました!