プロが教えるわが家の防犯対策術!

すいません、よく似た質問が何度も出ているのはわかっているのですが、うまくできません。
エクセル2007で図のような表を作成しています。
A欄の「件名」のあ、い、う、は決まっていて、B欄の「数値」に当てはまる数字を入力すると、
C欄の「種類」に1~10はA、11~20はB、21以上はCという関数を入れます。
そこまではできたのですが、
別シートにAのみ、次のシートにBのみとシート毎に種類別のシートを作りたいのです。
オートフィルタだと数がたくさんあるので、関数で抜き出したいです。
お得意な方どうか、教えてください。よろしくお願いします。

「エクセルの表から関数を使って種類別に別シ」の質問画像

A 回答 (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に準じてコピー&ペーストで作成してください。

提示されたデータの範囲で数式を組み立てていますので実際のデータに合わせて行番号を変更してください。
「エクセルの表から関数を使って種類別に別シ」の回答画像4
    • good
    • 0
この回答へのお礼

ありがとうございました!できました。うれしいです!!
後もしできたら
別のシートに、AとBの両方が混じったデータを抽出したシートも作りたいのですが、それもできますでしょうか?

お礼日時:2014/07/10 13:41

No.2です。



前回は大きな勘違いをしていました。
無視してください。m(_ _)m
    • good
    • 0
この回答へのお礼

いえ、でも考えていただきありがとうござました。また教えてください。

お礼日時:2014/07/10 13:42

こんばんは!


今回の場合は種類が少ないので、IF関数のネストで対応できますが、
今後のために・・・
種類がいくつでも対応できる方法です。

↓のような対応表を作成しておきます。

そして、C2セルに
=IF(B2="","",VLOOKUP(B2,E:G,3,1))
という数式を入れフィルハンドルで下へコピー!
これで画像のような感じになります。

※ 表を作成せずにやる方法としてはC3セルに
=IF(B2="","",INDEX({"A","B","C"},MATCH(B2,{0,11,21},1)))
という数式を入れ下へコピー!

これでも同様の結果になると思います。m(_ _)m
「エクセルの表から関数を使って種類別に別シ」の回答画像2
    • good
    • 0

ご質問の画像はご相談で書かれてるエクセル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))
と記入、以下コピーする
    • good
    • 1
この回答へのお礼

すみません、エクセルは家のが2003だったので、その画面が出てしまいました。今会社のを確認したらさらに、2010でした。
そしてなんかうまくいきませんでした。。。
せっかく考えてくださったのに、ごめんなさい。
またよい方法がありましたら教えてください。ありがとうございました。

お礼日時:2014/07/10 13:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!