• 締切済み

オートフィルタの機能を別方法で出来ないでしょうか?

A B C D コード 会社名 電話番号 FAX番号 1 2 3 のデータをオートフィルタ オプションの抽出条件の中の「含む」の 使用でA~Dをそれぞれ検索しておりますが、VLOOKUPのように、セルに入力できて、さらにヒットする行を複数表示の抽出は出来ないでしょうか? 希望は別シートです。 宜しくお願い致します。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

質問の意味がこういうことですか Sheet1で A列   B列(関数の結果) asdf  1 wers was  2 sdfgas  3 aqwer zxc sdfgasd  4 Å列のA2:A8に上記データがあるとします。空き列に(このケースでは B列B2に) =IF(ISERROR(FIND("as",A2)),"",MAX($B$1:B1)+1) と入れてB8まで式を複写します。結果は上記B列の通り。 これは「as」を含む行を抜き出すつもりです。 セルA1に条件asのようなものを入れるなら、asを$A$1のようにすると 一般性を失わなくできます。 該当行に上から連番を振ったことになります。 この1,2,3・・を元に、Sheet2の第1行でSheet1のB列の1、2、3・・を探してその行Sheet1のデータをSheet2に持ってきます。 関数は、imogasi方式と称して沢山回答してますので、検索してください。INDEX関数とMATCH関数を使います。 4列(4項目)有るとワーク列を4つ必要なのが欠点ですが。 項目が4つ、コード、会社、電話、FAX有る場合は、列を指定する 数を指定すれば、上記の連番を振る式を1つにできそうです。

hiro716
質問者

お礼

ご回答有難うございます。

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

こんばんは。 #1 さんのご指摘の場合、ワークシートで使う場合は、その後、MS-Query から、SQLを書き換えて、パラメータクエリにする方法もありますが、ちょっと、難しいと思います。 やはり伝統的(20年前ぐらいから)には、フィルタ・オプションがあります。(注意:オートフィルタではありません/時々勘違いする人がいます。) 1.イベント・マクロを貼り付ける 左下のSheet2 のタブを右クリック [コードの表示]をクリック 以下を貼り付けます。 Private Sub Worksheet_Change(ByVal Target As Range) Const DB As String = "A1" 'データの範囲の左上端 Const CRT As String = "G1" '抽出条件の先頭(シートに条件を入れる場所) Const EXT As String = "J1:M1" '出力先の列(一行/4列-1~4列まで可) If Target.Address <> Range(CRT).Offset(1).Address Then Exit Sub Application.EnableEvents = False Range(DB).CurrentRegion.AdvancedFilter _      Action:=xlFilterCopy, _      CriteriaRange:=Range(CRT).CurrentRegion, _      CopyToRange:=Range(EXT), _      Unique:=False Application.EnableEvents = True End Sub 貼り付けて、場所等に問題ないのでしたら、Alt + Q で、画面を閉じます。 なん、データの範囲等は、シート名は入れないでください。 2.抽出条件の代入 G1 に、(A列項目行) 「コード」と入れる G2 に、抽出条件を入れる 抽出条件の中の「含む」 場合は、 TOKYO の場合の、Kを含む:「 *K* 」 と、アスタリスク(*)のワイルドカードをつければ、含むになります。また、Tから始まる:「T*」ということになります。試してみてください。やったことがない人は、一度は、試してみる価値はあると思います。

hiro716
質問者

お礼

ご回答有難うございます。

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.2

任意の1コードに対し、該当する会社名・電話番号・FAX番号などは 当然1葉なのですよね? 何かコードを特定するとその他の情報は芋づる式に紐付けされているので 検索時のキーとしてはコードのみで構わないのですよね? INDEX構文や他にも数々のパターンが考えられるのですが 一例としてこういうのでは如何でしょうか? お示し頂いた表が此処では仮にシート名「シート1」のA1:D3に 検索キーが検索値を表示させたいシートのA1に あるものとします 検索値を表示させたいしーとのB1に =IF(OR(OFFSET(シート1!$A$1,0,COLUMN(B1)-1,1,1)="",ISNA(VLOOKUP($A1,シート1!$A$1:$A$3,1,0))),"",VLOOKUP($A1,OFFSET(シート1!$A$1,0,0,ROW($D$3),COLUMN(B1)),COLUMN(B1),0)) と入力 必要量だけ右にコピーしてくだ… としても良いのですが そもそもoffset構文自体に参照能力があるので2度手間ですね (~ ~;)ヾ なので此処は式を =IF(ISERROR(MATCH($A1,シート1!$A$1:$A$3,0)),"",OFFSET(シート1!$A$1,MATCH($F7,シート1!$A$1:$A$3,0)-1,COLUMN(B1)-1,1,1)) とした方が良いのかも知れません 上記と同様に必要量だけ右にコピーしてください もし1コード1葉な表ではなく 検索はそれぞれに対し行わなければならない場合には また補足にでもその旨申して頂ければ 新たな構文をお作り致しますので 忌憚なくお申し付けくださいね

hiro716
質問者

お礼

ご回答有難うございます。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

「データ」「フィルタ」「フィルタオプションの設定」を使うhttp://www.geocities.jp/c4731625/sousa/Pg000076.htm 「データ」「外部データの取り込み」「新しいデータベースクエリ」で 「excel file*」を指定する。 持って来るシート・範囲を [>] で右の窓へ移動させてOK 条件を設定してOK 並べ替えの項目を設定してOK 貼り付けるセル(範囲の左上)を選択してOKで内容を抽出します。 ※同ブック内の場合は保存してから行ってください。

hiro716
質問者

お礼

ご回答有難うございます。 早速、クエリを勉強してやってみます。 他にもあれば教えてください。 宜しくお願い致します。

関連するQ&A

  • オートフィルタ機能(オートフィルタ⇒オプション⇒もどる)

    Excel2002を使っています。 オートフィルタ機能(オートフィルタ⇒オプション)を利用してデータ検索をしています。 最近になって検索は即出来ますが、「もどる」をクリックすると時間が非常にかかってしまいます。 シートのデータ数が多い過ぎるためでしょうか?(7000行位あります) 又、他によい検索方法があれば教えてください。 抽出条件は2008/01/05以上 2008/05/30以下 等でも行っています。 よろしくお願いいたします。

  • Excel2003 オートフィルタで「~で始まる」が機能しません

    いつもお世話になってます。 エクセルのオートフィルタ機能で特定の条件を満たす値(数値)を抽出したいのですが なぜか全く機能しません。 例えば、「123456」という文字列が縦列の中に含まれていて 「▼」をクリックして「オートフィルタオプション」より、 123「で始まる」値を抽出したいんですがHITしません。 しかし、123456「と等しい」であればHITするんです。 同様に、123456「より大きい」や123456「以上」もHITします。 セルの表示形式では「数値」になってます。 「標準」にしても「文字列」にしても同様の結果です。 「123456と等しい」のに123で始まらないの!? とグチを言いたくなるくらい困ってます・・・ どなたか、ヒントだけでもいいのでアドバイスお願いします。

  • エクセルのオートフィルタ機能について

    エクセルのオートフィルタ機能について エクセルのオートフィルタで、オプション機能を使えばそのセルの一部の文字(例「田中太郎、田中次郎」がセルの項目のとき、抽出条件を「田中」+「含む」とする)を含む全てのセルを抽出できますが、オプション機能を使わずに、最初からオートフィルタのリストとしてセルの項目の一部分(例の「田中」)を設定しておくことは可能でしょうか?

  • オートフィルタについて(再)

    excelにて下記のようなファイルを作成しました。 項目にてオートフィルタを実行し、抽出したい項目を 選択するのですがうまく抽出できません 1 品名 サイズ 員数 2 A  100  300 3    200  400 4 B   500  600 (品名2行目、3行目はセルの結合を実施しています。) ↓品名にてオートフィルタを実施 品名 サイズ 員数 A  100 300 2行目が抽出されない。 うまく抽出できる方法ありますでしょうか? よろしくお願いします

  • オートフィルタ後の、マクロでの値の参照に関して

    オートフィルタ後の、マクロでの値の参照に関して 下記を悩んでいます。教えて頂ければ幸いです。 マクロで、あるデーター表から、オートフィルタを使用し、必要なデーターを 抽出し、マクロ内に戻し、その後の計算で使用したいと考えています。 A列、B列、C列にそれぞれ、検索条件を指定し、オートフィルタ後、下記のような状態になります。 参照したい値は、D列になります。 下記のような例では、2.5と2.7の値をマクロ内に戻したいです。 (例:オートフィルタ後) 1行  A▼  B▼  C▼  D 16行 **  **   **  2.5   20行 **  **   **  2.7 *2~15行目は見えなくなっています。 *17~19行目は見えなくなっています。 セルを参照し、マクロ内に戻すには、どのような構文(マクロ)の記述が必要でしょうか? 【備考】 ・上記の例では、セルはD16、D20となりますが、抽出条件によっては、行番号が変わってしまいます。 ・抽出後のD列のデーター数は、常に2つです。 よろしくお願いします。

  • エクセルのオートフィルタについて

    エクセルのオートフィルタについて以下の2つの作業が可能であれば教えて下さい。 (1)1桁目の数字が1、2、3、4の四つの場合の行を抽出することは可能でしょうか?オートフィルタオプションでは「or」条件で例えば1、2の二つの場合の行の抽出はできるのですが。 (2)6桁の数字があるとして5桁目が5の数字の行を抽出することは可能でしょうか?オートフィルタオプションでは「~で始まる」や「~で終わる」行の抽出はできるのですが。

  • excel 2003 オートフィルタ!

    excel 2003で、オートフィルタがうまくいきません。 A列の2行目から、1~5までの数字がランダムに並んでいるとします。 A1セルをオートフィルタし、 条件を、オプション>3を含む で指定すると、3がフィルタされてほしいのですが 1つも抽出されません。 3で始まるもだめでした・・ フィルタで抽出するマクロをくんでいて 列は、20列以上あり、 列によって、文字や数値があります。 フォームで列を選び、検索文字を入力して Criteria1:="=*" & 検索文字 & "*", Operator:=xlAnd と言う感じでフィルタしています。 文字はできますが、数値ができないのは、なぜでしょうか・・・

  • エクセル オートフィルター

    オートフィルターについて教えて下さい。 同じシート内で、独立した複数のオートフィルターを用いることは出来ますか。下に示すような場合にAとB列に独立してオートフィルターを設定して、果物を抽出して、CとD列には野菜だけを抽出する。みたいなイメージです。オートフィルターやマクロを用いないやり方で他のやり方でもできる場合は教えて下さい。    A    B      C    D 1  りんご 果物   りんご  果物 2 キャベツ 野菜  キャベツ  野菜 3  イチゴ 果物   イチゴ  果物

  • エクセルのオートフィルタ機能がおかしいのです。

    XP、OFFICE2007のユーザです。最近、エクセルの調子がおかしいのです。以前はそういうことはなかったと思うのですが、オートフィルタをかけた後のデータの処理ができません。その症状は次のとおりです。 症状1)オートフィルタして抽出されたセルのうち、連続して抽出されたセルと、その次に抽出されたセルの間に波線が入ります。(たとえばa1:a3とa10:a11の間です。) 症状2)このまま、N×Mセルの長方形に範囲指定してコピー&ペーストなどの基本的操作を行うと、「この操作は複数の範囲には適用できません。」と表示されます。 症状3)強行すると、抽出されたセルのうち、連続セルだけ(上の例でいえば、a1:a3だけです。)がコピーされます。 そこでお訊ねします。 q1 そもそも、エクセルでは抽出データにはコピーなどの操作はできないのでしょうか。 q2 できるとすれば、どのように修復したら良いのでしょうか。 よろしくお願いします。

  • Excel2007のオートフィルタ機能

    Office2007にアップグレードしたのですが、 Excel2007のオートフィルター機能は、2003に比べ大きく 改良したようですが、以前と同様の使い方ができず困っ ております。 以前までは、抽出した結果をコピーし、張り付ければ、見 えている行の通り 貼り付けられたのですが、2007になっ てからは、見えていない行まで貼り付けられるようになっ ています。 フィルタオプションを使えば、同じことが可能ですが、 オートフィルタの結果をコピー&ペーストが容易です。 コピー&ペーストを可能にする設定や、方法があれば、 教えてください。 よろしくお願いします。

専門家に質問してみよう