• 締切済み

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列に「在庫なし」が 入るようにしたいです。 すみません、いろろと調べてはいるのですが、ちょっとわからず、こちらに投稿しました。どなたか、わかる方教えていただければ幸いです。 よろしくお願いします。

みんなの回答

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

此って 関数で、実現しても 構わない、話し ですよね? 在庫無しが、入る では無く 其処に、表示が 出れば、良い なら 出来るの、ですが 如何ですか?

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

済みません 未だ、デバッグ中 なの、ですか お待たせしている、ので 中間報告と,して 現在の、記載内容を 報告します。 'Type セル範囲 ' 行先頭 As Long ' 行終端 As Long ' 列先頭 As Long ' 列終端 As Long 'End Type Type 最小値形式 日 As Date 価格 As Long End Type Const 日 As Long = 1 Const 実 As Long = 2 Const 場所 As Long = 3 Const 価格 As Long = 5 Option Base 1 Option Explicit Function 多項検索(ByVal 検索範囲 As String, ByVal 果物 As String, ByVal 産地 As String) As Long Dim カウンタ1 As Long, 最小値 As 最小値形式, 対象行 As Variant, ランゲ1 As Range, ランゲ2 As Range Dim Temp1 As Variant, Temp2 As Variant, Temp3 As Variant, Temp4 As Long, LaRow As Variant 'Dim 対象範囲 As セル範囲 ' Let 対象範囲.行先頭 = Range(検索範囲).Cells(1, 1).Row ' Let 対象範囲.行終端 = Range(検索範囲).Rows.Count + 対象範囲.行先頭 - 1 ' Let 対象範囲.列先頭 = Range(検索範囲).Cells(1, 1).Row ' Let 対象範囲.列終端 = Range(検索範囲).Columns.Count + 対象範囲.列先頭 - 1 Set ランゲ1 = Range(検索範囲).Range(Cells(1, 実), Cells(Range(検索範囲).Rows.Count, 実)) Set ランゲ2 = Range(検索範囲).Range(Cells(1, 場所), Cells(Range(検索範囲).Rows.Count, 場所)) Set LaRow = [ROW(ランゲ1)] Set Temp1 = [(ランゲ1.Value=果物)+0] Set Temp2 = [(ランゲ2.Value=産地)+0] Set Temp1 = Temp1 * Temp2 Let Temp4 = CLng([SUMPRODUCT(Temp1)]) '対等項目数算出 Set Temp1 = Temp1 * LaRow If Temp4 < 2 _ Then Let 多項検索 = CLng([max(Temp1]) '該当項目数が0:0を 同数が1:行No.を 返す Else Set Temp2 = [(ランゲ1.Value<>果物)+0] Set Temp3 = [(ランゲ2.Value<>産地)+0] Set Temp2 = [Sign(Temp2 + Temp3) * 9999] Set Temp1 = Temp1 + Temp2 Set ランゲ1 = Range(Cells(1, 日), Cells(Temp4, 日)) Set Temp2 = [ROW(ランゲ1)] Set 対象行 = [Small((Temp1 & "," & Temp2 & "))"] '日付比較対象行No.取得 Let 最小値.日 = Range(検索範囲).Cells(対象行(1), 日).Value For カウンタ1 = 2 To Temp4 Step 1 '日付最小値、取得 If Range(検索範囲).Cells(対象行(カウンタ1), 日).Value < 最小値.日 _ Then Let 最小値.日 = Range(検索範囲).Cells(対象行(カウンタ1), 日).Value End If Next Set ランゲ1 = Range(検索範囲).Range(Cells(1, 日), Cells(Rows, 日)) Set Temp2 = [(ランゲ1.Value=最小値.日)+0] Set Temp1 = Temp2 * LaRow Let Temp4 = [SUMPRODUCT(Temp2)] '日付一致行数取得 If Temp4 < 2 _ Then Let 多項検索 = CLng([max(Temp1)]) '該当項目数が0:0を 同数が1:行No.を 返す Else Set Temp2 = [(ランゲ1.Value<>最小値.日)*9999] Set Temp1 = [(Temp1 + Temp2)] Set Temp2 = [ROW(ランゲ1)] Let 対象行 = [Small(Temp1,Temp2)] '価格比較対象行No.取得 Let 最小値.価格 = Range(検索範囲).Cells(対象行(1), 価格).Value '価格比較初期値 For カウンタ1 = 2 To Temp4 Step 1 '価格最小値、及び記載行No.、取得 Set ランゲ2 = Range(検索範囲).Cells(対象行(カウンタ1), 日) If ランゲ2.Value < 最小値.価格 _ Then Let 最小値.価格 = ランゲ2.Value Let Temp4 = ランゲ2.Row End If Next Let 多項検索 = Temp4 '最上行価格最安記載行No.を返す End If End If 'メモリー解放 ' Erace 対象範囲 Set 対象行 = Null Set ランゲ1 = Null Set ランゲ2 = Null Set Temp1 = Null Set Temp2 = Null Set Temp3 = Null End Function Sub main() Dim ダミー As Long Let ダミー = 多項検索("A2:E9", "リンゴ", "青森") End Sub 出来れば Evaluate("OFFSET(… 等と、して Loop無しに、したいのですが … お待たせ、しており 済みません

masaruf
質問者

補足

Noubleさま ありがとうございます。 やっと、自身もやっとこのロジックに着手しそうな感じなので、 私も返信が遅れまして、申し訳ありません。 Noubleさま、他の皆さまの回答を読ませていただき、着手します。 お礼コメントまで、しばしお時間をください。 本当にありがとうございます。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.8

>例えば、愛媛産のみかん4個消費であれば、3行目は、在庫なし。 >7行目は在庫残1個として、管理をしようとしています。 Sub Test3()  Dim i As Long  Dim 果物 As String, 産地 As String  Dim 購入日 As Date, 値段 As Long  Dim 行 As Long, v As Variant  Dim 数量 As Long, LastRow As Long  果物 = "みかん"  産地 = "愛媛"  数量 = 4  LastRow = Cells(Rows.Count, "A").End(xlUp).Row  Range("F2:F" & LastRow).ClearContents  Do Until 数量 = 0   v = Range("A2:F" & LastRow).Value   For i = LBound(v) To UBound(v)    If v(i, 2) = 果物 And v(i, 3) = 産地 And v(i, 6) <> "在庫なし" Then     If 行 = 0 Then      購入日 = v(i, 1)      値段 = v(i, 5)      行 = i     ElseIf 購入日 > v(i, 1) Then      購入日 = v(i, 1)      値段 = v(i, 5)      行 = i     ElseIf 購入日 = v(i, 1) And 値段 > v(i, 5) Then      購入日 = v(i, 1)      値段 = v(i, 5)      行 = i     End If    End If   Next   If 行 = 0 Then    Exit Do   ElseIf v(行, 4) = 数量 Then    Cells(行 + 1, "F").Value = "在庫なし"    数量 = 0    Exit Do   ElseIf v(行, 4) > 数量 Then    Cells(行 + 1, "F").Value = v(行, 4) - 数量    数量 = 0    Exit Do   ElseIf v(行, 4) < 数量 Then    Cells(行 + 1, "F").Value = "在庫なし"    数量 = 数量 - v(行, 4)   End If   行 = 0  Loop  If 数量 > 0 Then MsgBox 数量 & "個不足しています。" End Sub

masaruf
質問者

補足

回答ありがとうございます。 こちらについて、皆様の回答を読み理解しつつ、 PGを作成しています。 実際は、こちらに書いた内容よりも複雑なので、少しづつ読ませていただいております。 ありがとうございます。

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

解答で なく、 また、 未だ、出来て いない、中 此しか、言えません 済みません 今、少し 開けて、おいて 頂いて、構いませんか?

masaruf
質問者

補足

ありがとうございます。 こちらにまだ、コメントをかけずすみません。 こちらに質問させていただたいた処理前のPGを作成中でまだ、こちらの処理まで追いついていないです。 また、私自身VB初心者のため、皆さんの書いていただいた、内容を理解しながら少しづつ進めています。 ありがとうございます。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.6

>行数が多くなった時に、パフォーマンスが気になるんすね。 当方のPC(Intel Celeron プロセッサー 1005M 1.90GHz )で 1万行で0.25秒で終わりましたが、それでも問題なら配列を使って Sub Test2() Dim i As Long Dim 果物 As String, 産地 As String Dim 購入日 As Date, 値段 As Long Dim 行 As Long, v As Variant Dim Start As Single Start = Timer 果物 = "りんご" 産地 = "青森" v = Range("A2:E" & Cells(Rows.Count, "A").End(xlUp).Row).Value For i = LBound(v) To UBound(v) If v(i, 2) = 果物 And v(i, 3) = 産地 Then If 行 = 0 Then 購入日 = v(i, 1) 値段 = v(i, 5) 行 = i ElseIf 購入日 > v(i, 1) Then 購入日 = v(i, 1) 値段 = v(i, 5) 行 = i ElseIf 購入日 = v(i, 1) And 値段 > v(i, 5) Then 購入日 = v(i, 1) 値段 = v(i, 5) 行 = i End If End If Next Cells(行 + 1, "F").Value = "在庫なし" MsgBox "処理時間は " & Timer - Start & "秒です" End Sub 0.02秒で処理できました。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.5

Sub Test() Dim i As Long Dim 果物 As String, 産地 As String Dim 購入日 As Date, 値段 As Long Dim 行 As Long 果物 = "りんご" 産地 = "青森" For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row If Cells(i, "B").Value = 果物 And Cells(i, "C").Value = 産地 Then If 行 = 0 Then 購入日 = Cells(i, "A").Value 値段 = Cells(i, "E").Value 行 = i ElseIf 購入日 > Cells(i, "A").Value Then 購入日 = Cells(i, "A").Value 値段 = Cells(i, "E").Value 行 = i ElseIf 購入日 = Cells(i, "A").Value And 値段 > Cells(i, "E").Value Then 購入日 = Cells(i, "A").Value 値段 = Cells(i, "E").Value 行 = i End If End If Next Cells(行, "F").Value = "在庫なし"

masaruf
質問者

お礼

watabe007さん 回答ありがとうございます。 シンプルですね。やっぱりこのやり方がいちばんいいのですかね。 行数が多くなった時に、パフォーマンスが気になるんすね。 参考にさせていただきます。 ありがとうございます。

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

質問の標題にひかれて覗いてみた。 だいぶん質問の標題と、中身的に、やることとは違うのではないか。 在庫管理とか受注管理システムの、簡易的な、まね事ではないか。 エクセルのVBAの初歩的なスキルで、できそうなやり方で考えてみた。 ーー 下記のように、データをすこし質問の例に増やした。 購入日 果物 産地 数量 値段 在庫  在庫 2017/4/10 りんご 青森 1 100 在庫なし 2017/4/10 りんご 青森 2 110 2 2017/4/10 りんご 青森 1 110 1 2017/4/10 りんご 青森 1 120 2 2017/4/10 みかん 愛媛 3 350 3 2017/4/10 りんご 青森 1 120 1 2017/4/10 りんご 長野 2 120 2 2017/4/12 みかん 静岡 3 350 1 2017/4/13 みかん 愛媛 2 240 2 2017/4/14 りんご 長野 2 120 1 2017/4/10 りんご 青森 1 130 1 2017/4/10 りんご 青森 1 140 1 2017/4/15 りんご 青森 1 100 1 ーー 標準モジュールに Sub test01() Dim r As Range Dim cnt As Long Set myrng = Range("A1:F20") '第1行目の見出し行も含める myrng.AutoFilter 'Exit Subオートフィルター確認用 '抽出条件 myrng.AutoFilter Field:=2, Criteria1:="りんご" myrng.AutoFilter Field:=3, Criteria1:="青森" '--日付列でソート 見出し行を含めない Range("A2:F20").Sort Key1:=Worksheets("Sheet1").Columns(1), order1:=xlAscending, Key2:=Worksheets("Sheet1").Columns(5), order1:=xlAscending '---価格列でソート 日付は保存されるはず 'Range("A2:F20").Sort Key1:=Worksheets("Sheet1").Columns(5), order1:=xlAscending '---データ第I行を選択 Rows(2).Select '--今回1個販売したので在庫ー1 Cells(2, 6) = Cells(2, 6) - 1 '--在庫0なら「在庫なし」の表示 If Cells(2, 6) = 0 Then Cells(2, 6) = "在庫なし" myrng.AutoFilter End Sub ーーー 中間での結果 購入日 果物 産地 数量 値段 在庫 在庫 2017/4/10 りんご 青森 1 100 1 2017/4/10 りんご 青森 2 110 2 2017/4/10 りんご 青森 1 110 1 2017/4/10 りんご 青森 1 120 2 2017/4/10 りんご 青森 1 120 1 2017/4/10 りんご 青森 1 130 1 2017/4/10 りんご 青森 1 140 1 2017/4/15 りんご 青森 1 100 1 上記の、「'---データ第I行を選択」以下も実行して myrng.AutoFilterで、フィルター・モードを元へ戻して 結果は 購入日 果物 産地 数量 値段 在庫  在庫 2017/4/10 りんご 青森 1 100 在庫なし 2017/4/10 りんご 青森 2 110 2 2017/4/10 りんご 青森 1 110 1 2017/4/10 りんご 青森 1 120 2 2017/4/10 みかん 愛媛 3 350 3 2017/4/10 りんご 青森 1 120 1 2017/4/10 りんご 長野 2 120 2 2017/4/12 みかん 静岡 3 350 1 2017/4/13 みかん 愛媛 2 240 2 2017/4/14 りんご 長野 2 120 1 2017/4/10 りんご 青森 1 130 1 2017/4/10 りんご 青森 1 140 1 2017/4/15 りんご 青森 1 100 1 ーー 質問説明について 普通は受注は1個とは限らず、不足するなどの場合の対処、購入日を またがるロットから出荷などの場合のことがよくわからず、複雑になるので 適当にやった。 この部分は、複雑になるもんだいであるので、上記回答はいい加減のまま。 -- こういうのはエクセルでやるのは無理があるのと、危険を積んだSEが対処すべき問題で、こういう無料の質問コーナーに、ちょこっと質問して 回答で勉強するのは無理があると思う。出来合いのソフトや、SEに 相談すること。

masaruf
質問者

お礼

回答ありがとうございます。 imogasiさんのやり方は、マクロの記録でも確認できそうですね。 実際のところ、おっしゃるとおり、ここに書いた内容と、やりたいことは異なります。ただ、Excelだと、どのように検索をすればよいかがわからず、にいたので、投稿しました。 おっしゃるとおり、引き当て方法はもっとパターンがあり複雑になってくると思います。その部分まではさすがにここには書ききれないため、基本部分のみを質問させていただきました。  ありがとうございます。

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

と、いう事は ですね 適合行が あれば、行数 無ければ、0 を、 各々、返す 其のような Long型の、function で、構わない 渡す値と、しては シートは、ActiveSheet 検索範囲 As String 果物   As String 産地   As String 位で… と、言う事ですね? 出来るかは、別として 考えて、みますね。

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

あ!ご免なさい 青森産リンゴが 4つ、売れた時 青森産リンゴが 1つ、売れた時 では無く 青森産リンゴが 4つ、売れた時 青森産リンゴが 2つ、売れた時 でした 済みません。

masaruf
質問者

補足

補足の質問ありがとうございます。 はい。実際は、どれだけ使ったかの数量も関連するのですが、そこのロジックは自分でも考えることができるので、質問には、書きませんでした。 例えば、愛媛産のみかん4個消費であれば、3行目は、在庫なし。 7行目は在庫残1個として、管理をしようとしています。 その後、また消費があった場合は、7行目の在庫1つを消費して 次の新しい行のものを消費するようにロジックを組もうと思っています。 すべてここで質問するわけにはいかないので、自身がわからないところだけ、簡素化して、質問させていただきました。

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

質問させてください 此、売れた数 削除しないの、ですか? 青森産リンゴが 4つ、売れた時 青森産リンゴが 1つ、売れた時 では、 挙動、変わりませんか?

関連するQ&A

  • エクセルで重複データの編集

    次のようなデータがあります。     商品名 | 産地 | 店名 | 1行  みかん   静岡   あ 2行  りんご   青森   い 3行  みかん   愛媛   う 4行  みかん   静岡   え 5行  りんご   長野   お 6行  みかん   愛媛   か            実際には列の項目はもっとあります。 行も3万件ほどあります。 これを「商品名」「産地」などの重複する行を 一つにまとめ「店名」のみを結合した表を作成したいです。     商品名 | 産地 | 店名 | 1行  みかん   静岡   あ・え 2行  りんご   青森   い 3行  みかん   愛媛   う・か 4行  りんご   長野   お 重複データの抽出・削除だけでなく、一部分を 結合させて表示させる方法がわかりません。 よろしくお願いします。

  • excelのデータを検索して行項目全てを取出したい

    excelのデータを検索して行項目全てを取出したいです。 下記のようにシート1に番号を用意してシート2のデータを行で取り出したいです。 宜しくお願いします。 <例> (シート1) 検索 番号 A0001 A0002 B0001 (シート2) データ 番号 品名   産地  etc,,, A0001  りんご  青森 A0002  みかん  愛媛 A0003 トマト   熊本 B0001 鯖    大分 B0002  にしん  北海道 (結果) A0001  りんご  青森 A0002  みかん  愛媛 B0001 鯖    大分

  • エクセルにて複数の条件でセルをカウントしたいのですが方法が分かりません

    こんにちは。 他の方の質問と回答を見てやってみたのですが、 上手くいかなかったので質問させて頂きます。 <表>    A列    B列 1 条件1   条件2 2 チームA  りんご傷あり(青森) 3 チームA  みかん(愛媛) 4 チームA  りんご(岩手) 5 チームA  マンゴー(沖縄) 6 チームA  りんご(青森) 7 チームB  りんご(岩手) 8 チームB  みかん(愛媛) 9 チームB  マンゴー(沖縄) 上記の表から、 (1)りんごのセル個数     (この場合「4」) (2)Aチームのりんごセル個数 (この場合「3」) を求めたいと思っています。 (1)りんごのセル個数は =COUNTIF($B$2:$B$9,"りんご*") という計算式で「4」という答えが出ました。 (2)Aチームのりんごセル個数「3」を出そうとして =SUMPRODUCT((A2:A9="チームA")*(B2:B9="りんご*")) と入力したのですが、「*」が入っているためか、 3という数値が出てきません。 どなたか、関数を教えていただけませんか? 実際の表では、 (1)150行まで入力されています。 (2)条件1は「チームA」か「チームB」のみです。 (3)入力されている文字列は、「りんご」「みかん」という「左から3文字」という法則性はありません。 マクロは技術的に使えませんので、関数で対応したいと思っています。 また、別シートに集計表を一覧で作りたいので、フィルタ機能ではなく、関数で対応したいと思います。 以上、長々と申し訳ございません。 お分かりの方、是非回答をお願い致します。

  • エクセルで「セルを結合して中央揃え」を大量にしたい

    質問致します。 エクセル2007を使用しています。 例えば A列      B列 りんご     青森 りんご     長野 りんご     福島 みかん     愛媛 みかん     和歌山 上記のように入っていて、 A列のりんごの入力されている3つのセルを選択し「セルを結合して中央揃え」をしたいのですが それをひとつずつ作業するのではなく、みかん、その下にも同じ言葉が複数あってまた違う言葉が・・・ というデータなのですがこれを簡単にセルを結合する方法はないでしょうか。 B列はそのまま生かして使用します。 イメージは以下のようになります。 A列        B列           青森 りんご      長野           福島 みかん      愛媛           和歌山 よろしくお願いします。

  • Excelでの複数条件検索について教えてください。

    Excelでの複数条件検索について教えてください。 以下の様に日付毎に値段が変わる様なデータがある際に、 りんご・なしの日付毎の値段を一覧化することは可能でしょうか。 関数で検討してみましたが、検討もつかずにおります。     A列   B列   C列 1行  りんご 8/10  100円 2行  りんご 8/2  120円 3行  りんご 7/25  90円 4行  なし  8/3  110円 5行  なし  8/1   99円 6行  なし  7/31  100円 以下の様に日付単位で一覧化できればと考えております。 (A列及び1行は固定で記載として、B2:D3に関数などで出力 したいです)     A列   B列  C列   D列 1行       8/1  8/2   8/3 … 2行  りんご  90円 120円  120円 3行  なし  99円  99円  110円 初心者の質問で申し訳ありませんが、宜しくお願い致します。

  • エクセル 他シートに特定項目のみ自動入力する方法

    質問 エクセルで、次のように設定することが、関数またはマクロでできませんでしょうか。どうか知恵をお貸しください。 Sheet1(購入一覧)  果物  単価(円)  個数  購入金額(円) みかん    100     2  200 りんご    200 3 600 Sheet2(みかん)  Sheet1の「果物」列で「みかん」と入力すると、「みかん」行全体(「果物」列~「購入金額(円)」列まで)が自動入力される。  一方、Sheet1で「果物」列に他の果物(りんごなど)を入力しても、Sheet2に自動入力されない。 Sheet3(りんご)  Sheet1の「果物」列に「りんご」と入力すると、「りんご」行全体(「果物」列~「購入金額(円)」列まで)が自動入力される。  一方、Sheet1で「果物」列に他の果物(みかんなど)を入力しても、Sheet3に自動入力されない。

  • Excel2003 複数条件でカウントしたい

    品名   |産地   |ランク --------|--------|----------- みかん  |静岡   |A りんご  |青森   |B みかん  |愛媛   |A みかん  |静岡   |B りんご  |長野   |A りんご  |長野   |B 上記のようなExcelの表があります。 表の下には以下のコンボボックスが用意されいて、それぞれ一覧から選択 できるようになっています。 品名選択: ------------------- |            |▼| ←A15セル -------------------- 産地選択: ------------------- |            |▼|←A18セル -------------------- ランク選択: ------------------- |            |▼|←A21セル -------------------- 上記のようなExcelの表があります。 表の下にはのコンボボックスが用意されいて、それぞれ一覧から選択できるようになっています。 コンボボックスで選択された品名・産地・ランクの個数を求めたいと思います。 全てのコンボボックスが選択されている場合は以下の式で求められました。 =SUMPRODUCT((A2:A7=A15)*(B2:B7=A18)*(C2:C7=A21)) 未選択の場合はその条件で絞り込みをしたくないのですが、どのような式にすれば対応できるでしょうか? 例えば、全て未選択の場合は全ての明細がカウント対象。 品名と産地が選択され、ランクが未選択の場合、品名と産地で絞り込みランクは何でも良い。 という条件となります。

  • Excel2010 複数条件の計算方法

    複数の条件に該当する項目の合計を計算したいのですが、関数の作り方が分かりません・・・ 例えば、A列に文字があってB列に数値が入力されている表があったとして、A列にある項目の中から2つ以上に該当する数値の合計を計算する場合、どのような関数にすれば良いのでしょうか? 例えば、A列に果物の名前(りんご、みかん、ぶどう、メロン・・・)があり、B列にその値段が入っていて、「りんご」と「みかん」と「メロン」の値段の合計を算出するような場合、どのような関数になりますか? 条件がひとつであれば、SUMIF関数を使って計算できるかと思いますが、2つ以上の場合、どのようにすれば良いか分からないのです。 Officeのバージョンは2010です。 ネットで検索してもイマイチ分かりませんでした。どなたか簡単に教えて頂けますでしょうか?

  • 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 を使うのではないかと思って色々やってみたのですが、どうも上手く作動してくれません。 よろしくお願いいたします。

  • 複数の検索条件の合計

    複数の検索条件がある場合の結果の合計を求める関数を教えてください。 例えばA列にりんご・みかん・ばなな・りんご・りんごがあり B列に値段(100円・200円・100円・150円・100円) C列に個数(3・2・2・3・1)があるような場合で りんごの中で100円で販売した個数の合計(この場合4)、というような。 説明が雑ですがよろしくお願いします。

専門家に質問してみよう