Access2003 WinXP です。
9月~8月までのフィールドが用意されたテーブルがありまして、
1行づつ顧客名が入っており
各月に金額が入っていたり入っていなかったりしています。
クエリで、9月~8月までと、総合計を表示するようにしたのですが
総合計が、合計金額ではなく、文字列を繋げただけになっていました。
顧客名l9月l10月l11月~・・・l8月l総合計
Aさんl150,000l150,000l150,000~・・・l150,000l総合計は #エラー
Bさんl200l200l~・・・l200l総合計は 200200200
Cさんl1l l~・・・l3l総合計は 13
Dさんl456l456l~・・・l-456l総合計は #エラー
クエリの総合計のフィールドには
総合計: CCur(Nz([9月])+Nz([10月])+Nz([11月])+Nz([12月])+Nz([1月])+Nz([2月])+Nz([3月])+Nz([4月])+Nz([5月])+Nz([6月])+Nz([7月])+Nz([8月]))
と記載しました。。。
9月~8月までの合計金額を出すにはどのようにフィールドに書けば良いのか、分かる方いらっしゃいましたらご教授願います。
No.3ベストアンサー
- 回答日時:
横レスになりますが・・・(汗)
> total: CCur(iif(IsNull([9月]),0,[9月]))+・・・(以下略)
この式の各要素は、Nz関数で対応可能ですので、こちらをお勧めします。
IIF(IsNull([9月], 0, [9月])) → Nz([9月], 0)
(CCur関数と組み合わせると、「CCur(Nz([9月], 0))」になります)
また、提示された式をCopy&Pasteして使用しようとしたところ、IIF関数の第3引数
の幾つか(10,12,2,4,6月)で、数字と「月」の間にスペースが入っていることが
わかりました。
もしもクエリから直接貼り付けたものだとすると、これがエラーの原因になって
いる可能性もありますので、確認してみてください。
(こちらでは、パラメータの要求ダイアログがでたので、クエリの実行を中止)
※可能であれば、「9月」等のフィールドは文字列型ではなく通貨型に
することをお勧めします。
(書式が必要な場合は、テーブルやクエリの「書式」プロパティで対応:
テーブルならデザインビューの左下、クエリならデザインビューでフィールドを
ダブルクリックすると表示されるプロパティシートで、それぞれ設定できます)
(クエリの場合、「*」ではなく各フィールドを個別に指定する必要あり)
回答ありがとうございます!
Nz関数はそのように書くのですね。何故だめなのか色々いじってました・・・記載して頂いた「CCur(Nz([9月], 0))」で出せました!
その後、各月も空欄は良いのですが値の表示は通貨にしたくいじってました。
プロパティは、SQL文をコードで作成してそれをクエリに差し替えているので無効でした;
結局
Format(W_Mikomi.[9月],'#,##0') AS 9月額 , Format(W_Mikomi.[10月],'#,##0') AS 10月額 …
と記載する事で、やりたい事が実現出来ました。ありがとうございました!
No.2
- 回答日時:
+は連結演算子としても使われるからだと思う。
フィールドのデータ入力がおかしいのでは。
普通に通貨型に設定し、数字をカンマなしで入力し(自動的に3桁ごとカンマ、先頭に¥が着くが)、合計すれば良いのでは。
空白対策としてNZを各フィールドにつけて、空白は0にして足さないといけないとは思うが。
回答ありがとうございます!
+は合計だけではないのですね。
連結は&だけだと思っていました。
各フィールドに、NULLだったら0を表示するようにして合計したら出来ました!
でも出来ればNULLはそのままで、合計の方でnullは0として合計したかったのですが、難しかったです;それは不可能なのでしょうか。
No.1
- 回答日時:
+演算子で結合した後にCCur関数で数値に変換しようとしても、もう手遅れ。
先にCCur関数で数値化してから、それを+演算子で演算しよう。
総合計: CCur(Nz([9月]))+CCur(Nz([10月]))+CCur(Nz([11月]))+CCur(Nz([12月]))+CCur(Nz([1月]))+CCur(Nz([2月]))+CCur(Nz([3月]))+CCur(Nz([4月]))+CCur(Nz([5月]))+CCur(Nz([6月]))+CCur(Nz([7月]))+CCur(Nz([8月]))
回答ありがとうございます。
単に連結したのをCCURしていたという事ですね。
書いてくださった式を当てはめたら、空欄があるとエラーとなってしまいました。
各フィールドにNullだったら0を表示するようにしたら大丈夫でしたが、出来れば各フィールドはNullなら空欄のままで、
総合計で何とかしたいです。
Nz関数でいけると思ったのですがエラーでした。
試しに
total: CCur(iif(IsNull([9月]),0,[9月]))+CCur(iif(IsNull([10月]),0,[10月]))+CCur(iif(IsNull([11月]),0,[11月]))+CCur(iif(IsNull([12月]),0,[12月]))+CCur(iif(IsNull([1月]),0,[1月]))+CCur(iif(IsNull([2月]),0,[2月]))+CCur(iif(IsNull([3月]),0,[3月]))+CCur(iif(IsNull([4月]),0,[4月]))+CCur(iif(IsNull([5月]),0,[5月]))+CCur(iif(IsNull([6月]),0,[6月]))+CCur(iif(IsNull([7月]),0,[7月]))+CCur(iif(IsNull([8月]),0,[8月]))
としましたが、これもだめ。。。どこか間違っているのでしょうか;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 確定申告 個人の確定申告。「医療費のお知らせ」記載内容と医療費控除の明細書【内訳書】に記入する内容の関係 4 2023/03/04 18:41
- その他(お金・保険・資産運用) 金利計算 返済期間 返済金額計算教えて下さいm(_ _)m 2 2023/08/10 23:48
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける 3 2022/09/10 07:55
- 年末調整 令和4年分 給与所得者の基礎控除申告書 兼 給与所得者の配偶者控除等申告書 兼所得金額調整控除申告書 3 2022/11/04 03:46
- その他(ニュース・時事問題) 岸田総理大臣が目指すもの。外遊歴から何か読み取れますか? 3 2023/05/14 09:10
- 雇用保険 失業保険の支給額は離職前6ヶ月間の給与で決まると聞きました。2月いっぱいで退職予定なのですが、訳あっ 3 2023/02/24 19:38
- 確定申告 企業年金連合会から年金と確定申告 5 2023/01/16 20:51
- その他(暮らし・生活・行事) 半年おきの2つの月の組み合わせ 2 2023/07/01 17:22
- 共済年金 年金65歳満額受給を4年前倒しで受給した場合何割カットの手取りは? 1 2023/08/06 03:27
- 所得・給料・お小遣い 有給休暇の平均賃金を用いて計算する場合について 3 2023/06/08 07:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
自治会の通常総会の年度について
-
確認ですが普通5月までに決める...
-
カレンダーの日付 5/Bの意味に...
-
エクセルのフィルターを複数シ...
-
総会の年度表記について
-
月の最後の週の呼び名は?
-
「6月まで」というのは6月以内...
-
今は何年度ですか?
-
8月までっていつまでのことでし...
-
「1年以上」の定義について
-
昔の愛称?「~の字」
-
満何歳の意味
-
入社が2月1日とした場合、3ヶ月...
-
10月をもって辞めるって、10...
-
○年後の3月末日を関数で出したい
-
一ヶ月前、一ヶ月後
-
○月第○週 の数え方について
-
『無線LANが切れる時、何かイベ...
-
12:00 PM は何時?
-
エクセルファイルで指定期間に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
自治会の通常総会の年度について
-
総会の年度表記について
-
満何歳の意味
-
ひな祭りに外食するならどこで...
-
月の最後の週の呼び名は?
-
確認ですが普通5月までに決める...
-
10月をもって辞めるって、10...
-
カレンダーの日付 5/Bの意味に...
-
「6月まで」というのは6月以内...
-
学校の在籍機関
-
8月までっていつまでのことでし...
-
エクセルのフィルターを複数シ...
-
入社が2月1日とした場合、3ヶ月...
-
昔の愛称?「~の字」
-
「1年以上」の定義について
-
一ヶ月前、一ヶ月後
-
卒業式に着る袴をお店でレンタ...
-
○年後の3月末日を関数で出したい
-
「陽気」という言葉の使い方
-
VBA ユーザーフォームのChange...
おすすめ情報