- ベストアンサー
エクセルVBAで複数の条件を満たす検索方法
kunkun_129の回答
- kunkun_129
- ベストアンサー率64% (16/25)
なんどもすみません。 d1 = Sheets("Sheet1").Cells(1, 1).value d2 = Sheets("Sheet1").Cells(2, 1).value d3 = Sheets("Sheet1").Cells(3, 1).value 上のところが間違いですので、差し替えて
関連するQ&A
- エクセルで複数シートから、検索して抽出
はじめまして、右も左も分からない初心者です。 説明出来ないんですが、よろしくお願いします。 【ご質問内容】 エクセルは、XPを使用しています。 エクセルのVBAで、指定したキーワードを 含むデータを抽出したいと思っています。 【例】 Sheet1 A B C D E 1 番号 氏名 郵便番号 住所 メールアドレス 2 1 ○ △ 大阪府 ○○ 3 2 △ ○ 茨城県 ○○ Sheet2 A B C D E 1 氏名 番号 郵便番号 住所 メールアドレス 2 ○ 1 △ 福岡県 ○○ 3 △ 3 ○ 茨城県 ○○ と各シートに、列がそれぞれバラバラになっています。 茨城県を検索すると、新しいシートに、 Sheet3 A B C D E 1 氏名 番号 郵便番号 住所 メールアドレス 2 2 △ ○ 茨城県 ○○ 3 A B C D E 4 氏名 番号 郵便番号 住所 メールアドレス 5 △ 3 ○ 茨城県 ○○ という風に、抽出したいと思っています。 どうしたらいいでしょうか?? よろしくお願いします。
- 締切済み
- オフィス系ソフト
- EXCEL VBAで複数のシートの中から該当値を検索する方法について
すいません、EXCEL VBAで複数のシートの中から該当する値を検索する方法について教えていただきたいことがあります。 Sheet1 A列 B列 C列 1行 11 りんご 31 2行 12 バナナ 32 3行 13 みかん 33 4行 14 ぶどう 34 ・ ・ ・ ・ Sheet2 A列 B列 C列 1行 31 すいか 11 2行 32 レモン 12 3行 33 パイン 13 4行 34 ざくろ 14 ・ ・ ・ ・ というデータが入っているブックについて 「全部のシートを検索し、A列に11の値が入っているセルの行数及びその行のB列の値」 をSheet1のD1セルとE1セルにそれぞれ返す方法はどうしたらよろしいんでしょうか。 For Each を使うのではないかと思って色々やってみたのですが、どうも上手く作動してくれません。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- VBA 条件検索について
VBAの検索について質問です。 以下のようなものを作ろうと思います。 sheet1とsheet2がありsheet1のA、Bの数値をsheet2の同じA,Bの数値の値の行を検索して, その同じ値の行のsheet1のCの数値の値からsheet2のCの数値を引いた値をsheet3のC列に返すプログラムを作ろうと思います。空白などで同じ値がない場合はsheet3に空欄を返そうと思います。 以下に例をプログラムの実行例を示します。 sheet1 ■ A 列 B 列 C列 1: 7 | 1 | 3 2: 5 | 8 | 2 3: 2 | 3 | 1 4: 9 | 6 | 4 sheet2 ■ A 列 B列 C列 1: 2 | 3 | 4 2: 9 | 6 | 2 3: 7 | 1 | 5 4: 5| | 3 sheet3 ■ A列 B列 C列 1: 7| 1 | -2 2: 3: 2| 3 | -3 4: 9 | 6 | 2 自分で以下のプログラムを作成してみたのですが空欄が検索できなかったりしてなかなかできません。 どなたか、教えてください。お願いします。 Sub test() Dim sh1 As Object, sh2 As Object, sh3 As Object Dim d1 As String, d2 As String, a As Long Set sh1 =Sheets(“Sheet1”) Set sh2 =Sheets(“Sheet2”) Set sh3 =Sheets(“Sheet3”) For a = 1 To 3000 Step 1 d1 = sh1.Cells(a,1) & sh1.Cells(a,2) d2 = sh2.Cells(a,1) & sh2.Cells(a,2) Do while d2 <>”” If d1 = d2 Then Sh3.Cells(a,1) = sh1.Cells(a,1) Sh3.Cells(a,2) = sh1.Cells(a,2) Sh3.Cells(a,3) = sh1.Cells(a,3) Exit Do End If a= a+1 d2 = sh2.Cells(a,1) & sh2.Cells(a,2) Loop Next End Sub
- ベストアンサー
- Visual Basic
- Excelの検索について
シート1に、 A列 B列 C列 …G列 氏名 番号 年月日1 …年月日2 が入力されています。 B列[番号]が"3"のときのみ、それと同じ行のA列[氏名]、C列[年月日1]、G列[年月日2]をシート2に、上から詰めて返す方法を教えてください。 難しく考えずに、VLOOKでいけるのでしょうか。
- ベストアンサー
- Excel(エクセル)
- Excel vba 条件検索?について
できるのかどうかわからないのですが Sheet1 にIPアドレスの一覧があり Sheet2 にA列に192.10.2.* B列にhonsya と書いた一覧があるとして (例に挙げてるIPは適当です・・・。) Sheet1のIPアドレスの第3オクテッド目までの値とSheet2のA列の第3オクテッド目までの値を比べてSheet2の値に該当したものB列の値を出力するその際に 出力データの前後に文字を足して出力。 Sheet1にあるデータ分を行い データは出力したデータの下に 出力していく といった形をとりたいのですが 本当にできるのでしょうか?
- 締切済み
- その他(プログラミング・開発)
- エクセルVBA 検索機能を利用したデータ抽出方法
■主な目的 顧客の住所データベースのうち 市町村の合併等により変更されたものを 抽出します。 自分で考えたのですが行き詰りました。 誰か助けてください。 ■エクセルファイルのシート構成と処理方法 シートは3枚あります。 (1)sheet1 旧住所一覧 A列に旧住所の一覧が約60行にわたって記載されいてます。 西白河郡表郷村 大野郡和泉村 神崎郡神崎町 ・ ・ (2)sheet2 顧客データベース A列に顧客コード、B列に顧客名、C列に郵便番号、D列に顧客住所が約7000行にわたって記載されています。 (3)sheet3 抽出用シート sheet1のA1の値をsheet2のD列を対象として検索をかけ、該当した行(A~D列)をそのままsheet3にコピーし、あとはそれを繰り返します。 私のやり方は cells(行、列)、ForNext、seach関数等を組み合わせてやろうとしましたが、serch関数のセル位置取得がRange("行列")形式になり、それをどうやったらsheet3に行をA~Dまで丸ごとコピーできるのかわからず降参しました。 よろしくおねがいします。
- ベストアンサー
- Visual Basic
- Excel VBAを使って会員検索
Sheet1のA列に会員番号、B列に氏名、C列にフリガナ、D列に住所といったデータがあります。 Sheet2のA列に会員番号のみがあります。 この2つのデータを照合して、一致した場合のみ、Sheet1の該当会員データの横のセルに“一致”もしくは“1”などの値(上の例だとSheet1のE列に)を入力できるようなVBAを組みたいのですが、教えていただけますでしょうか?
- ベストアンサー
- オフィス系ソフト
- excelで複数条件での検索方法
列1 列2 列3 列4 列5 列6 列7 列8 列9 列10 列11 列12 1 0 1 0 1 1 1 名前 住所 電話 名前2 名前3 1 1 0 1 1 0 1 名前 住所 電話 名前2 名前3 1 1 1 1 0 1 0 名前 住所 電話 名前2 名前3 のような表があります。(名前2、名前3は全てに入っているわけではありません) 列1が”1”で、列2が”1”で列3が”0”の条件の時、別のシートに、 1行目の名前、住所、電話 1行目の名前2、住所、電話 1行目の名前3、住所、電話というように表示したいのです。(名前2、名前3が無い時は次の条件にあったデータを表示したい。 1行目の名前、住所、電話 1行目の名前2、住所、電話 2行目の名前、住所、電話 3行目の名前、住所、電話 3行目の名前2、住所、電話といった感じです。 マクロのCASE文で振り分けて、・・・・といろいろ試しましたがうまくいきません。 よろしくご教授願います。
- 締切済み
- オフィス系ソフト
- Excel VBAにおける複数条件での検索方法
以下のように、Excelシートがあって このExcelシートで以下の条件で検索、その結果を返すVBAを作りたいのですが、悩んでいます。 検索条件 果物:りんご 産地:青森 複数ある時は、購入日が一番古いものを選ぶ。 更に複数ある時は、値段の安いものを選ぶ。 ⇒行番号を返す これで、1つの行が選択できたら、そのF列に「在庫なし」を挿入する。 A列 B列 C列 D列 E列 F列 1行 購入日 果物 産地 数量 値段 在庫 2行 2017/4/10 りんご 青森 2 110 3行 2017/4/10 みかん 愛媛 3 350 4行 2017/4/10 りんご 青森 1 100 5行 2017/4/10 りんご 長野 2 120 6行 2017/4/12 みかん 静岡 3 350 7行 2017/4/13 みかん 愛媛 2 240 8行 2017/4/14 りんご 長野 2 120 9行 2017/4/15 りんご 青森 1 100 結果としては、上から4行目のリンゴのF列に「在庫なし」が 入るようにしたいです。 すみません、いろろと調べてはいるのですが、ちょっとわからず、こちらに投稿しました。どなたか、わかる方教えていただければ幸いです。 よろしくお願いします。
- 締切済み
- Visual Basic
- エクセル 別れたシートでの条件検索
別れたシートでの検索で一致したものを探す関数について。 VLOOKUP関数だと列に対してだと思うのですが、行に対して検索したいです。うまく伝えられないので、例えば 【シート1】 A B C 1 555 2 666 3 777 4 222 【シート2】 A B C D 1 777 555 222 2 3 上のようなシートがあり、 シート1のA列の番号がシート2の1の行に有ったら、 シート1のB列にOKと表示、無かったらNGと表示、 の様な関数ってありますか? どなたか解る方お願いします。
- ベストアンサー
- オフィス系ソフト
お礼
お礼が遅れて申し訳ありませんでした。 他の回答者の方の方法でプログラムを作成しましたが こちらの方法も試してみます ありがとうございました