- ベストアンサー
売上表から請求書に転記する方法
- 売上表から20日〆の請求書に転記する方法についてご教授いただけないでしょうか。
- 日毎に売上表に記録していき、前月の21日から当月の20日までを締めて請求書を作成します。売上表のID、納品日、作業内容を請求書に転記したいです。
- 売上表のA2セルにある数式を手がかりに請求書に転記する方法を教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
No.1です。 投稿後間違いに気づきました。 前回の数式ではA2のIDの条件が入っていませんでした。 A15セルの数式はそのままで B15セルの数式(前回同様で配列数式)を =IFERROR(INDEX(売上表!$A$1:$I$1000,SMALL(IF((売上表!$F$1:$F$1000=$A$2)*(売上表!$G$1:$G$1000=$H$3)*(売上表!$B$1:$B$1000>EOMONTH($H$5,-2)+20)*(売上表!$B$1:$B$1000<=EOMONTH($H$5,-1)+20),ROW($A$1:$A$1000)),ROW(A1)),MATCH(B$14,売上表!$A$1:$I$1,0)),"") にしてください。 後の操作方法(B15セルをフィル&コピー)は一緒です。 どうも失礼しました。m(_ _)m
その他の回答 (4)
- ExcelDevTool
- ベストアンサー率50% (3/6)
これを対応するための機能があります。台帳から個別文書へ出力することは 設定ファイルで線を引くだけで実現することができます。 初回の利用は難しいと思いますが、試していただければと思います。 http://superdbtool.com/blog/archives/337 ご参考まで。
お礼
ありがとうございます。 難しそうですがじっくり勉強します。
- tom04
- ベストアンサー率49% (2537/5117)
No.1・2です。 >そこでお許しいただきたいのですが御指導の数式を基本に下記のように変更させていただきました。 >勝手ですがお許しください。 全く気にする必要はありません。 一番大切なことは、こちらではそちらの配置・使用方法がまったく判りませんので ご自身で使いやすいようにできるのが一番だと思います。 他の方の回答(数式)をそのままコピー&ペーストして「問題解決!」と思っているより 回答した側としては逆に好ましい事だと思っています。 >心苦しいですがうまくできました 結論として、何とかご希望通りになったのですね? そうであれば一安心です。m(_ _)m
お礼
いつもご指導ありがとうございます。 激励のお言葉と理解しこれからも頑張ります。 急な用事ができてお礼が遅くなりました。
- bunjii
- ベストアンサー率43% (3589/8249)
考え方は回答No.1と同じですが数式の使い方を変えてみました。 貼付画像はExcel 2013で検証した結果ですがExcel 2007以降のバージョンで再現できるはずです。 EOMONTH関数を使うと基準日からの前後指定月数の月末を算出できるので前月21日を次のように算出します。 前月21日=EOMONTH(当月の特定日,-2)+21 (前々月の末日の21日後) シート名:請求書 A15=IF(ROWS(A$15:A15)<=COUNTIFS(売上表!$B$2:$B$1000,"<"&$H$4,売上表!$B$2:$B$1000,">"&EOMONTH($H$4,-2)+20),ROWS(A$15:A15),"") B15=IF($A15="","",INDEX(売上表!$B:$I,SUMPRODUCT(LARGE((売上表!$B$2:$B$1000<$H$4)*(売上表!$B$2:$B$1000>EOMONTH($H$4,-2)+20)*ROW(B$2:B$1000),COUNTIFS(売上表!$B$2:$B$1000,"<"&$H$4,売上表!$B$2:$B$1000,">"&EOMONTH($H$4,-2)+20)+1-$A15)),MATCH(B$14,売上表!$B$1:$I$1,0))) この数式は入力後Enterキーのみの打鍵で確定しても正常に抽出できます。 B15セルをC15、D15、H15セルへコピーし、A15からH15セルを纏めて下へ必要数コピーします。 H23=SUM(H15:H22)*0.08 (消費税8%) H24=SUM(H15:H23) (合計) 御請求金額(消費税込)は作業用のセルで桁毎に漢数字に変換した文字列を連結して作成しました。
お礼
親切丁寧なご指導ありがとうございます。 上手くできました。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 一例です。 「売上表」Sheetの列番号が判らないので ↓の画像のような配置だとすると・・・ 「売上表」SheetとSheet2(請求書)の14行目項目名は一致しているとします。 Sheet2のA15セルには =IF(B15="","",ROW(A1)) B15セルに =IFERROR(INDEX(売上表!$A$1:$I$1000,SMALL(IF((売上表!$G$1:$G$1000=$H$3)*(売上表!$B$1:$B$1000>EOMONTH($H$5,-2)+20)*(売上表!$B$1:$B$1000<=EOMONTH($H$5,-1)+20),ROW($A$1:$A$1000)),ROW(A1)),MATCH(B$14,売上表!$A$1:$I$1,0)),"") これは配列数式になりますので、Ctrl+Shift+Enterで確定! B15セルをE15セルまでフィル&コピー B15セルの表示形式を好みの「日付」にします。 最後にA15~E15セルを範囲指定 → E15セルのフィルハンドルで下へコピー! これで画像のような感じになります。m(_ _)m
補足
おはようございます。 いつもいつも良き御指導を誠にありがとうございます。 色々と試させていただきました。 その中で私の説明不足で申し訳ありません。 というのはtom04さんの添付図でいうとB列ですが同じIDで日にちこそ違え別の日に商いが発生します。 そこでお許しいただきたいのですが御指導の数式を基本に下記のように変更させていただきました。 勝手ですがお許しください。 売上表 A2 =IF(B2="","",MONTH(IF(DAY(B2)<=20,EDATE(B2,1),EDATE(B2,2)))) 11 J2 =IF(F2="","",TEXT(B2,"yyyy")&A2&F2) 2014110030 請求書 H3 =TEXT(I2,"yyyymm")&A2 2014110030 H5 10月21日 I2 =DATE(YEAR(H5),MONTH(H5)+1,1) 2014/11/1 B15 =IFERROR(INDEX(売上表!$A$1:$I$1000,SMALL(IF((売上表!$J$1:$J$1000=$H$3)*(売上表!$B$1:$B$1000>EOMONTH($H$5,-2)+20)*(売上表!$B$1:$B$1000<=EOMONTH($H$5,-1)+20),ROW($A$1:$A$1000)),ROW(A1)),MATCH(B$14,売上表!$A$1:$I$1,0)),"") 心苦しいですがうまくできました。 基本になる数式を教えていただいたおかげです。