- 締切済み
エクセルの関数を使った抽出方法
エクセルの関数を使った抽出方法 Excelで下記のような例で抽出は出来るでしょうか? 当方はオフィス2003使用です。 何かよい方法をご存知の方がいらっしゃいましたらご指導願います。 よろしくお願いいたします。 sheet2の製品名と製品番号はsheet1の日報か抽出して出しているので関数の数式が入ってます。 【抽出前】sheet2 製品名 製品番号 AL 1D8597 BL 6F1472 BL 7Y8654 BL 9P3256 CL 3K2145 CL 2Q6321 DL 8T4578 EL 5X7412 EL 4S9127 FL 7F2369 AL 8R8456 【抽出後】sheet3 製品名 製品番号 AL 1D8597 AL 8R8456 【抽出後】sheet4 製品名 製品番号 BL 6F1472 BL 7Y8654 BL 9P3256 【抽出後】sheet5 製品名 製品番号 CL 3K2145 CL 2Q6321 以下同じです。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- kagakusuki
- ベストアンサー率51% (2610/5101)
この質問に回答が付くのが遅かった理由は、質問のカテゴリーが不適当なからだと思います。 もし、カテゴリーを デジタルライフ > ソフトウェア > Office系ソフト か或いは デジタルライフ > ソフトウェア > MS Office にされておられれば、おそらく直ぐに回答が付いたのではないかと思います。 閑話休題 今仮に、全てのSheetにおいて、A列に製品名、B列に製品番号のデーターが並び、1行目には製品名や製品番号といった項目名があり、データーは2行目以下から並ぶものとします。 又、以下の方法では、作業用のSheetとして「作業Sheet」という名称のSheetを設けて、そのA列とB列を作業列として使用します。 それと、処理の方法の都合で、抽出結果を表示させるSheetの名称は、必ずSheet3、Sheet4という様に、「『4文字の文字列』+『3以上の自然数』」という形式にして、Sheet名の中の数字は連番となる様にして下さい。 まず、「作業Sheet」という名称のSheetを設けて下さい。 そして、作業SheetのA2セルに次の数式を入力して下さい。 =IF(OR(Sheet2!$A2="",COUNTIF(Sheet2!$A$1:$A1,Sheet2!$A2)>0),"",COUNT(A$1:A1)+1) 次に、作業SheetのB2セルに次の数式を入力して下さい。 =IF(Sheet2!$B2="","",COUNTIF(Sheet2!$A$1:$A2,Sheet2!$A2)) そして、作業SheetのA2~B2の範囲をコピーして、同じ列の3行目以下に、Sheet2のデーターが表示されている行数を上回るのに充分な回数だけ、貼り付けて下さい。 次に、Sheet3のA1セルに「製品名」、B1セルに「製品番号」と入力して下さい。 次に、Sheet3のA2セルに次の数式を入力して下さい。 =IF(VALUE(MID(CELL("filename",A2),FIND(".xls]",CELL("filename",A2))+10,LEN(CELL("filename",A2))))-2>MAX(作業Sheet!$A:$A),"",INDEX(Sheet2!$A:$A,MATCH(VALUE(MID(CELL("filename",A2),FIND(".xls]",CELL("filename",A2))+10,LEN(CELL("filename",A2))))-2,作業Sheet!$A:$A))) 次に、Sheet3のB2セルに次の数式を入力して下さい。 =IF(OR($A$2="",ROWS($1:1)>COUNTIF(Sheet2!$A:$A,$A$2)),"",INDEX(Sheet2!$B:$B,SUMPRODUCT(ROW(Sheet2!$B$1:$B$999)*(Sheet2!$A$1:$A$999=$A$2)*(作業Sheet!$B$1:$B$999=ROWS($1:1))))) 尚、Sheet2にデーターが存在する行が999行を上回る場合には、上記のB2セルに入力する数式中の「999」となっている部分を、Sheet2のデーターが存在する行数を上回るのに充分な数に変更して下さい。 次に、Sheet3のB2セルをコピーして、B3セルに貼り付けて下さい。 次に、Sheet3のA3セルに次の数式を入力して下さい。 =IF($B3="","",$A$2) それから、Sheet3のA3~B3の範囲をコピーして、同じ列の4行目以下に、Sheet2のリスト中に最も多く存在する製品名の数を、上回るのに充分な回数だけ貼り付けて下さい。 次に、製品名の種類数を上回るのに充分な枚数だけ、新規のワークシートを挿入して、それらのSheet名が全て「『4文字の文字列』+『3以上の自然数』」という形式になっていて、途中の数字に欠けが無い様にして下さい。(数字に欠けがある場合や、4文字の文字列の後に数字が続いている名称では無い場合には、Sheet名を修正して下さい) それから、Sheet3のA列とB列をコピーして、Sheet4以降のSheetのA列とB列に貼り付けて下さい。 以上で完成です。
お礼
ご回答ありがとうございました。参考になりました。