- 締切済み
ワードの差込文書で同じ宛名の人のデータをまとめる方法はありますか?
たとえば ■■社様 ○○何個 ○○何個 の○○の部分の行数が会社によって違う文書を 自動的に作成したいのですが、どのようにすれば出来るでしょう? 現在はワードの差込で文書を作り、手動でまとめています。 その作業を自動化できないものかと考えています。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- CHRONOS_0
- ベストアンサー率54% (457/838)
>データファイルは何で作っているの? に対する回答がありませんが アップされたような表では出来ません 会社ごとにまとめて出力したいばあい 会社ごとにまとまっている必要があります まとまっていればグループの区切りに空行を作成します 社名 商品名 個数 A社 ○○商品 10 A社 ××商品 15 A社 ■■商品 30 B社 ××商品 12 B社 ○○商品 10 こういう風に表を作りかえれば後はWordのフィールドだけで ご希望のことができます <<社名>> <<商品名>><<個数>> <<NextRecordIF>><<商品名>><<個数>> <<NextRecordIF>><<商品名>><<個数>> <<NextRecordIF>><<商品名>><<個数>> 商品名の行は1社あたりの最大+1(空行の分)を用意します NectRecordIfはWordフィールドの挿入から挿入します 条件は フィールド名:社名 比較:等しくない 比較対象:"" 仕上がりの確認はレコードの移動では出来ません 「各レターの編集」で確認してください
- imogasi
- ベストアンサー率27% (4737/17069)
元データはエクセルのシートですか。大切なことを書いてない。 またエクセルとしても何個ー何個は X日付ーA社名ー4個 Y日付ーA社名ー9個 ・・ などのようになっているのかどうか。(日付を添えたのは推測。) などのデータの状況も書いてないので、質問として漠然。 ーー ワードの差込印刷ではNextRecordで次のレコード(エクセルでは次の行)のデータを採ってくるが、これと社名が変わるまでという印刷とのコントロールが難しいと思う。 ーー エクセルやアクセスのレポートで得意先ごとに(請求書かを?)印刷する方法を勉強したほうが良さそうです。道は険しいが。 ビジネスでエクセルを使うにはVBAが必須というのが持論ですが、ここにもその局面が首を出している。 ーー 例データ Sheet1で A1:E8 番号 社名 日付 買上金額 作業列 1 A社 2月1日 11 1101 1 A社 2月3日 21 1102 1 A社 2月8日 33 1103 1 A社 2月9日 34 1104 3 B社 2月3日 5 1201 3 B社 2月5日 6 1202 5 C社 2月9日 7 1301 ーー E2には1101と入れる。 E3には 式 =IF(B3=B2,E2+1,(INT(E2/100)+1)*100+1) と入れて下方向に式を複写。 ーー Sheet2で 11 A社 殿 請求明細 日付 買上金額 2008/2/1 11 2008/2/3 21 2008/2/8 33 2008/2/9 34 #N/A #N/A #N/A #N/A #N/A #N/A #N/A #N/A 99 ーー E1の11は手作業で入れる。->12->13->14・・ 殿、請求明細 日付 買上金額 が不動文字です。手作業で入れる。 社名B3は =INDEX(Sheet1!$A$1:$E$100,MATCH($E$1*100+1,Sheet1!$E$1:$E4100,0),2) と入れる。 日付C7は =INDEX(Sheet1!$A$1:$E$100,MATCH($E$1*100+ROW()-6,Sheet1!$E$1:$E4103,0),3) と入れて下のほうに式を複写する。 買上金額D7は式 =INDEX(Sheet1!$A$1:$E$100,MATCH($E$1*100+ROW()-6,Sheet1!$E$1:$E4103,0),4) と入れて式を下方向に複写。 C7:D14を範囲指定し、書式ー条件付書式ー式が =ERROR.TYPE(C7)=7 書式はフォントを白色に設定。 これで#N/Aが見えなくなる。 ーー 合計はエラー値があってSUMなど使えないので =SUMIF(Sheet1!$B$1:$B$100,$B$3,Sheet1!$D$1:$D$100) で出す. -- E1に12を入れるとB社、13を入れるとC社のデータに瞬時に置き換わる。 これを手作業で印刷処理する(にとどめる)方法もある。 ーー 会社数は99社、明細は99明細/1社までの設計になっている。 Sheet1のE列の作業列の番号のセットの仕組みを知れば999社までとかに広げられる。 ーー こんなに関数ではややこしくなる。 VBAを知っておれば素直な考えでプログラムができる。 私も今回始めてこのタイプの回答に切り込んだ。だから質問者には難しいかも。 ーー 後は、自動的に全社分印刷するのは、別途「imogasi方式 請求書」でWEB照会すれば、VBAコードが出てくる(10行以内の簡単なもの) 上例ではE11に11をセットー>印刷、12にセットー>印刷 をVBAが自動でやる。
お礼
ご親切に教えてくださってありがとうございました。 新しい知識を増やすことが出来て とても感謝しています。
補足
おっしゃるとおりアクセスのレポートで出来ることを アクセスを使わず、作成したいのです。 確かに教えてくださったように作成できますが、 各社営業担当がコメントを入力するという作業があるので データとしてまとめて保存されていることが望ましいのです。 (コメントを記入する担当者数は各社によって違います。) VBAは現在徐々に勉強中です。 参考になりそうな例があれば教えてください。
- koko88okok
- ベストアンサー率58% (3839/6543)
Wordの差し込み印刷は、1つの文書にデーターベース(Excelデータなど)の1つのレコードが差し込まれる仕組みになっています。 従って、同じ宛先は同じ行に入力されている必要があります。 即ち、Excelなどの差し込みデータの位置を変更する必要があると思います。
お礼
もともとのデータは集計などをする都合上、 変更することが不可能なのです。 このようなことをWordの差込印刷を使ってするのは無理なようですね。 回答ありがとうございました。
- CHRONOS_0
- ベストアンサー率54% (457/838)
補足要求です >■■ は差し込み印刷じゃないの? データファイルは何で作っているの?Word?
補足
かなり説明不足だったようです。 データファイルはExcelです。 ■■は差込印刷です。 たとえば 複数の会社から商品の委託販売を請け負ったとして、 A社 ○○商品 個数 B社 ××商品 個数 A社 ××商品 個数 というようなリストから 各社あてに売上報告書を作りたいのです。 委託商品は毎月多少変動します。 別にワードでなくても良いのですが、 その後、各社の営業担当がコメントを入力するという作業があるので ワードで作成しています。 アクセスはソフトがないので使えません。 という状況なのですが、なんとかなりますでしょうか?
お礼
ありがとうございます。 やっぱり無理なのかなと思いかけていたところなので とてもうれしいです。