今仮に、住所録が入力されているシートがSheet1、取引台帳が入力されているシートがSheet2で、Sheet1のB列に氏名、Sheet1のC列に住所、Sheet1のD列に郵便番号が入力されていて、Sheet2のB列に氏名、Sheet2のC列に商品名、Sheet2のD列に取引日付が入力されていて、
Sheet3のA1セルに 通知文
Sheet3のB5セルに 様
Sheet3のA7セルに 取引内容
と入力されているものとします。
また、Sheet2のD列に取引日付データはシリアル値で入力されているものとします。
まず、Sheet3のA3セルに次の数式を入力して下さい。
=IF(COUNTIF(Sheet1!$B:$B,$A$5)=0,"",VLOOKUP($A$5,Sheet1!$B:$D,3,0))
次に、Sheet3のA4セルに次の数式を入力して下さい。
=IF(COUNTIF(Sheet1!$B:$B,$A$5)=0,"",VLOOKUP($A$5,Sheet1!$B:$D,2,0))
次に、Sheet3のA8セルに次の数式を入力して下さい。
=IF(OR(COUNTIF(Sheet2!$B:$B,$A$5)=0,ROWS($2:2)>COUNTIF(Sheet2!$B:$B,$A$5)),"",ROWS($2:2)&".")
次に、Sheet3のB8セルに次の数式を入力して下さい。
=IF($A8="","",INDEX(Sheet2!$D:$D,SUMPRODUCT((ROW(OFFSET(Sheet2!$D$1,,,MATCH(9^9,Sheet2!$D:$D)))*(OFFSET(Sheet2!$B$1,,,MATCH(9^9,Sheet2!$D:$D))=$A$5)*(COUNTIF(OFFSET(Sheet2!$B$1,,,ROW(OFFSET($E$2,,,MATCH(9^9,Sheet2!$D:$D)))),$A$5)=ROWS($2:2))))))
次に、Sheet3のC8セルに次の数式を入力して下さい。
=IF($A8="",IF($A7="","","以上"),INDEX(Sheet2!$C:$C,SUMPRODUCT((ROW(OFFSET(Sheet2!$D$1,,,MATCH(9^9,Sheet2!$D:$D)))*(OFFSET(Sheet2!$B$1,,,MATCH(9^9,Sheet2!$D:$D))=$A$5)*(COUNTIF(OFFSET(Sheet2!$B$1,,,ROW(OFFSET($E$2,,,MATCH(9^9,Sheet2!$D:$D)))),$A$5)=ROWS($2:2))))))
次に、Sheet3のA8~C8の範囲をコピーして、同じ列の9行目以下に貼り付けて下さい。
以上で完了です。
尚、Sheet2のD列に取引日付データがシリアル値ではないものが存在している場合には、Sheet3のA8~C8に入力する数式中の
MATCH(9^9,Sheet2!$D:$D)
と記述されている全ての箇所を
MATCH("゛",Sheet2!$D:$D,-1)
に変更して下さい。
お礼
詳しく教えていただきありがとうございます。 周りの人にも聞いてみましたが、他の回答者の方と同じくACCESSを勧められました。 色々勉強して行かないと・・・。 また機会がありましたらよろしくお願いします。