• ベストアンサー

IIF関数の中に合計値*をいれるには

テーブル 単位 区分 p   2 t   1 個   2 .   . .   . クエリに結線を加え、 区分が2だったら[員数]*[売単価]それ以外だったら[重量]*[売単価]としたい場合 合計:IIF("[単位テーブル]![区分]=1","[重量]*[売単価]","[員数]*[売単価]") としたのですが合計に反映されません。 クエリ員数に5、重量にも0.5と入るので、単位をtと選んだ場合は重量と単価をかけたい。単位を個としたばあいには員数かける単価としたい場合はどうしたらよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

> IIF("[単位テーブル]![区分]=1","[重量]*[売単価]","[員数]*[売単価]") 式がダブルクォートでくくられてますが、これが悪さしてるのでは。 区分外のフィールドは0を必ず入れるようして、 ( [重量] + [員数] ) * [売単価] ――と単純に計算できるようにする手も。

mokomaka
質問者

お礼

ありがとうございました! 悪戦苦闘いたしましたが、素直に全部ダブルクォートをはずしてみたらできました! 時間がかかりましたができてとってもうれしいです!

mokomaka
質問者

補足

ダブルクォータが悪さしていたようで直して見ました IIF("[単位テーブル]![区分]=1",[重量]*[売単価],[員数]*[売単価]) が、どうも[員数]の値を変更しても合計が変わりません。 合計は[重量]か[員数]の数のどちらかの合計だけが必要です。 [重量] [員数] [単位] の場合は  0.5  200   t tは[区分]1なので、[員数]*[売単価]としたい [単位]をtとした場合は 個は[区分]=2なのでそれ以外の対象になり [重量]*[売単価] っとなると・・・もっとクエリとかが悪いのでしょうか?!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • アクセスのフォーム上で計算値の合計がエラーになる

    アクセスで製品オーダを入力したときに現状の部品在庫に対して不足する部品数を計算 し、その部品数に単価をかけた各不足部品の合計金額を計算できるよう、添付画像の フォームを作成しました。(画像はデザインビューです。) フォーム画像の(1)はフォーム上で入力する数です。(2)(6)は、コントロールソース値 にクエリのフィールドを指定、(3)のコントロールソース値も同じクエリで計算された フィールドを指定して表示されます。(4)(5)(7)(8)(9)(10)は、(1)を入力したときに 計算されるよう、コントロールソース値にそれぞれ次の式を入れています。 (4):=[員数]*[テキスト50] (5):=IIf([テキスト47]-[見なし在庫数]<0,0,[テキスト47]-[見なし在庫数]) (7):=IIf([テキスト49]/[最少発注単位]=0,0,Round(([テキスト49]/[最少発注単     位])+0.49999,0)) (8):=[最少発注単位]*[テキスト66] (9):=[部品単価]*[テキスト64] (10):=Sum([部品単価]*[テキスト64]) ここで、(1)のオーダに数を入力したら、(4)(5)(7)(8)(9)はそれぞれ計算結果が出てく るのですが、肝心の(10)については、「#エラー」となってしまいます。 ここ何日かこの問題でストップしていてどうしたら良いかわからず、非常に困ってしま いました。(ここでは省略しますが、色々と試してみても全くダメです。(泣)) どなたかアクセスにお詳しい方、何卒お助けいただきますよう、宜しくお願い致します。

  • SQLで合計表示

    SQLで合計・総合計を出してたいのですが、どうしたらいいのですか? 教えてください 下記はこのような感じでデータベースがあった場合です 得意先:T_得意先.得意先番号 得意先名称:T_取引先.得意先名称 T_受注.工場番号 = T_取引先.取引先番号 T_受注.品目番号 T_受注.品目名 T_区分明細.区分明細名 T_受注.受注番号 T_受注.受注日 T_受注.納期 T_受注.受注数 T_受注.単位名 T_受注.単価  T_受注.仮単価区分  T_受注.金額  T_担当者.担当者名 --番号で名称を結合 品目名 = (T_品目.品目番号 = T_受注.品目番号) 単位名 = (T_単位.単位番号 = T_受注.単位番号) 担当者名 = (T_担当者.担当者番号 = T_受注.担当者番号) -------------------- 得意先合計:得意先ごとの「金額」合計 総合計:全得意先の「金額」合計

  • アクセスIIF関数

    はじめまして。ACCESSのif関数について教えてもらいたいことがあります。 dataAの数値に対して、目標数80をこえればその数値分に10を乗算し、未達であれば、0を返すという条件式を行いたいのですが、うまくいきません。以下、自分がやっていたデータを記載します。 テーブル例 dataA 70 80 60 90 クエリ条件式 式1:IIF([dataA]>80,"([dataA]-80)*10","0") 未達については0が返るのですが、超えた場合(真の時)([dataA]-80)*10の式が表示されています。うまく計算させるには、どうしたらよいのでしょうか。ご教授よろしくお願いします。

  • Access2003 合計値の求め方について

    Acdess超初心者です。ご存知の方がいらっしゃいましたらお教え下さい。 Access2003で請求書を作成しております。 メインテーブル 宛名、敬称、発行日、請求番号、件名、課税区分、小計、消費税、合計 サブテーブル  請求番号、項番、工事名、数量、単価 サブテーブルを基に作成したクエリ 請求番号、項番、工事名、数量、単価、金額 メインテーブルの請求番号とサブテーブルの請求番号は1対多のリレーションを組んでいます。 メインテーブルとクエリを基にフォームを作成して、メインフォーム(レコードソースはメインテーブル) 上にサブフォーム(レコードソースはクエリ)を配置しています。 サブテーブルの金額の合計をメインフォーム上の「小計」で求めたいのですが、方法が分かりません。 どのように作成するとメインフォーム上の「小計」でサブフォームの金額合計を求めることができるか お教え下さい。 初歩的な質問で申し訳ありませんが何卒よろしくお願い致します。

  • Accessクエリ IIFについて

    お世話になります。 2つのテーブルをIDで紐付けて、それぞれの項目を比較し、○×を付けたいと思います。 【テーブルA】  ID メーカー 型番 品名 【テーブルB】  ID メーカー 型番 品名 【クエリC】  テーブルAとテーブルBをIDで紐付けて、各フィールド名を   テーブルAの方は前回_メーカー、前回_型番、前回_品名 とし、   テーブルBの方は今回_メーカー、今回_型番、今回_品名 とする。 【クエリD】  クエリCを元に、   前回_メーカー、前回_型番、前回_品名、今回_メーカー、今回_型番、今回_品名   を並べて表示し、それぞれを以下のように評価する。   メーカー評価:IIf([前回_メーカー]=[今回_メーカー],"○","×")   型番評価:IIf([前回_型番]=[今回_型番],"○","×")   品名評価:IIf([前回_品名]=[今回_品名],"○","×")   上記3つの評価でいずれかが×となっているレコードを抽出。 しかし、前回と今回でいずれも型番が空白(Null)だった場合、上記評価を すると"×"となってしまいました。 そこで質問ですが、   ・そもそもNull同士の評価は"×"になってしまうのでしょうか?(比較できない?)   ・テーブルAはSQL Server上にあり、テーブルBはExcelをインポートしたもの   (Accessのローカルテーブル)です。この違いによるものでしょうか。 ご教授の程、宜しくお願い致します。

  • 条件を満たした次のレコードから

    初めまして(^^ ACCESSのクエリでの質問をさせて頂きます。(^^;; テーブルA  ID,重量 と2つのフィールドを持ったテーブルAがあるとします。 テーブルB (金額テーブル kg/円) 10t以下,10t以上 と2つのフィールドを持ったテーブルBがあるとします。 (内容は 10t以下: 11円 10t以上:10円) 上記のテーブルAとテーブルBのデータを使用してクエリAを作成します。 クエリA(テーブルBはテーブル表示にてクエリA内に表示させてあります。) 既存のフィールド: ID,重量 新に作成するフィールド:累計重量,金額  ID ←そのまま表示 重量 ←そのまま表示 累計重量: DSum("重量","テーブルA","ID<=" & [ID] & "") ←累計の重量を算出 金額: IIf(DSum("重量","テーブルA","ID<=" & [ID] & "")<=10000,Int([テーブルB]![10t以下]*[重量]),([テーブルB]![10t以上]*[重量]))  ↑ 累計重量で10t以下と10t以上の金額の割合を変更して算出させる。 テーブルAのデータとして↓ ID 重量 1 1000.6 2 2150.7 3 1821.2 4 5578.3 5 650.5 上記内容にてクエリAを実行すると多分下記の様に表示されます。 ID 重量   累計重量    金額 1 1000.6  1000.6   11006 2 2150.7   3151.3   23657 3 1821.2   4972.5   20033 4 5578.3  10550.8   55783  5  650.5   11201.3   6505 でも本当は下記の様な結果を得たいのです。 ID 重量   累計重量  金額 1 1000.6  1000.6  11006 2 2150.7  3151.3  23657 3 1821.2   4972.5  20033 4 5578.3   10550.8  61361 ←累計で10tを超えたレコードまでは1kg/11円で計算させたい。 5  650.5  11201.3  6505 ←ここから 1kg/10円の計算にしたい。 望む結果を得るためには下記の文にて条件を付け足していくと思いますが 金額: IIf(DSum("重量","テーブルA","ID<=" & [ID] & "")<=10000,Int([テーブルB]![10t以下]*[重量]),([テーブルB]![10t以上]*[重量])) どのような条件の付け方をすれば良いか、困ってしまいました。そのものズバリの答えをお聞きするには余りにずうずうしいと思いますので、 ヒントや似たような感じの例などをご教示頂けたらと思います。 何卒、宜しく御願い致します。

  • Accessのグループ化合計

    VB→ストアド→Accessでデータ表示 Accessのレポートで質問です テーブルはリンク ------------------------------------------------------ Accessのレポートには単価と数量という項目があります それをグループ化します グループ化で得意先という項目の合計をもとめます 単価:テキスト型 数量:テキスト型 区分番号:数値 区分番号が1のとき単価を-(マイナス)で表示する 得意先合計と総合計の計算のときマイナスも含まれて計算されるので エラーになる 抽出条件が一致しませんと出る エラーが出ずに計算するにはどうしたらいいですか またグループかで計算するときにマイナスの項目ははずして合計を出したい これってVBA使わないと出来ないんですか? 使うならどうしたら出来ますか? [レポートフッター] ------------------------------------------- [ページフッター] ------------------------------------------- [得意先番号ヘッダー] ------------------------------------------- [詳細] 単価 数量  区分番号 ------------------------------------------- [得意先番号フッター] ------------------------------------------- 得意先合計 (=sum(単価 * 数量)) [ページフッター] ------------------------------------------ [レポートフッター] 総合計 (=sum(単価 * 数量)) -------------------------------------------

  • ACCESSクエリー記述方について

    教えてください。 テーブル構造は下記の通りです 項目 在庫  区分 1  100 ばなな 2  200 ばなな 3  300 りんご 4  100 いちご もし区分がバナナなら、在庫を足す(この場合は、100と200) もし区分がリンゴなら、在庫を足す(この場合は、300) もし区分がイチゴなら在庫を足す(この場合は100) というようなクエリーが書きたいです。 IIF(バナナ、SUM(在庫))??? 非常に悩んでいます・・・。よろしくお願いします。

  • access 関数で出した合計に文字を挿入

    初心者です、よろしくお願いします。 仕様環境 WinXP Access2002 レポートで請求書を作っているのですが、 [商品][数量][単位][単価][金額]とあり、 商品が複数あった場合の小計は =sum([数量]*[単価])となりますが、 更に消費税をつけると =sum([数量]*[単価])*0.05を足して 合計金額は=sum([数量]*[単価])+sum([数量]*[単価])*0.05 で出て来ます。 ちなみに書式は「通貨型」です。 そこで、合計金額を\10,500だとして それを”税込み合計金額 \10,500-”と表記できるようにしたいと思っています。 つまり関数で出した合計の前に”税込み合計金額”を そして最後に"-"をつけたいのです。 ラベルを貼ってしまえば出来ますが、 金額が千円台から百万円台まで対応させたいため 体裁をよくする上でラベルを貼るのは避けたいです。 請求書の定型の都合上で申し訳ないのですが、 こういうことは出来るのでしょうか? お知恵をおかしください。

  • アクセスでのswitch又はiif関数使用時のその他の場合

    ACCESS2000の追加クエリで [Aテーブル].[B]という項目が"*"ならば [Bテーブル]に?という項目をいれ、 それ以外ならば""をインサートするという処理です。 型はCHAR型。 元になるAテーブルには*以外には半角スペースが 入っている場合があります。 このときに IIf([Aテーブル].[B]="*","?","") 又は Switch([Aテーブル].[B]="*", "?",True,"") という式で実行を行うと "*"以外のものを追加しようとするとき 入力規則違反となり追加できません。 Switch文で半角スペースの場合の条件を指定すれば 問題ないのですが、"*"以外の場合として追加したいのです。 どこか問題点がわかれば教えてください。

専門家に質問してみよう