またまた教えてください。
エクセルで注文書を発行印刷したいのです。
Sheet1に注文すべきデータだあります。
セルA1から
仕入先コード 仕入先名 商品コード 商品番号 品目名 単価 注文数
001 AAA A111 A001 ABC 100 10
001 AAA A112 A002 ADD 200 50
050 FFF F555 F051 TYI 500 10
があります。
Sheet2には注文書のフォームがあります。明細行は7桁です。
このとき、仕入先は二つあります。001 と 050
最初に001を印刷し連続して050を印刷する。仕入先をグループをして
印刷はできるのでしょうか?
No.1ベストアンサー
- 回答日時:
こういう問題はVBAでやるべき課題である。
ーー
説明も大変だが、関数で途中まではやってみる。じっくり考えてみてください。
仕入先コード順に並んでいるのが大前提。
ーー
例データ Sheet1 A-H列 H列は作業列
仕入先コード仕入先名商品コード商品番号品目名単価注文数キー作業列
1田中建材A111A001セメント1001000101
1田中建材A112A002砂2005000102
1田中建材A113A003砂利3002000103
50鈴木塗料F555F051壁塗料5001005001
50鈴木塗料F556G210フィルム1001505002
ーー
H2に =TEXT(A2,"000")&TEXT(COUNTIF($A$2:A2,A2),"00")
と入れて下方向に式を複写。
結果上記H列。
この例では、999社、請求は1社9件以内の仕組みとしている。9999や99などに変えることは出来る。どう変えたらよいかわかりますか?
ーーー
Sheet2
B3:E10
仕入先コード仕入先名 3行目
1田中建材 4行め
請求件数3 6行目
商品コード商品番号品目名 以下9行明細
A111A001セメント
A112A002砂
A113A003砂利
D4 田中建材 =VLOOKUP(B4,Sheet1!$A$1:$B$100,2,FALSE)
D6 請求件数 =COUNTIF(Sheet1!$A1:$A$100,$B$4)
C8 商品コード =IF(ROW()-7>$D$6,"",INDEX(Sheet1!$C$1:$E$100,MATCH(TEXT($B$4,"000")&TEXT(ROW()-7,"00"),Sheet1!$H$1:$H$100,0),1))
D8 商品番号 =IF(ROW()-7>$D$6,"",INDEX(Sheet1!$C$1:$E$100,MATCH(TEXT($B$4,"000")&TEXT(ROW()-7,"00"),Sheet1!$H$1:$H$100,0),2))
E8 品目名 =IF(ROW()-7>$D$6,"",INDEX(Sheet1!$C$1:$E$100,MATCH(TEXT($B$4,"000")&TEXT(ROW()-7,"00"),Sheet1!$H$1:$H$100,0),3))
最後の引数だけ1->2->3と変わるだけ。
単価、注文数は長くなるので省略。類推のこと。
C8:E8を下方向に式を9行複写
結果
上表のとおり。
B4セルの仕入先コードを50 に変えると
仕入先コード仕入先名
50鈴木塗料
請求件数2
商品コード商品番号品目名
F555F051壁塗料
F556G210フィルム
ーーー
問題は明細数には限りがある。超えたときどうするか。
仕入先コードを1->50-->・・と変化させつつ、印刷をしないとならない。
これは自動的にやるには、VBAの世界です。
==
以上関数では、相当複雑で、十分で無いことがわかったでしょう。VBAを勉強してください。
VBAでやればもっとすっきりプログラムが組める。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 年賀状作成・はがき作成 Wordによる宛名印刷 2 2023/01/04 15:36
- Excel(エクセル) エクセル2013「次のページ数に合わせて印刷」が小さすぎる 9 2023/03/28 10:18
- ノートパソコン ページ番号の入れ方について 3 2023/02/16 17:11
- Excel(エクセル) エクセルVBAで次の二つを行いたいのですが思うように動きません。どう修正したらよいのでしょうか? 2 2023/04/22 14:55
- UNIX・Linux テキストファイルをページ番号付きでコマンドラインから印刷したい 1 2023/02/22 12:47
- PDF 2つのPDFを重ねる方法はありますか? 4 2023/01/30 14:04
- Excel(エクセル) エクセルのフッタやヘッダーについて 3 2023/02/04 09:45
- Excel(エクセル) エクセルの印刷範囲をページ単位で可変にする方法 3 2022/05/23 13:04
- Visual Basic(VBA) エクセル365のVBAで困っています。どう修正したらよいか添削をお願いします 2 2023/05/03 17:35
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【関数】スペースがいくつ入っ...
-
西暦や和暦の表示をyyyymmdd表...
-
Excelのセルを飛ばして入力する
-
Excelのオートフィル
-
別シートからの文字を変更
-
Excel 2019 のピボットテーブル...
-
エクセルの行の抽出について質...
-
【マクロ】エクセルにかいてあ...
-
スプレッドシート クエリ関数 1...
-
エクセルでセルに「氏名を入力...
-
MOS365 Excel Expert / Excel R...
-
excelの不要な行の削除ができな...
-
EXACT関数とIF関数の組み合わせ...
-
スプレッドシートの関数VLOOKUP...
-
Excelで全角を半角にしたいので...
-
Excel初心者です。 詳しい方、...
-
エクセルの数式で教えてください。
-
4つのパターンを表示するEXACT...
-
スマートな関数を教えて下さい。
-
【Excel】セル内の時間帯が特定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報