![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
エクセルで販売個数表を作成していますが、うまくいかず困っています。
Sheet1のA列に現在在庫している全ての商品のJANコード、B1~AF1にある月の1日から31日までの日付が日付データとして入っています。別ブックのSheet1にA列(販売日)、B列(JANコード)、C列(販売個数)のデータがあり、この販売個数を前述の個数表にJANコードと日付を対応させて入力したいのです。(例えばMというJANコードの品物が14日に2個売れたとしたら、MというJANコードの行の14日の列のセルに2と入れたいということです。)尚、別ブックの販売個数のデータは各商品ごとに1日の総売り上げ個数が出ているため、合算をする必要はなく、C列の数字をそのまま該当するセルに直接入れることができればOKです。
できることならマクロを使って、「別ブックを参照してデータを読み込み、販売個数表に個数を反映」させたいのですが、どのように作ったらよいのか具体的に教えていただけないでしょうか?関数を使って入力する方法もあれば是非、お願いします。
![「「JANコード」と「日付」で販売個数表を」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/9/785718_5497d6e9bb1a3/M.jpg)
No.3ベストアンサー
- 回答日時:
GYOU = WorksheetFunction.Match(.Cells(i, 2).Value, Range("A1:A100"),FALSE)
では如何でしょうか?
ワークシート関数をVBAで使用する場合は、セルに関数を俺t確認するとよいですよ。
データのブックの空いている列に
=MATCH(B2,表のブックの表のシートのA列,FALSE)
でちゃんと行番号が表示されますか?
なるほど!関数で確認ですね。勉強になります。
ご指摘の通り修正したらうまくいきました。ありがとうございました。
これで仕事がはかどります!
No.2
- 回答日時:
すみません、訂正がありました。
>With WorkBook("データのBook名").Sheet2
は
With Workbooks("データのBook名").Sheets("Sheet1")
でしたね。
この回答への補足
ご解答ありがとうございました。
早速、教えていただいた通りにマクロを組んでみたのですが、実行時エラー"1004" WorksheetFunctionクラスのMatchプロパティを取得できません。と表示されてしまいます。どこに原因があるのか教えていただけないでしょうか?
Private Sub CommandButton1_Click()
Dim OPENFILENAME As Variant
Dim wb As Workbook
ChDir CreateObject("WScript.Shell").SpecialFolders("desktop")
OPENFILENAME = Application.GetOpenFilename(FileFilter:="Microsoft Excelブック,*.xls")
If OPENFILENAME = False Then
Exit Sub
End If
Set wb = Workbooks.Open(OPENFILENAME)
With wb.Worksheets("Sheet1")
For i = 2 To .Range("A65536").End(xlUp).Row
'データのブックの2行目から最後の行までの繰り返し
RETU = Day(.Cells(i, 1).Value) + 1
'データのi行目の日付の日にちと1を足した数が表の横方向の列番号
GYOU = WorksheetFunction.Match(.Cells(i, 2).Value, Range("A1:A100"))
'ワークシート関数を使って、i行目のJANが表の何行目にあるか
Cells(GYOU, RETU).Value = .Cells(i, 3).Value
'表の指定した行と列番号にデータの3列目(つまり個数)を入れる。
Next
'データの次行で繰り返し
End With
End Sub
No.1
- 回答日時:
取り合えず、VBAの流れだけです。
表のBookとデータのBookが開いている状態で、表のシートを表示しているとします。
Sub Test1()
With WorkBook("データのBook名").Sheet2
For i = 2 To .Range("A65536").End(xlUp).Row
'データのブックの2行目から最後の行までの繰り返し
RETU = Day(.Cells(i, 1).Value) + 1
'データのi行目の日付の日にちと1を足した数が表の横方向の列番号
GYOU = WorksheetFunction.Match(.Cells(i, 2).Value, Range
("A1:A100"))
'ワークシート関数を使って、i行目のJANが表の何行目にあるか
Cells(GYOU, RETU).Value = .Cells(i, 3).Value
'表の指定した行と列番号にデータの3列目(つまり個数)を入れる。
Next
'データの次行で繰り返し
End With
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(買い物・ショッピング) JANコードの登録について 1 2022/07/23 14:19
- Excel(エクセル) エクセル count関数で出てきた数だけの行数をリンクで参照する 3 2022/08/10 12:02
- Excel(エクセル) 年齢ごとの商品の販売個数を集計しようとしています。 a列が日付、b列が年齢、c列が販売個数のばあいで 4 2022/09/26 22:35
- その他(Microsoft Office) Excelで該当しない項目(#N/Aの商品名)を簡単に表示・抽出させる方法についてです 1 2022/08/25 22:12
- Visual Basic(VBA) VBA 最終行まで数式をコピーする 3 2023/01/03 15:44
- Excel(エクセル) Xlookupの結果がうまくいきません。(excel2013) 2 2023/06/18 17:32
- 仕事術・業務効率化 エクセル 任意の列(日付)を起点に一定の日数でデータを取り出したい。 4 2022/04/28 12:22
- Excel(エクセル) Excelの関数について 3 2022/11/13 23:47
- Amazon 新規でAmazon商品ページ作成方法について 1 2022/03/28 00:22
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで隣のセルと同じ内容に列...
-
Excel関数で、範囲内の最後のセ...
-
【エクセル】区切り位置で分割...
-
Excel関数:「0」を除いた標準...
-
更新前と更新後の差分をVBAを使...
-
SUMIFで数値が入力されているセ...
-
値の入っているセルのうち、一...
-
ピボットテーブル 0個の行を...
-
エクセルで何種類のデータがあ...
-
SUMPRODUCT関数 行が増えても...
-
エクセルで電話番号を - で分...
-
エクセル、正数のみの集計[(負...
-
エクセルに入力された日付「S40...
-
【Excel】歯抜けデータの集約
-
エクセル マクロ 連続する空...
-
ワードかエクセルでURLの一部抽...
-
エクセル2000で〇×の並び替えを...
-
エクセルで別のシートに数行お...
-
Excelで複数列かつ複数行分の一...
-
エクセルで文字列を日付として...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで隣のセルと同じ内容に列...
-
Excel関数で、範囲内の最後のセ...
-
Excel関数:「0」を除いた標準...
-
【エクセル】区切り位置で分割...
-
ピボットテーブル 0個の行を...
-
更新前と更新後の差分をVBAを使...
-
値の入っているセルのうち、一...
-
SUMIFで数値が入力されているセ...
-
エクセル 8ケタの数字から日数...
-
エクセルに入力された日付「S40...
-
エクセルで何種類のデータがあ...
-
複数の候補列から、検索値と一...
-
correl関数の範囲指定
-
Excelで複数列かつ複数行分の一...
-
エクセル、正数のみの集計[(負...
-
Excelのマクロで行を間引きたい
-
スプレッドシートでドロップダ...
-
エクセルVBAを使ってセルに日付...
-
【Excel】歯抜けデータの集約
-
SUMIFとCOUNTIFの違いについて
おすすめ情報