
・やりたいこと
【検索対象の表】で、マクロ実行後、【マクロ実行後、得たい結果。】の表を作りたいのです。
同じ商品コードの物は、検索対象の表で何回出てくるか?カウントしたい。
カウント方法は、商品名でも可能ですが、商品コードで今回はカウントしたいのです。
ただ、検索対照の表で、実行すべきプログラムというかアルゴリズムが思いつかず作業が止まっております。
【考えた方法1】
①検索対象の表の行数は、動的であるため、データの開始行はA8で指定してもいいのですが、
行末が場合によって変動するため、(行末取得 = Cells(Rows.Count, 3).End(xlUp).Row ')で考えております。
②下の値から取得して、for文で、上の値と検索し、一致した個数を数える。
で、考えてみたのですが、A23でリンゴが出てきており、上に行くと4回一致。
A19でリンゴが出てきたときは、上に検索していくと3回一致。
で、結果にずれが生じてしまうことに気づき、これ以上、どうしたらいいかわからなくなっております。
【考えた方法2】
多分、ネットで調べてみた感じ、Find、FindNextで調べる方法が一番いいのかなー。と思っております。
ただ、Set rng = searchRng.Find("りんご")のように、一度、「りんご」というキーワードを決め打ちしないと
1回目の検索すらスタートができないとおもうのですが、「リンゴ」に入る検索キーワードがわからない状態なのです。
検索対象の表のリストのみが、いきなり手元に来る状態で、
その表から、何の検索ワードで絞るべきなのか、検索ワード一覧表がないのです。
もちろん手動で、重複削除処理やフィルター機能で、一意の表を作り出すことはできると思いますが、
いかんせん表の数が多いので、手動ではなく、そこもマクロで処理したいのです。
なので、
①【検索対象の表】から【検索ワード表】を一回作る必要があると思っているのですが、【検索ワード表】を作るためのコードの書き方がわからないのです。
→検索一覧表が作成できれば、検索一覧表の行頭・行末番号を取得して、【Set rng = searchRng.Find(検索一覧表のワード)】をループ処理すれば、カウントできると思っているのですが。
どなたかお分かりの方がおられましたら、ご教示お願いします。

No.2ベストアンサー
- 回答日時:
こんばんは
ご提示の考え方とは異なりますが、シートの計算機能を利用する方法の一例です。
レイアウトはご提示のままを仮定しています。
(ただし、D12:E23の表は作成しません。)
Sub Q12754437()
Dim rg0 As Range, rg1 As Range, n As Long
Const f1 = "=IF(G8="""","""",VLOOKUP(G8,@,2,0))"
Const f2 = "=IF(G8="""","""",COUNTIF(@,G8))"
n = Cells(Rows.Count, 1).End(xlUp).Row - 7
If n < 1 Then Exit Sub
Set rg0 = Range("A8").Resize(n, 2)
Set rg1 = Range("G8")
rg1.Resize(n + 1).Value = rg0.Resize(n + 1).Value
rg1.Resize(n).RemoveDuplicates 1, xlNo
Set rg1 = Range(rg1, rg1.Offset(n).End(xlUp))
rg1.Offset(, 1).FormulaLocal = Replace(f1, "@", rg0.Address)
rg1.Offset(, 2).FormulaLocal = Replace(f2, "@", rg0.Columns(1).Address)
rg1.Resize(, 3).Value = rg1.Resize(, 3).Value
End Sub
No.1
- 回答日時:
Dictionaryオブジェクトなんてあるんですね。
ちょっとページに書かれていることが多いようなので、時間かかるかもしれませんが読んでみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パワポの複数ページにまたがる...
-
ワードの表の行が広がってしまう
-
ワードの表の列幅を文字ぎりぎ...
-
WORDの表がいきなり改ページさ...
-
ワードの表がくっついてしまいます
-
[Excel] 以下のような、行が...
-
ワード、上下中央揃えにしたい...
-
表と票の違いは?
-
エクセルで3次元の表を作りたい
-
ワードの表体裁が壊れる
-
ワードで空白、行を維持したま...
-
Wordで表を作ったら右下に四角...
-
パワーポイントの表で1つ飛ばし...
-
Wordの表を右に一列で並べる方法
-
エクセルで長い表を途中で折り...
-
WORDで表と表の間を空かし...
-
wordで 次のページに同じ表(レ...
-
EXCELで作成した表をWordに横向...
-
エクセルのハイパーリンクを復...
-
Wordで歌詞カードを作りたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パワポの複数ページにまたがる...
-
ワードの表の行が広がってしまう
-
ワードの表がくっついてしまいます
-
Wordで表を作ったら右下に四角...
-
表と票の違いは?
-
エクセルで3次元の表を作りたい
-
ワードの表の列幅を文字ぎりぎ...
-
WORDの表がいきなり改ページさ...
-
Wordの表の列の高さを固定する...
-
wordで表を挿入した後に表の前...
-
[Excel] 以下のような、行が...
-
ワード、上下中央揃えにしたい...
-
ワードの表体裁が壊れる
-
ワードで表を作ってから、その...
-
ワード横書き2段、左に英語、...
-
ワードで空白、行を維持したま...
-
EXCELで作成した表をWordに横向...
-
かぎかっこが消せません
-
ワードの表が重なってしまう。
-
エクセルで長い表を途中で折り...
おすすめ情報