• 締切済み

エクセルで指定した数字を含む検索について

初歩的な質問で申し訳ございません。 添付のような表があり、現在はA列にオートフィルタをかけて数字下二桁を入力後、ソートがかかった商品表示され、日付の 列に個数の入力を行っています。(A列の番号は20桁位あるので、実際は下4桁で検索しています。) 【現在の作業】 A列にオートフィルタから下4桁入力後に検索→日付の列に個数を入力→また検索 【理想の作業】 ある程度、検索する商品の番号の下4桁をどこかに候補として挙げ、その数字を含む行だけ表示→一気に個数だけ入力 VBAでもマクロの記録でも何かよい方法はございませんでしょうか? イメージとしては、1行目から5行目にあるオレンジのボックスの中に検索したい商品の番号4桁をいくつか入力し、それに該当する商品だけを7行目のA列から検索し、その枠ごとに記載された数字を含む行のみソートされ表示されるようにできると助かります。 どうぞよろしく御願いいたします!初歩的な質問で申し訳ございません。 添付のような表があり、現在はA列にオートフィルタをかけて数字下二桁を入力後、ソートがかかった商品表示され、日付の 列に個数の入力を行っています。(A列の番号は20桁位あるので、実際は下4桁で検索しています。) 【現在の作業】 A列にオートフィルタから下4桁入力後に検索→日付の列に個数を入力→また検索 【理想の作業】 ある程度、検索する商品の番号の下4桁をどこかに候補として挙げ、その数字を含む行だけ表示→一気に個数だけ入力 VBAでもマクロの記録でも何かよい方法はございませんでしょうか? イメージとしては、1行目から5行目にあるオレンジのボックスの中に検索したい商品の番号4桁をいくつか入力し、それに該当する商品だけを7行目のA列から検索し、その枠ごとに記載された数字を含む行のみソートされ表示されるようにできると助かります。 どうぞよろしく御願いいたします!

みんなの回答

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

下2桁なのか4桁なのかよく分かりませんが、4桁として、多分こんなことなのかなと想像しての解答です。 添付図のようなものを考えてみました。 ボタンをクリックすると、B1:F4の4行×5列に入力した値で順にフィルターをかけます。B1が終わると、B2→B1、B3→B2、B4→B3、C1→B4、C2→C1のように動きます。 ○フィルター用の表はA6の表題からです。 ○CommandButton1はフィルターを掛けて絞り込み用のデータを進めます。  フィルターではセルB1の値を使います。   ○絞り込み用のデータをあらかじめ入力しておく場所を、B1:F4の4行×5列にしています。 モジュールにはこの行数、列数の数値をセットしています。モジュールの意味が分かったら、シートの方の列数を増やして、モジュールの数値も合わせて変えてみてください。セットしておくデータを増やせます。 ○添付図を見てもらえば分かると思いますが、H列、I列にも同じ数値があります。ボタンを押すごとにセルB1から消えていくので、H列、I列~に残しておけば次回も使えるかなというくらいの意味合いです。これは必須ではありません。 「シートのコードウィンドウに貼り付けます」 Const maxRow = 4   '番号を入力しておく表の行数 Const maxColumn = 5 '番号を入力しておく表の列数 Private Sub CommandButton1_Click()   'フィルターがセットされていたら解除する   If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData      'フィルター   '  A6はフィルターの左上セル   '  B1はフィルターの条件を入力したセル   ActiveSheet.Range("A6").AutoFilter Field:=1, _         Criteria1:="=*" & Range("B1"), Operator:=xlAnd   '登録情報を進める   Dim r As Integer, c As Integer '行・列カウンタ   With Range("A1")     For c = 1 To maxColumn       For r = 1 To maxRow - 1         '上に詰める         .Offset(r - 1, c) = .Offset(r, c)       Next       '一番上を前列の一番下にする       .Offset(r - 1, c) = .Offset(0, c + 1)     Next   End With End Sub

関連するQ&A

  • エクセルで合致する数字の検索

    エクセルで合致する数字を素早く検索したいです。 例えば、A2~A50000に重複していない数字(桁数色々)が入っている場合、B1にA列の数字をどれか1つ入力すると、その一致する一行だけ表示するような方法はありますか? フィルタを使うには検索数が多すぎて大変なので、このような検索ができるか教えて下さい。

  • マクロで検索

    こんにちは。 以下のような,マクロをVBAで作りたいと考えています。アドバイスをお願い致します。 A列の2行目からA列の100行目まで,2002/5/1から100日間の日付が入力してあります。フォームに任意の日付(2002/5/1から100日間)を入力する。入力した日付と同じ日付をA列から検索し,表示する。オートフィルターを使うのでしょうか?よくわかりません。ご存知の方がおられましたら,教えてください。

  • エクセルで二つのセルにある数字の差の個数を表示したい

    エクセルでの質問です。 どう質問したら良いか、うまく伝わるかよくわからないのでわかりづらかったらすみません。 Aの列に「1」Bの列に「~」Cの列に「4」が入力されているとします。 入力されている数字は、通し番号の一部です。 Dの列に、1~4までの数字の個数である「4」を表示させたいと思っています。 1234、と指を折って数えると4になる、それです。 数字の多い方から少ない方を引いて、1を加えるというのは考えたのですが A列のみの入力でC列に入力なしの、D列の結果が「1」という場合もあり それをスマートに表示させる方法は何かないかと模索しております。 質問がわかりにくくてすみません。 A B C D 1 ~ 4 4 7 ~   1 こんな感じです。 実際は6桁の通し番号で、行も多いです。 計算式を入れて、下行にコピー。で対応したいのですが、 なんともうまくいきません。 ご教授頂けると助かります。

  • エクセルのソートについて

    こんにちは いつもお世話になっています。 エクセルのソートに関して教えてください。 A列に商品名(ふりがな情報あり)、B列に一桁と二桁の数字(標準表示形式)があります。 ソートの優先順位を第一がB列の下一桁の数字、第二がA列の商品名にする方法を教えてください。 よろしくお願いします。

  • エクセル2010の数字入力について

    電話番号入力についての質問です。 例) 01234567788 03467892233 05645672112 07865439764 ・・・ 上のように電話番号を次々と入力していくとします。 そこで、例えば、一番上の「01234567788」がまたでてきて入力する時に、下4桁の7788と入力すると、すでに入力した同じ数字が表示される、というようにしたいのですができる方法ありますでしょうか。 例えばオートコンプリート機能のように、入力した文字列を選択するといったようにできればよいのですが、数字列には使えないとの事なので、何か良い方法がありましたら、ぜひアドバイスの方よろしくお願い致しますm(_ _)m

  • VBAマクロで検索をしたい

    VBAマクロで検索をしたい 1つの列に8~11桁の数字がならんでいます。 別シートに検索シートを作り、下4桁(右から4桁)で抽出したすべての数字を出すにはどうしたらいいでしょうか?><; 例)  シート1   A列 1 0001234555 2 12345678  3 3211234555 4 987654321 5 3211234555 6 1111114555 7 12344555 8 あ123い4555  シート2  A列検索  4555 ← 入力   ↓以下が検索される  0001234555  3211234555  3211234555  1111114555  12344555  あ123い4555 ※同じ数字が並ぶ場合もあり、その場合は複数あることを示すため、その個数分出して欲しい。 ※右4桁は数字のみだがそれ以外はひらがな、カタカナが入る場合がある どなたか教えてください><;

  • エクセルで該当する数字があれば数字を表示させる方法

    いつもお世話になっています。 エクセルの名簿でA列に番号がB列に氏名が入っているとします(実際はPまで項目が あります)  番号は氏名に固有の番号で4桁です。それが200以上入っていて、同じ人間が 何度も出てきます。 その中で12名の人間を抜き出したいのですが、オートフィルタや並べ替えをしても 手間がかかります。 該当する数字があればC列に”1”と表示させるようにできれば、オートフィルタが 楽になるのですが良い方法はないでしょうか? WindowsXPでOffice2003を使用しています。 不明な点があれば補足します。よろしくお願いします。

  • エクセル2003で数字の検索ができません

    XPで、エクセルの2003を使用しています。 検索機能を使おうとしたところ、 「検索条件に一致するデータはみつかりません」とでてきます。 試しに、新しいBOOKに、A1からA5にかけて、数字の1~5を入力して、 数字の1を検索するようにしてみましたが、同じメッセージがでてきて しまいます。 オプションを見たところ、検索場所:シート  検索方向:行  検索対象:値 になっていました。 検索方向は、列に変えて試してみましたが、できませんでした。 A列をアクティブにして検索してみましたが、できません。 ちなみに、1を「あ」に変える置換も行ってみましたができませんでした。 ネットでできない理由を検索しましたが、よくわかりませんでしたので、 お分かりになる方がいらっしゃいましたら、教えていただけると助かります。 よろしくお願いしますm(_ _)m

  • Excel 数字のなかで指定した桁だけ消す

    A列にずらっと並んでいる数字から、下n桁分を削除したいのですが、そんな関数ってありますか? A列      結果(このように抜き出したい) 100,000,000 →100 100,000,000 →100 100,000,000 →100 100,000,000 →100 100,000,000 →100 100,000,000 →100 100,000,000 →100 具体的には売上一覧表があるのですが、 25,879,451,256 と、入力されていてわかりにくいので、単位を「億」にて億未満の数字を消したい。

  • excel 2003 オートフィルタ!

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

専門家に質問してみよう