- ベストアンサー
エクセルの表から関数を使って種類別に別シートに抽出
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
Sheet1に元データがあるとします。 種類Aのシート名はSheetA、種類BはSheetBのように定義したとして説明します。 SheetAのC1セルに種類の文字"A"を入力します。 SheetAのA2セルに次の数式を入力します。 =IFERROR(INDEX(Sheet1!$A$1:$B$6,SUMPRODUCT(LARGE((Sheet1!$C$1:$C$6=$C$1)*ROW(A$1:A$6),COUNTIF(Sheet1!$C$1:$C$6,$C$1)-ROW(A1)+1)),COLUMN()),"") A2セルをB2へコピーし、A2とB2を選択して下へ必要数コピーします。 SheetAの必要範囲(全範囲でも良い)を選択し、コピー&ペーストでSheetBへコピーします。 SheetBのC1セルの文字を"B"に変更します。 SheetCはSheetBに準じてコピー&ペーストで作成してください。 提示されたデータの範囲で数式を組み立てていますので実際のデータに合わせて行番号を変更してください。
その他の回答 (3)
- tom04
- ベストアンサー率49% (2537/5117)
No.2です。 前回は大きな勘違いをしていました。 無視してください。m(_ _)m
お礼
いえ、でも考えていただきありがとうござました。また教えてください。
- tom04
- ベストアンサー率49% (2537/5117)
- keithin
- ベストアンサー率66% (5278/7941)
ご質問の画像はご相談で書かれてるエクセル2007じゃありませんが、実際どっちを使ってるのでしょう。 ご利用のソフトのバージョンによって、簡単な関数で出来たり、結構メンドクサイ事をしなきゃならなかったりします。 ここでは画像のエクセル2003を含めて全部のバージョンで使える代わりに、数式自体はメンドクサイやり方でお話しすることにします。 【あなたにも必ずできる簡単な方法】 Sheet1に元データ 件名をB列 数値をC列 種類をD列 にそれぞれ配置する A1には「検索キー」と記入 A2には =IF(D2="","",D2&COUNTIF($D$2:D2,D2)) と記入、以下コピーしておく 「A」のシートの A1には件名、B1に数値と記入 A2には =IF(ROW(A1)>COUNTIF(Sheet1!D:D,"A"),"",VLOOKUP("A"&ROW(A1),Sheet1!A:D,2,FALSE)) B2には =IF(A2="","",VLOOKUP("A"&ROW(A1),Sheet1!A:D,3,FALSE)) と記入、以下コピーしておく 【数式はめんどくさいけどコピーだけするのは簡単な方法】 (もっとも似たようなご相談と回答は必ず毎日こちらのような相談室に寄せられるので、それらを見て出来なかったのなら改めていま教わってもやっぱり出来ないかもしれません) Sheet1に元データ 件名をA列 数値をB列 種類をC列 にそれぞれ配置する 「A」のシートの A1には件名、B1に数値と記入 A2には =IF(ROW(A1)>COUNTIF(Sheet1!C:C,"A"),"",INDEX(Sheet1!A:A,SMALL(IF(Sheet1!$C$1:$C$1000="A",ROW($C$1:$C$1000),9999),ROW(A1)))&"") と記入、必ずコントロールキーとシフトキーを押しながらEnterで入力、以下コピーする B2(簡易版)には =IF(A2="","",VLOOKUP(A2,Sheet1!A:B,2,FALSE)) と記入、以下コピーする
お礼
すみません、エクセルは家のが2003だったので、その画面が出てしまいました。今会社のを確認したらさらに、2010でした。 そしてなんかうまくいきませんでした。。。 せっかく考えてくださったのに、ごめんなさい。 またよい方法がありましたら教えてください。ありがとうございました。
お礼
ありがとうございました!できました。うれしいです!! 後もしできたら 別のシートに、AとBの両方が混じったデータを抽出したシートも作りたいのですが、それもできますでしょうか?