条件が一致したら別シートに転記し、計算させたい
Sheet1(data)
A B C D E F G
たまご1 1 ab-cd-1111
たまご2 3 ab-cd-1234
うどん5 2 cd-ga-1234
カレー7 1 qw-hg-1111
バナナ9 2 as-gh-4567
Sheet2(list)
A B C
たまご 800 ab-cd
うどん 1000 cd-ga
カレー 700 qw-hg
バナナ 500 as-gh
Sheet3(nouhin)
A B C D
たまご 800 4 3200
うどん 1000 2 2000
バナナ 500 2 1000
Sheet1(data) C列に数量、G列に商品番号が入力、行数は場合によって変わります。
Sheet2(list) A列に正式な商品名、B列に価格、C列に代表商品番号が入力、行数は変更がありません。
Sheet3(nouhin) A列に正式な諸品名、B列に価格、C列は商品価格合計を入力させたいです。
よろしくお願いします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
Sheet1が入力で、Sheet2が諸元(マスタ)で、Sheet3が出力結果ですよね?
情報処理で大切なことは、正確な入力データを収集することです。普通は、諸元に無い商品はエラーで弾きます。
何が言いたいかというと、Sheet1のような不確かなデータでは正しい処理ができないということです(出力結果が保証できない)。
まぁ、全体の傾向を把握したいだけであれば良いかもしれませんが、正確な個数/金額が必要なのであれば、データの持ち方を見直しましょう!!
No.2
- 回答日時:
VBAはセルの位置におおきく依存しますので、様式がすこし変わるだけでもソースの変更をしなければなりません。
VBAがある程度理解できて修正できなければ、すぐに使い物にならなくなります。ですから、一度、ご自身でVBAでつくってみて、それで動かないときに相談するというスタイルでご質問された方が良いですよ。
No.3
- 回答日時:
Sheet1のどの商品が、Sheet2の正式な商品に含まれるのかの判断基準が不明です。
あなたの頭のなかでは、その基準があるかと思いますが、その内容を提示していただかないと、
他のひとは回答できません。
不明点
①Sheet1 A列の商品名とSheet2 A列の正式な商品名を比較して判断すれば良いのか。
②それとも、Sheet1 C列の商品番号とSheet2 C列の代表商品番号を比較して判断すれば良いのか。
③それとも、①②の両方で比較をおこない、①②でOKとなった場合に正式な商品名に含まれるとするのか。
まずは、この点だけでも明記すると回答が得られやすくなります。
①②③の何れかになった場合、更に、そのケースでどのように判断するのかの判断基準を明確にすることに
なるかと。
No.4
- 回答日時:
シート3にカレーがないのは疑問ですが。
シート2のC列に重複した値がないとしたら初級レベルなジジィは寝ぼけてこんな感じでしょうか?
Sub megu()
Dim myDic As Object
Dim r As Range, st As String, v, vv
Set myDic = CreateObject("Scripting.Dictionary")
With Worksheets("Sheet2")
For Each r In .Range("A1", .Cells(Rows.CountLarge, "A").End(xlUp))
myDic.Add r.Range("C1").Value, Array(r.Value, r.Range("B1").Value, 0, 0)
Next
End With
With Worksheets("Sheet1")
For Each r In .Range("A1", .Cells(Rows.CountLarge, "A").End(xlUp))
vv = Split(r.Range("G1").Value, "-")
st = Join(Array(vv(0), vv(1)), "-")
If myDic.Exists(st) Then
v = myDic(st)
v(2) = v(2) + r.Range("C1").Value
v(3) = v(3) + v(1) * r.Range("C1").Value
myDic(st) = v
End If
Next
End With
With Worksheets("Sheet3")
.Cells.ClearContents
.Range("A1").Resize(myDic.Count, 4).Value = _
Application.Transpose(Application.Transpose(myDic.Items))
End With
Set myDic = Nothing
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- Visual Basic(VBA) VBAコードで質問があります 2 2022/10/20 15:27
- Excel(エクセル) 【条件付き書式】countifsで複数条件を満たしたセルを赤くする方法 2 2023/02/09 23:53
- Visual Basic(VBA) VBAで最新のデータを別シートに転記する方法をお教えください。 3 2022/04/07 19:20
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- その他(Microsoft Office) Excelで該当しない項目(#N/Aの商品名)を簡単に表示・抽出させる方法についてです 1 2022/08/25 22:12
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
【VBA】指定した検索条件に一致したら別シートに転記したい
Visual Basic(VBA)
-
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
VBA 値と一致した行の一部の列のデータを転記について教えてください
Visual Basic(VBA)
-
-
4
【VBA】2つのシートの値を比較して条件一致したら、同じ行の隣の値を別ブックへ転記したいです。 VB
Visual Basic(VBA)
-
5
エクセルのVBAで日付を検索し転機したい
Visual Basic(VBA)
-
6
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
7
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
8
VBA 日付一致で転記
Visual Basic(VBA)
-
9
excel VBA 2つのシートの特定の列を比較して同じ値のセルがあったらその行を上書きしたい
Excel(エクセル)
-
10
(VBAにて)日付でデータを抽出するやり方
Excel(エクセル)
-
11
Dictionaryを使い4つの条件の一致で2つの集計列を集計したいのです
Visual Basic(VBA)
-
12
VBA 別シートの同じ日付の欄に値を貼付け
Excel(エクセル)
-
13
複数条件が一致で別シートに転記【エクセルVBA】
Excel(エクセル)
-
14
エクセル 重複したデータを別シートに抽出させる
Excel(エクセル)
-
15
Excel VBAでオートフィルタで抽出した列データを別シートの最終行にコピーするには
Visual Basic(VBA)
-
16
excel vbaで日付一致の行にデータ転記
Excel(エクセル)
-
17
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
18
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
19
エクセルのマクロで条件一致のデータを別シート(複数)に転記したい
Visual Basic(VBA)
-
20
VBA 空白行に転記する
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
【VBA】2つのシートの値を比較...
-
データグリッドビューの一番最...
-
Excelで、あるセルの値に応じて...
-
マクロ 最終列をコピーして最終...
-
DataGridViewに空白がある場合...
-
VBAで、特定の文字より後を削除...
-
rowsとcolsの意味
-
B列の最終行までA列をオート...
-
VBAを使って検索したセルをコピ...
-
VBAで、離れた複数の列に対して...
-
マクロ 関数を使った抽出でエラ...
-
IIF関数の使い方
-
VBAで重複データを確認したい
-
Changeイベントでの複数セルの...
-
VBAのFind関数で結合セルを検索...
-
エクセル アクティブセルから...
-
文字列の結合を空白行まで実行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
B列の最終行までA列をオート...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
VBAを使って検索したセルをコピ...
-
VBAのFind関数で結合セルを検索...
-
文字列の結合を空白行まで実行
-
IIF関数の使い方
-
【VBA】2つのシートの値を比較...
-
マクロ 最終列をコピーして最終...
-
Changeイベントでの複数セルの...
-
VBA 何かしら文字が入っていたら
-
URLのリンク切れをマクロを使っ...
-
エクセルVBAにて =A1=B1とすれ...
-
VBAでのリスト不一致抽出について
-
データグリッドビューの一番最...
-
マクロについて。S列の途中から...
-
VBA UserFormからの転記で
-
targetをA列のセルに限定するに...
おすすめ情報
【訂正】
Sheet3(nouhin) A列に正式な商品名、B列に価格、C列に数量、D列は商品価格合計を入力させたいです。