
No.2ベストアンサー
- 回答日時:
#01です
補足ありがとうございました。まだ疑問はありますが、いきがかり上、その点は想像で補います。
まず、請求書のシートに得意先の情報を引っぱってくる得意先情報が必要です。そこで次のようなサンプルを想定します
A1:得意先コード B1:得意先名 式は=VLOOKUP(D2,得意先シート!範囲,2)
B2:納品日
の状態で、D2:に納品日より未来で直近の請求日(=得意先シートの締め日から算出)をセットするのが目的ということで良いですか? (それとも本日以降の直近の締め日が適切でしょうか)
もう一つ前提を決めなければなりません。それは得意先シートの締め日(C列)の記述方法です。日数が20日のように明確に決まっていれば問題がありませんが、「月末」の場合はどのように記述されるのでしょうか? それが分からないので「C列には数字もしくは”月末”という文字列が入っている。」と仮定します。
関数で可能ですが、だいぶ長くなりますよ。
=IF(ISNUMBER(VLOOKUP(A1,得意先シート!範囲,3)),IF(VLOOKUP(A1,得意先シート!範囲,3)>DAY(B2),DATE(YEAR(B2),MONTH(B2),VLOOKUP(A1,得意先シート!範囲,3)),DATE(YEAR(B2),MONTH(B2)+1,VLOOKUP(A1,得意先シート!範囲,3))),IF(B2=DATE(YEAR(B2),MONTH(B2)+1,1)-1,DATE(YEAR(B2),MONTH(B2)+2,1)-1,DATE(YEAR(B2),MONTH(B2)+1,1)-1))
ただし制限事項があります。29,30,31という締め日は正しく処理できません。月によってはその日がないからです。ですからこれらの日付は「月末」となっているものとします
意味が分かりにくければ補足で質問して下さい
この回答への補足
ありがとうございます。思っていたことが完璧にできました。
あと質問ついでで申し訳ありませんが、納品日が締日(請求日)になる得意先もあるのですがどのように処理をすればよろしいでしょうか?
ただ式を真似ただけなので、数値や文字をどのように区別しているのか今の私ではまだ理解できませんのでよろしくお願いします。
No.4
- 回答日時:
#03さんのご指摘はごもっともですね。
実業務ではもう少し条件が複雑だとは思います。次回質問されるときは今回の補足質問のようなときはどうするか予め書かれるとよいでしょう。それはともかく補足質問に回答します。この式は4つの場合分けをしています
1)締め日が数字、締め日>納品日
DATE(YEAR(B2),MONTH(B2),VLOOKUP(A1,得意先シート!範囲,3)
(年月は納品月と同じ、日は締めの日)をDATE関数で生成
2)締め日が数字、締め日<=納品日
DATE(YEAR(B2),MONTH(B2)+1,VLOOKUP(A1,得意先シート!範囲,3))
(年月は納品月+1、日は締めの日)をDATE関数で生成
3)締め日が数字でない(=月末)、納品日=月末日
DATE(YEAR(B2),MONTH(B2)+2,1)-1
翌月の月末日を請求日として生成(翌々月のついたちの一日前で計算)
4)締め日が数字でない、納品日≠月末でない
DATE(YEAR(B2),MONTH(B2)+1,1)-1)
今月の末日を請求日として生成(翌月ついたちの1日前)
>納品日が締日(請求日)になる得意先もあるのです
は現在の式では翌月の締め日を請求日としています。
もし納品日が締め日のとき、当日請求するなら
IF(VLOOKUP(A1,得意先シート!範囲,3)>DAY(B2),
の条件判定を
IF(VLOOKUP(A1,得意先シート!範囲,3)>=DAY(B2),
に修正します。(35文字目くらいにあるIF文です)
この回答への補足
zap35 様
度々丁寧な説明でありがとうございます。
取り敢えずご指摘のように「=」(下記)を入れてみましたが、「月末」とおなじ表記になってしまいます。
(~●得意先,4)の列に締日の数値以外に「月末」と「納品日」という文字を使っているので、区別されないのではないかと思いますが…?
=IF(ISNUMBER(VLOOKUP(A6,★商品顧客マスタ.xls!●得意先,4)),IF(VLOOKUP(A6,★商品顧客マスタ.xls!●得意先,4)>=DAY(I5),DATE(YEAR(I5),MONTH(I5),VLOOKUP(A6,★商品顧客マスタ.xls!●得意先,4)),DATE(YEAR(I5),MONTH(I5)+1,VLOOKUP(A6,★商品顧客マスタ.xls!●得意先,4))),IF(I5=DATE(YEAR(I5),MONTH(I5)+1,1)-1,DATE(YEAR(I5),MONTH(I5)+2,1)-1,DATE(YEAR(I5),MONTH(I5)+1,1)-1))
No.3
- 回答日時:
>完璧にできました
いまさらどうでも良いが、ほんとかな。ご回答がどうこうはなくて、質問が大雑把で、こんなことで仕事に使うの大丈夫ですか。締め日が休日ならどうするとか色々ややこしいルールがあるのではないですか。
>納品日から起算して指定の請求日を設定したいのですが
納品日の日付からXX日後でよいのですか。請求は月1回とかまとめるのでは。
仕事に使うときは、文章に正確に表現した仕様書を残し、関係各部署のエクスパートに慣習も聞き、得意先にも理解を求めてやるのが普通ではないですか。その過程でもう少し考えが整理され、質問の表現も
適切になるのが普通では。
それにしごとで使うとなると、間数式が長くなったりしすぎるので
VBAを取り入れるなどは必須だというのが小生の持論です。
文面で質問するには確かに説明不足だったと思います。
今回は知り合いに頼まれ、運用も個人レベルなのでなんとか関数だけで作ろうとしています。しかし使用している内に多角的な処理も必要になってくると、VBAなどで作るしかないと思いますが。私自身が初心者なので今後の課題ですが…。
No.1
- 回答日時:
すみません。
質問文だけでは何をどうしたいのかサッパリ分かりません。具体的に各シートにどのような情報があって、どの項目で何を突合したいのか書いていただかないと回答のしようがありません。
シート1(請求書データ)
A列 B列 C列 D列
請求日 納品日 得意先 品名
シート2(得意先マスタ)
A列 B列 C列 D列
コード 得意先 締め日 支払日
また
>納品日から起算して指定の請求日を設定
も他人が分かるように解説していただけると助かります。おそらく用語の意味は会社によって独特でしょうから…
この回答への補足
早速の解答ありがとうございます。
請求書の書式に「納品日」と「請求日」各々のセルがあります。
納品日は手入力し、請求日のセルに得意先ごとの締日に対応した日付にしたいのです。
---------------------------
A B C D
納品日 2006年7月14日 請求日 2006年7月20日
----------------------------
(得意先Aの締日が毎月20日の場合)
得意先ごとの締日はマスタに設定。
----------------------
A B C
コード 得意先名 締日(20日とか月末とか)
----------------------
こんな感じですが、どうでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 財務・会計・経理 請求金額について 5 2023/04/10 09:17
- Visual Basic(VBA) VBAでPDFのアクティブページ番号取得 1 2023/05/25 12:41
- Visual Basic(VBA) VBA 請求書自動作成 3 2022/04/24 01:58
- docomo(ドコモ) クレジットカード認証されない 12 2023/03/06 16:14
- 財務・会計・経理 取引先の先方から注文した商品に対してこちらが発行する納品書や請求書を業務用・販売用・消耗品などに科目 1 2022/07/18 02:18
- 消費税 インボイスの事業者登録番号を仕入れ先から求められました? 3 2023/03/19 21:48
- クレジットカード 【至急よろしくお願いします】 過払い金請求についてです。 すでに5年以上前に完済したクレジットカード 2 2023/01/26 12:39
- 弁護士・行政書士・司法書士・社会保険労務士 行政不服審査請求したところ、次ぎの答えが返ってきました。 1審査請求で審査会の結論 「費用返還決定処 4 2022/04/25 20:30
- 法学 会社法166条 但し書きについて 5 2022/12/10 07:01
- 損害保険 現在20歳で大学で保険法を履修している者です。 過去問に取り組んでいるのですが、答えがわからず苦戦し 1 2023/07/22 19:42
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELのVBAで複数のシートを追...
-
文字の色も参照 VLOOKUP
-
エクセルで、チェックボックス...
-
エクセルの保護で、列の表示や...
-
Excel セルに入っている日付を...
-
【条件付き書式】countifsで複...
-
【マクロ】【配列】3つのシー...
-
VLOOKアップ関数の結果の...
-
【VBA】複数のシートの指定した...
-
エクセルVBA 行追加時に自...
-
ExcelのVlookup関数の制限について
-
エクセルで横並びの複数データ...
-
エクセルの列の限界は255列以上...
-
エクセルVBAで、ある文字を含ん...
-
EXCEL 関数を教えてください。...
-
エクセル2000で見積書を作...
-
excel 複数のシートの同じ場所...
-
Excelでの並べ替えを全シートま...
-
オートフィルタ使用時にCOUNTIF...
-
Excelのセルの色を変えた行(す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】【配列】3つのシー...
-
文字の色も参照 VLOOKUP
-
【条件付き書式】countifsで複...
-
ExcelのVlookup関数の制限について
-
エクセルの保護で、列の表示や...
-
Excelのセルの色を変えた行(す...
-
エクセルで、チェックボックス...
-
VBAで繰り返しコピーしながら下...
-
シートをまたぐ条件付き書式に...
-
Excelでの並べ替えを全シートま...
-
Excel の複数シートの列幅を同...
-
エクセルの列の限界は255列以上...
-
SUMPRODUCTにて別シートのデー...
-
VLOOKアップ関数の結果の...
-
excel 複数のシートの同じ場所...
-
【VBA】複数のシートの指定した...
-
Excelに自動で行の増減をしたい...
-
エクセル マクロ 標準モジュー...
-
Excel 2段組み
-
スプレッドシートでindexとIMPO...
おすすめ情報