• 締切済み

Excelデータを条件毎に分類したい

Wendy02の回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 フィルタオプションではなくて、たぶん、オートフィルタのように思いますね。 たぶん、こういうことだと思います。そこに数はいくつでもよいわけですからね。 Sub FilterUsedChecker() Dim Sh1 As Worksheet Dim Sh2 As Worksheet Set Sh1 = Worksheets("Sheet1") Set Sh2 = Worksheets("Sheet2") Application.ScreenUpdating = False With Sh1.Range("A1").CurrentRegion For i = 2 To Sh2.Range("A65536").End(xlUp).Row  .AutoFilter Field:=1, Criteria1:=Sh2.Cells(i, 1).Value  .AutoFilter Field:=2, Criteria1:=Sh2.Cells(i, 2).Value  .AutoFilter Field:=3, Criteria1:=Sh2.Cells(i, 3).Value  On Error Resume Next   .Columns(4).Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Value = Sh2.Cells(i, 4).Value  On Error GoTo 0 Next .AutoFilter End With Application.ScreenUpdating = True Set Sh1 = Nothing: Set Sh2 = Nothing End Sub

kyoutofu
質問者

補足

仕事が立て込んでおり、お礼が遅くなってしまい、失礼致しました。処理を確認させていただきました。列数に関しては・AutoFilter Field:=~を増やし、 .Columns(4).~の列Noを変える事で仰るとおりに上手く出来ました。有難うございました。ただ、最初に説明不足をお詫びしたのですが、まだ上手く伝わってなかったようですね。仮にA~E列まであるデータが100行あるとします。これを抽出する条件として、B列に「あ」、C列に「い」、D列に「う」と入力した場合、指定した列と条件があっているデータは全て抽出したかったのです(A、Eの条件は問わない)。作成していただいたマクロではA列=空白、B列=「あ」、C列=「い」、D列=「う」、E列=空白 のデータのみの抽出ですので、私の意図するところとちょっと違うのです。お手間を取らせて申し訳ございませんでした

関連するQ&A

  • エクセル、条件をつけてのデータ反映計算式

    エクセルにて、条件をつけてのデータ反映計算式をお教え下さい。 ※過去質問など検索しましたが、ピッタリあうものをさがす事ができず、 自己解決できなかった質問させていただきます。 【内容】 ・シート1とシート2の品番が一致している事が条件。 ・シート2にある「D 原価」を、シート1「E (空欄)」に反映させたい。 シート1 A 商品名 B 売価 C 品番 D 個数 E (空欄) シート2 A 商品名 B 売価 C 品番 D 原価 【追加質問】 ・今回異なるシートを検索対象としましたが、 別データ(ブック)を対象にして、検索できますでしょうか。 ・「シート1とシート2の品番が一致している事が条件。」とは別に、 「(もしくは)シート1とシート2の商品名が一致している事が条件。」を 加えることはできますでしょうか。 以上です。どうぞよろしくお願いします。

  • VBAでのデータ並び替え、条件判断について

    Excel2003、VBA6.5でマクロに挑戦しているVBA初心者です。 学生時代にプログラムはかじった事があるのですが、マクロは勝手が分からず、 以下のようなマクロを組みたいのですが、そもそもプログラムはどこの ウィンドウに書くのか?という辺りから調べ出す始末のため、皆様の お知恵をお借りしたく、投稿しました。 【目的】 Sheet1に貼り付けられたデータを、精査(並び替え、条件判断)し、結果をSheet2に出力させたい。 Sheet1(入力データ) 1行目は項目名 データA1,データB1,データC1,データD1,データE1 データA2,データB2,データC2,データD2,データE2 … … データA11,データB11,データC12,データD11,データE11 データA12,データB12,データC12,データD12,データE12 ※データEのみ、整数型で後は文字データになります。  また行数というか、データ量は20~30行程度を想定してます。 Sheet2(出力データ) 1行目は項目名 日付,データB1+データC1の文字列を結合,固定値2,条件判断結果1(データD1より条件判断) 日付,データB2+データC2の文字列を結合,固定値2,条件判断結果2(データD2より条件判断) … ※Sheet1のデータ1行は、すべてが必要でありません。一部のみがあればOKです。  上記の例だと、Sheet1のデータAとEはSheet2では不要です。 ※日付…マクロを走らせた日付をMM/DD形式で出力させたい ※条件判断結果…(データD1がAMだったら09:00、PMだったら13:00、PM2だったら15:00という値を返すようにしたい) 流れを考えてみましたが、 1)データ型を宣言して、 2)1行を配列に読み込む 3) a)データB列、C列の文字列を結合  b)データD列の条件分岐 4)配列からデータを書き出す 5)Sheet1の行が空白だったら処理完了 という感じかと思っているのですが、具体的にマクロにできず(関数をうまく使えず)、困っています。 Findメソッドか、Vlookupあたりで必要になるデータだけ、Sheet1で検索した結果をSheet2に埋めて 行く形でもできるのかな、とも思いましたが、こちらも具体的にマクロにできません。 特に処理スピードにこだわるわけではないですが、あとあと見返して勉強およびメンテできるような、 シンプルなカタチ(1行にコマンドを詰め込んだ複雑な形ではなく)にしていただけると助かります。 どうぞご教授いただけませんでしょうか。 よろしくお願いいたします。

  • エクセルで条件に合わせて複数データを抽出したい

    シート1に基本データ(基データ)があり、シート2のセル内に条件を入れて、該当のデータをシート1から引っ張りたい。 具体的には、シート1に基本データ  ナンバ- 1 1 2 2 2 3 4 4 4  該当データ A B C D E F G H I シート2に 条件内容 1を入れてA B (複数データ)      2を入れてC D E       3を入れてF -----と、こんな具合になりたいのですが?   VLOOKUP は複数の抽出なので駄目でした。   

  • 「エクセルでのデータ検索」について

    「エクセルでのデータ検索」について 基本的な質問ですいません。 エクセルで、以下のようなことをしたいのですが・・・ 【シートA】   A  B  C  D E 1   ○ △ □ ◇ 2 あ ※ ※ ※ ※ 3 い ※ ※ ※ ※ 4 う ※ ※ ※ ※ (※は任意の数値) このとき、【シートB】に以下のように「◇」「う」と入力すると “B2”欄に【シートA】の“E4”(=「◇」と「う」の交差する位置) の値が出るようにしたいのです。  【シートB】   A  B  C  D E 1   ◇ 2 う 3 4   ちなみに【シートB】に入力する値はその都度変わるので、VLOOKUPや INDEXではうまくいきませんでした。 実際は長めのマクロで行っている作業の内の一部ですので、「関数」でも 「マクロ」でも、どちらでも対応できます。 ご教示のほど、よろしくお願いいたします。   

  • エクセル 複数の条件?

    お世話になります。エクセル2007です。 商品の卸値を決めるのに複数の工程別単価シートから参照して計算してだそうとしてます。 卸値=(A工程の単価 + B工程の単価) * 自社マージンかけ率 例えば、A工程のX社、Y社、Z社の納品書のシートを コピーしてまとめてA工程単価シートをつくり、商品単価の入るシートにVLOOKUPで、よびだしています。 今まではA工程だけだったのですが、B工程も計算したいと思ったのですが、うまくつくれません。     A    B    C     D            E  1 卸値  数量  売上 A工程単価    B工程単価 今までの式はA1に =(IF(ISERROR(D1),0,ROUNDDOWN((D1*10/7.5),-1))) で、 常に総売り上げや平均卸値などを もだしたいので エラーを0にして総売上は =SUM(C:C)のように 計算しています。 A工程はあるけれど、B工程はない仕事もあり、 場合には C1のB工程のセルにエラーが出てしまいますが、 複数の条件でどういった式をいれればいいのかわかりません。 D1にデータがありE1がエラーのときはB1のA工程だけの単価で計算したいです。 B工程だけのときはありえないので、エラーでOKです。 もっとシンプルに質問できたかもしれませんが いろいろ書いてしまいました。すみません。 どうぞよろしくお願いします。

  • EXCELを使ってデータ抽出の方法

    二つのシートから、品番の違うものを抽出したいのです。たとえば: シート1に 品番 A-654565-005-2 B-789456-003-4 C-258369-001-3 E-357689-009-9 D-147258-004-4 d-147258-005-5 usp-3690258-006-8 usp-3690258-006-8 シート2に 品番 A-654565-005-2 B-789456-003-4 C-258369-001-3 d-147258-005-5 があります。シート1とシート2と比べると、「usp-3690258-006-8」のような品番がないのです。そのようなもの(シート2にないもの)を全部シート3に抽出したいのです。やり方を教えてください。よろしくお願いします。

  • エクセルのデータ照合

    AとB2つのエクセルシートがあって、Aのシートのデータが Bのシートにもあるかどうかを調べる時どのようにすればいいのでしょうか? 例えば・・・、 <シートA>    A  B C D E F G <シートB> A B H I というエクセルデータがあって、シートBのデータがシートAにあるか どうか(AとBはあるのでYES、HIはないのでNO)など一発で 検索する方法を教えていただけないでしょうか? 宜しくお願いします。

  • 【エクセル】別シートの元データを、分類方法を変えて集計する方法

    シートA(集計元データ)を、シートB(集計表)に、Bの分類条件にあったデータを検索かつ集計する方法を教えてください。 ○シートA)集計元データの様式 (列a)大分類/条件1、(b)中分類/条件2、(c)小分類/条件3、(d)データ(1)、(e)データ(2)  ↓ ○シートB)集計表の様式 (列a)条件2、(b)条件3、(c)データ(1)、(d)データ(2) ○その他 ※シートA(元データ)の条件(1~3)に該当する内容は、集計期間により変動する(様式は変わらない)が、集計表の様式・条件(2~3)・条件に該当する内容は固定なので、シートAから該当するデータを検索して、シートBに集計しなければならない。 ※シートBでは、集計元データ大分類(条件1)を表記せず、条件2・3から表記するため、その分、データの集計が必要となる。 条件が2列に分かれているためSUMIFが使えず、DSUM・SUMPRODUT・DSUM等など、素人なりに調べて試してみましたが、どうしてもできません。できない理由も含めて、教えていただければと思います。 内容がわかりにくいと思いますが、どうかよろしくお願いいたします。

  • VBAで複数条件検索どうすればよいですか?

    【Sheet1】 発注日   品番    ロットNo      納品日   A     B      C          D 1 3/11  553  111-111-1111   3/17 2 3/11  123  222-222-2222 3 3/11  223  333-333-3333 4 3/12  123  444-444-4444   3/17 5 3/12  553  555-555-5555 【Sheet2】  納品日  品番   ロットNo    A    B     C 1  3/17  553  111-111-1111 2  3/17  123  444-444-4444 3  3/17  223  666-666-6666 エクセル2010・VBAで、【Sheet2】の品番とロットNoの条件に合う行を【Sheet1】より探し、【Sheet1】D列に納品日を入力し、その行のロットNoを明るい緑で塗りつぶす。 【Sheet2】の条件が【Sheet1】にないなら【Sheet2】の行のロットNoを、赤で塗りつぶす。 【Sheet1】は発注リスト、【Sheet2】は納品リストになります。 納品日は検索した日の日付になります。 Findを使い試行錯誤しましたが、思うように動かず、スキル不足で困っています。どなたか、ご教授願います。宜しくお願い致します。

  • マスタシートと同じデータがあれば横にデータを貼り付けていく。

    シート1の品番を基準にし、シート2に同じ品番があればシート1の品番とデータの横にシート2のデータを貼り付けていく。次にシート3に移り繰り返し。 (シート1) | A | B | C | D 1 | 1a| 1 | 9 | 2 2 | 2a| 4 | 7 | 1  ・  ・  ・ A列に品番、B列に枚数、C列に最高数、D列に最低数が入ってます。 (シート2) | A | B | C | D 1 | 1a| 2 | 8 | 1 2 | 3a| 3 | 5 | 3 ・  ・  ・ シート1と同じ形式です。 (シート1)↓こうしたいです。 | A | B | C | D | E | F | G | 1 | 1a| 1 | 9 | 2 | 2 | 8 | 1 | 2 | 2a| 4 | 7 | 1 | A列の品番と同じであればその横(列)に枚数、最高数、最低数のデータを貼り付けていきたいのです。 シート数とデータ数はその時々により減ったり増えたりと変化します。 エクセル2000です。 わかる方、よろしくお願いします。