「JANコード」と「日付」で販売個数表を作成したい

このQ&Aのポイント
  • エクセルで販売個数表を作成していますが、うまくいかず困っています。
  • Sheet1のA列に現在在庫している全ての商品のJANコード、B1~AF1にある月の1日から31日までの日付が日付データとして入っています。
  • 別ブックのSheet1にA列(販売日)、B列(JANコード)、C列(販売個数)のデータがあり、この販売個数を前述の個数表にJANコードと日付を対応させて入力したいのです。
回答を見る
  • ベストアンサー

「JANコード」と「日付」で販売個数表を作成したい

エクセルで販売個数表を作成していますが、うまくいかず困っています。 Sheet1のA列に現在在庫している全ての商品のJANコード、B1~AF1にある月の1日から31日までの日付が日付データとして入っています。別ブックのSheet1にA列(販売日)、B列(JANコード)、C列(販売個数)のデータがあり、この販売個数を前述の個数表にJANコードと日付を対応させて入力したいのです。(例えばMというJANコードの品物が14日に2個売れたとしたら、MというJANコードの行の14日の列のセルに2と入れたいということです。)尚、別ブックの販売個数のデータは各商品ごとに1日の総売り上げ個数が出ているため、合算をする必要はなく、C列の数字をそのまま該当するセルに直接入れることができればOKです。 できることならマクロを使って、「別ブックを参照してデータを読み込み、販売個数表に個数を反映」させたいのですが、どのように作ったらよいのか具体的に教えていただけないでしょうか?関数を使って入力する方法もあれば是非、お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

GYOU = WorksheetFunction.Match(.Cells(i, 2).Value, Range("A1:A100"),FALSE) では如何でしょうか? ワークシート関数をVBAで使用する場合は、セルに関数を俺t確認するとよいですよ。 データのブックの空いている列に =MATCH(B2,表のブックの表のシートのA列,FALSE) でちゃんと行番号が表示されますか?

kumaokuma
質問者

お礼

なるほど!関数で確認ですね。勉強になります。 ご指摘の通り修正したらうまくいきました。ありがとうございました。 これで仕事がはかどります!

その他の回答 (2)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

すみません、訂正がありました。 >With WorkBook("データのBook名").Sheet2 は With Workbooks("データのBook名").Sheets("Sheet1") でしたね。

kumaokuma
質問者

補足

ご解答ありがとうございました。 早速、教えていただいた通りにマクロを組んでみたのですが、実行時エラー"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

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答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

  • VBA 表作成 再 続

    引き続きよろしくお願いします。 入力データというブックがありそこには B列に日付と曜日(日付の下)3行目~、 M列に区分(1か2が入力)3行目~、 T列に商品名3行目~、 AQ列に商品数3行目~、 BA列4行目~にコードが入力されています。 日付を入力したブックに 入力データにある、日付の部分を見て入力フォームで日付から1ヶ月の間の日付で一致すれば、商品名、コードを別ブックにある表に貼り付けます。日付部分の表に数値を商品名とコードにあわせて貼り付け、日付も、商品名もコードも同じであれば足してから表示します。 元にあるのはひとつ分しかはいらないので増えるたびに行数を挿入していくようにします。 最初にある表は    B   M   L ・・・ 4          日付・・・ 5          曜日・・・ 6  商品名 コード 数値・・・ 7          小計・・・ 8  商品名 コード 日付・・・ 9          小計・・・  10         合計・・・ という表になっています。上段には区分1、下段には区分2のものが入ります。 わかりますかね・・・;; 説明下手で申し訳ありません よろしくお願いします

  • JANコードを数の多い順に・・・

    2000個程のJANコードがA列にランダムに並んでいて、    A       B      C  JANコード 4999999000003 4999999000001 4999999000002 4999999000002 4999999000001 4999999000002 4999999000001 4999999000002 4999999000002 4999999000003 4999999000003 4999999000003 4999999000003 4999999000002 4999999000002 4999999000002 4999999000003 4999999000003 4999999000001 4999999000003 4999999000003 4999999000003 4999999000003 4999999000003   ・   ・   ・   ・ これを、JANコードの種類別に数の多い順に    D          E  JANコード     個数降順  4999999000003   12  4999999000002    8  4999999000001   4    ・    ・    ・ のように表記したいのですが、どのようにすれば宜しいでしょうか? どうかご教授お願いします。 JANコードの種類はおよそ200種類です。

  • 日付を基準に 形式の違う表にデータを反映させたい

    Windows8.1を使っています。 新しい職場でデータ入力等の仕事なのですが、同じデータの入力なのに、入力する表のパターンが違うため 二度手間・三度手間なことをしています。 1つの表に入力したデータが、自動で別の表に反映させることができないかと思い、ご相談です。 自分でなんとか・・・と思いましたが、どこをどうして良いのか分からず・・・よろしくお願いいたします。 エクセルで、全く形式の違う表が別々のBookにあります。 Book(1)のシート1には、A列をあけてB列に上から日付が並んでます。 この時、同じ日付のデータ入力が多数あるので、同じ日付で12行あります。 その下に翌日の日付が12行、またその下に12行・・・といった感じです。 Book(1)シート1    A  B    C      D      E  F  G   H   I     J     K    L  M・・ 1                    2014年7月                        2  ×  日付  得意先  現場  × ×  ×  名前1  ◆  ◆  名前2  ◆  ◆ ・・   3  ×  7/1   山    田中邸           ✓  TRUE  1  ✓  TRUE  1       4  ×  7/1   海    鈴木邸                       ✓   TRUE   2      5  ×  7/1   川    林邸            ✓  TRUE  2                  ~~~~~~~~ 14 ×  7/1                                            15 ×  7/2                                            16 ×  7/2                                            同じ日付12行に、得意先・現場を入力。名前の列にはチェックボックスを作り、チェックしたら右横のセルに反映します。7/1のH3にチェックをしたら、◆I3はTRUEになり、◆J3に「1」と反映するようにしました。 A・E・F・G列は、また違う書式に反映するデータを入力しているので、ここでは「×」としました。 同じ日付で12行ありますが、その日の現場数が5件なら5行、10件なら10行の入力です。 このシート1の表を基に、Book(1)のシート2には、シート1のチェックボックスの結果が反映するようにしました。 チェックボックスにチェックをしてTRUEになった行の「日付」「得意先」「現場」を、名前ごとに見られるような表です。(これは、作っておくと後々楽かなあという軽い気持ちで作りました。)   Book(1)シート2     A     B      C      D     E      F      G     H      I  ・・・   1 日付  得意先  現場   日付  得意先  現場  日付  得意先  現場・・・・  2 7/1      山    田中邸   7/1    山     田中邸                   3 7/1      川    林邸      7/1    海     鈴木邸                   4  5 ものすごく見づらくて分かりづらいと思いますが、Book(1)のシート1のH3にチェックをしたら、シート1のB3・C3・D3のデータが シート2のA・B・C列に反映します。シート1のK列にチェックしたら シート2のD・E・F列に。シート1のN列にチェックしたら シート2のG・H・I列に。 シート1の名前1さんのデータは、シート2のABC列、名前2さんはDEF列、名前3さんはGHI列、といった感じです。 問題はここからで、このBook(1)のデータをBook(2)の表に自動で反映できないものかと。。。 Book(2)の表がまた全然違う表なんです。 Book(2)     A      B     C     D      E      F      G      H    I    J    K   1 2 3   日付   曜日    名前1   名前2   名前3   名前4    名前5   名前6 4  6/21 5   6/22 6  6/23 ~~~~~~~~~ 14  7/1 15  7/2 16  7/3 このBook(2)の日付と名前の交わるセルに、Book(1)シート1もしくはシート2の「得意先」「現場」のデータを反映させたいのです。 Book(1)シート1もしくはシート2の日付と Book(2)の日付を連動させて・・・ ややこしいんですが、Book(1)は日付が1日~末日。Book(2)は21日~翌20日。 Book(1)は一月分のデータ(あるのはシート1・シート2くらい)、Book(2)は一年分のデータ(シートが月で分かれていて、シートが2014.1 2014.2 2014.3 2014.4・・・というようになっています。 Book(2)は昔からこの表でやってきたので、基本の形は変えたくないようです。 ただ、Book(2)の表は入力するセルが各一つしかないので、見た目は同じようにしながら作り直そうかと思ってます。 どうか、ご指導・アドバイス等お願いいたします。 知識がないばっかりに、分かりづらく、説明も下手くそですみません。 そして、画像の貼付に何度も失敗し、手入力の見づらい画面ですみません(T T))

  • JANコードについて教えてください。

    JANコードについて教えてください。 転職した先でJANコードの管理を任されました。 ところが、前任者が資料を残しておらず困っています。 今回知りたいのは、具体的なJANコード作成手順です。 また、検索していたら自動作成ツールがヒットしたのですが、そういったツールで作成して商品として販売して良いのでしょうか? (JANコードは申請して登録済みです。) それとも1商品毎に商工会議所を通して発行されるのでしょうか? 手引書などを見てもいまいちよくわかりませんでした。 乱筆・乱文ですが、宜しくお願いします!

  • JANコードの印刷について

    オリジナル商品をつくり、お店で販売しようと考えています。 JANコードの登録が必須ですので、登録をしようと思います。 登録できれば商品パッケージにJANコードをつけるのですが、、 JANコードをシールかなにかに自分で印刷して商品に貼ることは可能なのでしょうか? 印刷についてはJANコード用のフォントなどがあるかと思いますが、 そういうことをしても特に問題はないのでしょうか? ちなみに商品パッケーシについても自社で梱包をしています。 はじめてなことなのでよくわからない部分があります。宜しくお願いします。

  • 高さを削り取ったJANコード作成

    JANコード作成です。標準タイプの0.8倍スケールでさらに国内流通のみなので高さを9mmに削ったものを作ってエーワンの65片タックシールで印刷したいと思います。 WebサイトでJANコードを作成してラベルマイティの画面に張り付けて商品名も印字したいと思います。 さてJANコード作成サイトでは標準のものを作るのはありますが高さを削ったものを作成するのが見当たりません。これはやはり画像加工ツールで自分でカットするしかないですか。それともできるサイトやフリーソフトがありますか。また幅を37.29mにするには実際に印刷してみて調整するのでしょうか。 以上教えてください。

  • Excelで日付による個数カウント

    過去の質問を検索しても見つけることができなかったので教えてください。 Excelである日からある日までの個数をカウントしたいのですが何かよい方法はありますか?できるだけ簡単な方法が良いのですが。 やりたいこと) 列A 列B A  1/5 B 1/4 A 1/6 B 1/5 A 1/5 B 1/7 B 1/8 B 1/6 たとえば上記のような表があるとして列Bの1/5~1/7の個数を別のセルに表示したいのです。最終的には列Aが“B”かつ1/5~1/7の個数を別のセルに表示したいのです。 回答をお願いします。

  • 商品コード別集計表を作りたいのですけどアドバイスお願いします

    商品コード別集計表を作りたいのですけどアドバイスお願いします すでにできているシートを改良して集計表を作りたいのですけどアドバイスお願いします 【何がしたい】データー原本は下記のように日別にランダムにデータを入力しています これを横軸に日付、縦軸に商品コードそして表にはその日毎の売り上げ総数個数を表示します 〈データ原本〉 404482324 50 404461254 100 404452664 50 404452664 230 404452324 110 ............. 404462428 150 先頭9桁の数字は前5桁が日付で残りが商品コードです 次のセルはその日に売り上げた個数です 《結果(新しいシート)》 商品コード 9/1 9/2.....9/24 9/25..9/27 9/30 1254........................100 2324...................110........50 2428........................150 2664...................280........50 アドバイスお願いします。すでにできているシートには何日にこの商品が売れたの一覧表でした

  • 日付から特定の行のセル内データを取得したい。

    列に日付、行に時間を入力データの内容は商品の販売個数です。 要するに日付毎の時間別販売数を調べたいのですが、 列の日付の下に各品名を数項目並べております。 この様なデータを個人別のシートで入力しています。 行いたい事は、そのデータを別シートで日付毎に参照したいのです。 あるセルに18と入力すれば、18日分の売り上げデータを一枚のシートに表示させたいのです。 これが一商品だけの集計なら「HLOOKUP」関数で普通に参照できるのですが、列に日付と商品、行に時間を入れているためどの様に参照すればよいのか判りません。 =HLOOKUP(A1,'名前'!A3:AF20,6,0) コレではその日の一番左の列の商品データしか参照できませんでした。 日付を入力するだけで複数の商品を時間帯毎に参照出来るような上手いやり方はありませんでしょうか? 宜しくお願い致します。

  • 商品コードとJANコードの違い

    商品コード→英語や数字を用いて作成する任意の文字列コード。 JANコード→国・事業者・商品を表す、世界共通の商品識別用のコード。9ケタの数字から成り立ち、表記にはルールがある。 とのことですが、2つの質問があります。 (1)商品コードは重複する可能性、JANコードは個別のものだから重複しないというイメージなのですが、実際どう区別されているのでしょうか? (2)いずれのコードをネット検索、またJANコード読み取りアプリで検索してもその商品がでてきません。 これはその商品が製造中止になったのでしょうか? 製造していないものは、商品コード、JANコードは削除されるのでしょうか?

専門家に質問してみよう