[[20220922123301]] 『マクロでフィルタ検索で切取をしたい』(教えて下さい) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロでフィルタ検索で切取をしたい』(教えて下さい)

エクセルマクロを使用してフィルタ検索でデータを切取したい!

※1※フィルタで検索した際に表示されたデータを切り取って別シートに貼付
再びフィルタで検索した際に表示されたデータを切り取って別シートに貼付
これを行う事は可能ですか?
2回行うのは、検索した文言が3個あり一度に2個までしか検索できない為です。一度に3個選択できれば良いのですが…

また、切取を行うのは、切取終わったシートにそのデータが無い状態で
※2※更に切取かコピーの処理を行う必要がある為です。

最初に行う(※1※)検索文言は、大分類・中分類・小分類とあると小分類の文言で検索します
次に※2※で行う検索が大分類で検索する為、データが残っていると再度ダブってデータが張り付いてしまうからです。

もちろん、コピペでその後に元シートのデータを消すみたいな形でも問題ありません。
それか、別の場所にフラグを付けて検索対象から外すなど

データは、B列からZ列まであります。

かなり分かりずらい説明ですみませんがヒントやもちろん答えが分かれば教えて下さい。

< 使用 Excel:Office365、使用 OS:Windows10 >


 オートフィルタではなく、フィルタの詳細設定(AdvancedFilter)を使いましょう
 抽出条件をいくつでも設定できます
(´・ω・`) 2022/09/22(木) 13:03

既に適切なご案内がありますが
365なら、
filter関数でも出来るかもです。自信ありませんが^^;多分。。。←あやしい
(隠居Z) 2022/09/22(木) 16:09

 Option Explicit
Private Sub zDDMK()
    Dim i&, iMax, rn&, j&, y&, k&
    Rnd -5
    With Worksheets(1)
        .UsedRange.Delete
        iMax = 50
        y = 1
        .Cells(1).Resize(, 4) = Array("大分類", "中分類", "小分類", "科目名")
        For k = 5 To 26
            .Cells(1, k) = "値" & k
        Next
        Do
            i = i + 1
            If i Mod 16 = 0 Then DoEvents
            If i > iMax Then Exit Do
            rn = Int((5 - 1 + 1) * Rnd + 1)
            For j = 1 To rn
                y = y + 1
                .Cells(y, 1) = Int((5 - 1 + 1) * Rnd + 1)
                .Cells(y, 2) = Int((9 - 1 + 1) * Rnd + 1) * 10
                .Cells(y, 3) = Int((20 - 0 + 1) * Rnd + 0) * 100
                .Cells(y, 4) = Chr(Int((90 - 65 + 1) * Rnd + 65)) & i & j
                .Range(.Cells(y, 5), .Cells(y, 26)) = WorksheetFunction.RandBetween(10, 99) * 100
            Next
        Loop
    End With
End Sub
テストデーターを一番左端のシートに作ってみました
相違点がありましたら、ご指摘ください。^^;
m(__)m
(隠居Z) 2022/09/22(木) 16:21

御回答ありがとうございます。
今は、「AdvancedFilter」について色々と調べてます
これの使い方がわからない…

B列〜Z列までの表で
検索したい場所はG列で色々な会社名の欄になります。
山田(株)札幌支店
山田(株)沖縄支店
鈴木(株)秋田支店
鈴木(株)東京本社
秋庭(株)
平井(株)
などなど
そこで検索したいのが
山田・鈴木・秋庭を検索したいとした場合で考えてます。

****************

抽出先
選択範囲内
指定した範囲

リスト範囲
検索条件範囲
抽出範囲(指定した範囲を選択しないと使えない)
重複するレコードは無視する

****************

こんな感じになってますが

抽出先
選択範囲内を選択
リスト範囲を$G:$G
検索条件範囲を$A$2:$A$4

A列の2行目から4行目に検索したい社名を入れてます

この様にしたのですが、何も表示されない形になってしまいます…
どうしたらいいのでしょうか?

ネット見てるのですが、こういつ使い方が出てなくて…

マクロの方は別日に試してみます。
ありがとうございます。
(教えて下さい) 2022/09/22(木) 17:01


1行目は見出し(列タイトルですよ)
http://www4.synapse.ne.jp/yone/excel2010/excel2010_filter21.html
(リンクの冒険) 2022/09/22(木) 17:15

元情報がSheet1のB1:Z139[一行目は項目名]として、他のシートのセルに
=FILTER(Sheet1!B2:Z139,(Sheet1!G2:G139=Sheet1!A2)+(Sheet1!G2:G139=Sheet1!A3)+(Sheet1!G2:G139=Sheet1!A4))
とかでは、どうなりますでせう。^^;
m(_ _)m
(隠居Z) 2022/09/22(木) 19:42

検索条件は部分一致ですよね。だとしたら、下記の式でどうでしょう。

=FILTER(Sheet1!B2:Z139,IFERROR(FIND(Sheet1!A2,Sheet1!G2:G139),0)
+IFERROR(FIND(Sheet1!A3,Sheet1!G2:G139),0)
+IFERROR(FIND(Sheet1!A4,Sheet1!G2:G139),0))

(hatena) 2022/09/22(木) 22:53


フィルターオプションを用いるには「見出し」が必要です。
G列の見出しに「会社名」とあるのなら、
検索条件範囲である、A列の見出しも「会社名」とする必要があり、
その範囲を見出しを含めた「$A$1:$A$4」とすれば、想定通りの結果になります。

リンクの冒険さんが紹介されている記事に詳しい解説があります。

(トライフォース) 2022/09/22(木) 23:33


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.