
エクセルマクロを最近始めた初心者です。
皆様のお力添えをお願い致します。
会社の作業効率化のため少しづつ、マクロを作成しているのですが、とうとう行き詰ってしまい質問させていただきました。
・行いたい事
下記にありますシート2の納品した商品のID、このIDと同じIDをシート1で検索し金額の部分をそれぞれ埋めたいです。
シート1(在庫管理表)
A B C
1 ID 商品 金額
2 A448 Aカード
3 A497 Bカード
4 A348 Cカード
5 A123 Dカード
6 A228 Eカード
7 A978 Fカード
8 A214 Gカード
9 A369 Hカード
シート2(納品書)
A B C
1 ID 商品 金額
2 A448 Aカード 260
3 A348 Cカード 680
4 A228 Eカード 210
5 A369 Hカード 2480
↓結果
シート1(在庫管理表)
A B C
1 ID 商品 金額
2 A448 Aカード 260
3 A497 Bカード
4 A348 Cカード 680
5 A123 Dカード
6 A228 Eカード 210
7 A978 Fカード
8 A214 Gカード
9 A369 Hカード 2480
お力添えよろしくお願いします。
※「Dictionary」などできそうなものは、調べてはみたものの、実践で活用するまでの知識がまだありません。
No.2ベストアンサー
- 回答日時:
こんばんは!
関数で簡単にできそうですが・・・
Sheet1のC2セルに
=IF(COUNTIFS(Sheet2!A:A,A2,Sheet2!B:B,B2),SUMIFS(Sheet2!C:C,Sheet2!A:A,A2,Sheet2!B:B,B2),"")
として、下へずぃ~~~!っとフィル&コピー!
どうしてもVBAでやりたい!という場合は
一例です。
標準モジュールにしてください。
Sub Sample1()
Dim myDic As Object
Dim i As Long, lastRow As Long, lastRow2 As Long
Dim myStr As String, wS As Worksheet
Dim myKey, myItem, myR1, myR2, myAry
Set myDic = CreateObject("Scripting.Dictionary")
Set wS = Worksheets("Sheet2")
With Worksheets("Sheet1")
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
Range(.Cells(2, "C"), .Cells(lastRow, "C")).ClearContents
myR1 = Range(.Cells(2, "A"), .Cells(lastRow, "C"))
For i = 1 To UBound(myR1, 1)
myStr = myR1(i, 1) & "_" & myR1(i, 2)
myDic.Add myStr, myR1(i, 3)
Next i
lastRow2 = wS.Cells(Rows.Count, "A").End(xlUp).Row
myR2 = Range(wS.Cells(2, "A"), wS.Cells(lastRow2, "C"))
For i = 1 To UBound(myR2, 1)
myStr = myR2(i, 1) & "_" & myR2(i, 2)
If myDic.exists(myStr) Then
myDic(myStr) = myDic(myStr) + myR2(i, 3)
End If
Next i
myKey = myDic.keys
myItem = myDic.items
For i = 0 To UBound(myKey)
myAry = Split(myKey(i), "_")
myR1(i + 1, 1) = myAry(0)
myR1(i + 1, 2) = myAry(1)
myR1(i + 1, 3) = myItem(i)
Next i
Range(.Cells(2, "A"), .Cells(lastRow, "C")) = myR1
Set myDic = Nothing
End With
MsgBox "完了"
End Sub
※ コード内のシート名は実際のシート名にしてください。
※ コードは長いですが、
両シートとも数万行あっても数秒で終わると思います。m(_ _)m
ご回答いただきありがとうございました。
同時に納品書の印刷もしたい為、マクロで作った方がいいかと思っておりました。
※納品書(シート2)は印刷後項目は空にしたいので、
IFやVlookUP関数ですと自分の知る限りでは、参照値がなくなると0表記となると思っておりましたので、マクロで考えておりました。
上記で頂きましたコードで値の貼り付けができておりましたので、大変助かりました。
ありがとうございました。
No.1
- 回答日時:
これ excel の vlookup 関数でもいけるんですが、マクロを使いたいんですか?
1. シート 1 から、i 行目の id を文字列として抽出
2. その文字列をシート 2 で検索し、ヒットしたセル位置を、long 型で記録
3. そのセルから2個右にいったセルの金額を long ないし currency 型で記録
4. 記録した数字を、シート 1 の i 行目の所定の位置に書き込む
このステップでマクロ化できますが、どこでダメですか?
ご回答いただきありがとうございます。
>これ excel の vlookup 関数でもいけるんですが、マクロを使いたいんですか?
同時に納品書の印刷もしたい為、マクロで作った方がいいかと思っておりました。
※納品書(シート2)は印刷後項目は空にしたいので、VlookUP関数では難しい(参照先がなくなる?)気がしておりましたが可能なのでしょうか?
>このステップでマクロ化できますが、どこでダメですか?
「2.」の部分シート2で検索の方法がよくわかりません。
調べた際に下記のようなものも見たのですが、その後どのようにするのかわかりませんでした。
Dim myCnt As Long
Dim myVal As Variant
Dim r As Range
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- USBメモリー・SDカード・フラッシュメモリー SDカードの中に入ってる小さいカード(マイクロSDカードっていうんですか?)はこの商品に入りますか? 8 2023/06/01 20:30
- Excel(エクセル) 図書カードの分配 7 2023/05/09 15:57
- クレジットカード 限度可能額内(100万円)なのに楽天カードが使えない。なぜ? 6 2022/07/17 14:31
- カードローン・キャッシング 楽天カードの増額の申し込みについて 昨日、 楽天カード株式会社から→ 拝啓 平素は楽天カードをご利用 1 2022/03/23 10:34
- ソフトウェア 社内でのETCカードの管理方法で良い案があれば教えて下さい 社用でリース車等を使用してETCカードを 1 2023/01/17 13:37
- ヤフオク! ヤフオク 金券カード 2 2023/08/05 00:05
- クレジットカード 67歳で年金生活をしています。 年金も多くはありませんのでインターネットビジネスを始めたいと思ってい 6 2023/03/17 22:59
- Android(アンドロイド) 128GB LAZOS マイクロSDカード 1280円 もっと良い商品ある? 4 2023/02/07 19:42
- ポイントサービス・マイル dカードのポイントで買い物された方、楽天ポイントのゲットは? 4 2022/09/15 17:38
- Visual Basic(VBA) VBAで不特定枚数印刷をしたいです。 4 2022/08/02 07:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
イコカからairペイ
-
パチンコ屋で店員がたまに空カ...
-
小学校四年生算数の問題
-
緊急質問です! 1から9までの番...
-
Nanacoカードは、まだ、ちゃん...
-
確率 1.2.3.4.5のカードがある...
-
女友達からの誕プレお返しが酷...
-
ヴィレヴァンのオンラインショ...
-
イオンのWAONPOINTと電子マネー...
-
FMVカードとはどんなカードです...
-
当番表の作成(休み考慮あり、ラ...
-
防犯カメラ開示について質問です。
-
千葉興銀のATMの預け入れには、...
-
空きリソースが不足・・・コー...
-
カイジ疑問
-
任天堂Switch2でこのカード使え...
-
ラブホのカード?どこのものか...
-
Pioneer AVIC-rz910のB-CASカー...
-
星の逆位置(叶わない)のタロ...
-
pcカードタイプのUSB2.0ポート
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HDDScanやCrystalDiskInfoはmic...
-
確率 1.2.3.4.5のカードがある...
-
緊急質問です! 1から9までの番...
-
カイジ疑問
-
西中国信用金庫のカードを使っ...
-
コスモ石油でエネオスカードを...
-
女友達からの誕プレお返しが酷...
-
Pioneer AVIC-rz910のB-CASカー...
-
ツーショットカードは、どのよ...
-
パチンコ屋で店員がたまに空カ...
-
B-CASカード 個人情報流失の可...
-
稼動中のサーバーのRAID構成が...
-
桃鉄のカードについてです 例え...
-
カードが熱で湾曲してしまいました
-
edyカードの構造について・・・
-
switchのmicroSDカードが抜けな...
-
ラブホのカード?どこのものか...
-
お聞きします。運転免許が無く...
-
真っ白な会員カード
-
無線LAN対応ですか?
おすすめ情報