![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
いつもお世話になっております。
以下のコードに条件つけたのですが、
おしえてくれませんでしょうか
めぐみん様
F列に商品 G列にサイズ H列に地区
おしえてくれませんでしょうか
この質問はこれで最後に致します。
お願いします。
今は 表示されているのはサイズと商品のみです。
Sub megu()
Dim myDic As Object
Dim r As Range, m As Long
Dim key As Variant, v As Variant
Set myDic = CreateObject("Scripting.Dictionary")
For Each r In Range("a2", Cells(Rows.Count, "a").End(xlUp))
key = r.Value & "_" & r.Offset(, 1).Value
If Not myDic.Exists(key) Then _
myDic.Add key, Range("f1:AG1").Value
m = IIf(Month(r.Offset(, 2).Value) < 4, _
Month(r.Offset(, 2).Value) + 9, Month(r.Offset(, 2).Value) - 3)
m = m * 2 '求められた結果を仕様により上書きする場合の書き方
v = myDic(key) '★ここを忘れてました★
v(1, m - 1) = v(1, m - 1) + 1 '無条件にカウントを取る場合(各月の奇数列)
v(1, m) = v(1, m) + r.Offset(, 3).Value '条件によってカウントを取る場合(各月の偶数列)
myDic(key) = v
'Debug.Print r.Value, myDic(r.Value)(1, m)
Next
Set rr = Range("F3")
For Each key In myDic.keys
rr.Offset(, 1).Resize(, 3) = Split(key, "_")
rr.Offset(, 3).Resize(, 24).Value = myDic(key)
Set rr = rr.Offset(1)
Next
Set myDic = Nothing
Set r = Nothing
![「クロス集計で商品名かつサイズかつ地区で表」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/3/542572098_5f6205ffc6601/M.gif)
No.1ベストアンサー
- 回答日時:
For Each r In Range("a2", Cells(Rows.Count, "a").End(xlUp))
key = r.Value & "_" & r.Offset(, 1).Value
↓
For Each r In Range("a2", Cells(Rows.Count, "a").End(xlUp))
key = r.Offset(, 1).Value & "_" & r.Value & "_" & r.Offset(, 4).Value
Set rr = Range("F3")
For Each key In myDic.keys
rr.Offset(, 1).Resize(, 3) = Split(key, "_")
↓
Set rr = Range("F3")
For Each key In myDic.keys
rr.Resize(, 3).Value = Split(key, "_")
でしょうか?
いつも有難うございます。
うまくいきました。
じつをいいますと、
key = r.Offset(, 1).Value & "_" & r.Value & "_" & r.Offset(, 4).Value
なんとなく、いくのかなと質問する前にやってみました。
rr.Resize(, 3)も同じです。がわたしがやったら
だめでした。
おそらく、やっているうちにいつものパターンで
頭がぐちゃぐちゃになっていたのかもしれません。
ありがとうございました
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) シフト表のコマで「ブロック」されている前の時間の「出」を同一列の「休」と入れ替えたいがふぇきません。 2 2023/08/02 18:49
- Visual Basic(VBA) エラーコード1004 6 2022/06/09 14:12
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
重複確認
-
配列を比較して同じものがあっ...
-
pythonで辞書データへのアクセ...
-
うまくいきません
-
思うような連想配列ができない・・
-
PHPでJSONを扱うときに配列の参...
-
クロス集計で商品名かつサイズ...
-
キーが倍数の時の値の存在チェ...
-
$funcって何ですか?
-
executeの実行が一回しかされない
-
大阪へ転勤します。一時長期宿...
-
csvファイルを読み込み→上書き...
-
総当り表
-
Noのデータ受け渡しで同じNoが...
-
phpを実行するとファイルダウン...
-
PostgreSQLの配列項目のデータ...
-
Smartyでtplファイルから配列を...
-
CSVデータの行数カウントをした...
-
2次元配列CSVのソート
-
順位を付ける時のスコアの重複...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
重複確認
-
foreachで上限回数指定方法また...
-
マッチング処理(1:N)
-
Excel VBAでフィルター後の対象...
-
VB.NET で 二次元のハッシュは...
-
多次元配列を、1次元の配列にす...
-
SELECT 使用時の bindValue の...
-
Smartyでインクリメント
-
PHPでこのコード自体に意味は無...
-
配列を比較して同じものがあっ...
-
PHP、{}記号の意味
-
sqlのデーターを『あ行』『か行...
-
phpでforeachの中にforeachがあ...
-
多次元配列の中で条件に合う要...
-
三重県南部の温泉
-
キーが倍数の時の値の存在チェ...
-
ラジオボタンをランダムに表示...
-
構造体の中でユーザー定義型の...
-
ジャグ配列
-
foreachで配列を、左から縦3列...
おすすめ情報