Accessのクエリで組み合わせを変えて選択したフィールドのみの合計を出す方法は?

このQ&Aのポイント
  • Accessのクエリで組み合わせを変えて選択したフィールドのみの合計を出す方法はありますか?表示をAとBとCのみにするとき、合計が正確に計算されません。
  • データシートビューにすると合計欄は300になりますが、AとBとCのみにした場合、合計が250になれば良いのですが、300のままです。
  • 全組み合わせ分のクエリを作らずに、選択したフィールドのみの合計を求める方法はあるのでしょうか?
回答を見る
  • ベストアンサー

access 抽出したフィールドの合計

access2010です。 現在、以下のようなクエリがあります。(数値のところがずれて表示されているかもしれませんが、それぞれフィールド毎の値です) [ID] [項目A] [項目B]  [項目C] [項目D] [合計;[項目A]+[項目B]+[項目C]+[項目D]] 1     50    100    100    50 このままデータシートビューにすると[合計]欄は300になります。 表示をAとBとCのみにした場合、合計が250になればいいのですが、300のままです。 AとB、BとCなどいろいろ組み合わせを変えて表示したいのですが、全組み合わせ分のクエリーを作らずに、選択した分のフィールドのみの合計を出す方法はありませんでしょうか。 よろしくお願いします。

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.3

#1,2です。 フィールドをなくす事はできませんが(VBAでも駆使すれば別でしょうが)、条件付き書式で、チェックが入っていないフィールドは、文字を淡灰色にする(白にもできますが...)といった事は可能です。 この場合、チェックボックスの規定値をTRUEなり、FALSEにしておかないと、どっちつかずの状態が表示されて気持ちが悪いです。 ご参考まで。

shibakic
質問者

お礼

条件付き書式、チェックボックスの値=0→フィールドのフォント白 で上手くできました。 チェックと同時に値が可視されて、同時に合計も計算されて表示されています。 思い通りのものができました。 1週間悩んでいたものが、一気に解決できて満足しています。 mitarashi様に深くお礼申し上げます。 また教えて下さいね。(^_^;)

その他の回答 (2)

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

#1です。Access2010でやってみました。 対象のテーブルを選択し、作成/その他のフォーム/複数のアイテム でオートフォームを作成します。 表示/デザインビューで、編集します。 ・フォームヘッダーを下側に広げて、テーブルのフィールド名の下に、チェックボックスをフィールドの数だけ挿入 ・詳細部分を右側に広げて、テキストボックスを一個挿入  テキストボックスのラベルは、切り取ってフォームヘッダーに移し、「合計」等に変更する。 ・テキストボックスのプロパティで、コントロールソースに、式ビルダーで、#1同様に式を設定。 これでフォーム上でチェックを入れたフィールドの合計値が表示される様になります。 式ビルダーは下記などをご覧ください。 http://office.microsoft.com/ja-jp/access-help/HA010341590.aspx

shibakic
質問者

お礼

丁寧な説明をいただきありがとうございます。 フォームで同様に作成してみました。 チェックした分の合計のみ表示することができました。IIfで×0を使う方法なんですね。 いろいろ応用ができそうです。 ただ、合計にいれないフィールドを表示にしたい場合は、クエリで何種類か作るしかなさそうですね。 今回、チェックボックスの利用方法も習得できましたので、深く感謝致します。

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

Access2010には習熟していないもので、常用の2000で回答させていただきます。 クエリのデザインビューでやるには、組み合わせの数だけ式を作っておいて表示/非表示をチェックする位しか思いつきませんが、 フォームで行う案をひとつ... フォーム/新規作成/オートフォーム:表形式を選択、目的のテーブルを選択 フォームが表示されたら、デザインビューにして、 ・フォームヘッダーを下側に広げて、テーブルのフィールド名の下に、チェックボックスをフィールドの数だけ挿入 ・詳細部分を右側に広げて、テキストボックスを一個挿入 ・テキストボックスのコントロールソースに下記の式を設定 =[A]*IIf([チェック8],1,0)+[B]*IIf([チェック10],1,0)+[C]*IIf([チェック12],1,0)+[D]*IIf([チェック14],1,0) これでフォーム上でチェックを入れたフィールドの合計値が表示される様になります。 ※コントロールの名前(上記[チェック8]等)は、挿入した順番等によって変化しますので、実際に合わせて設定して下さい。  分かり易い名前に付け替えておく方が保守性が良いでしょう。 後ほど、2010にもトライしてみますが、出来るかどうか...

関連するQ&A

  • アクセスのクエリ フィールドの合計

    フィールドの合計 アクセスのクエリでいくつかのフィールドの合計を出そうとして クエリのフィールドに以下の式をいれております。 ⇒合計:([A])+([B])+([C]) (例えば[A][B][C]のフィールドの合計を出すとして) しかし、[A]の値が1、[B]の値が2、[C]の値が2と入っている場合は5と合計値が当然でますが 例えば[C]のフィールドが空欄の場合、合計値欄が空欄で表示されます。 非常に簡単な質問かと恐縮ですがおしえてください!

  • Accessフォームから条件抽出する

    access2010で、フォーム内のリスト選択によって、 クエリのフィールドの計算を変えたいです。 「クエリ1」のフィールド名 いずれも数値 ・合計 ・A ・B ・C 「フィールド1」の「リスト1」で、1;2;3いずれか選択し、 選択した結果を「合計」に表示させたい。 ・リスト「1」のとき、Sum(A,B) ・リスト「2」のとき、Sum(A,B,C) ・リスト「3」のとき、Sum(A,B,C,D) できれば「合計」のフィールドの式のみで済ませたいのですが、 何か適切な式はありませんでしょうか。 よろしくお願いいたします。

  • アクセスでのフィールド2列からの抽出と合計

    OS:Win XP Access Version:2003 すみません。どうしてもわからなかったので教えてください。 フィールド名  種 類   部 門  金 額          A     111   8000          B     120   7500          C     450   1000          A     750   3000          C     111   4500          B     120   6000 こんな感じのテーブルがあり、例えば種類Bの部門120の金額の合計を出したいとき、 どんな感じにクエリを作ればいいんでしょうか? SQLでもかまいません。

  • ACCESS クエリ抽出する際、重複しているフィールドを取り除きたい

    テーブルA テーブルB があり、そのクエリ クエリA クエリB を作ってあります。 クエリA フィールドA1 フィールドA2 クエリB フィールドB1 フィールドB2 結合は、クエリAのフィールドA1 ⇒ クエリBのフィールドB1 としており、 実行結果としては、以下のようになって抽出されます。 クA:フィA1|クA:フィA2|クB:フィB1|クB:フィB2 a       |J      |(空)    |(空) a       |J      |(空)    |(空) a       |K      |(空)    |(空) b       |L      |(空)    |(空) b       |L      |(空)    |(空) b       |M      |(空)    |(空) b       |M      |(空)    |(空) c       |X      |c      |P c       |X      |c      |P c       |X      |c      |Q c       |X      |c      |Q c       |X      |c      |Q d       |Y      |d      |R d       |Y      |d      |S d       |Y      |d      |S これを踏まえて、 重複を除いた形での実行結果として得たいパターンは以下の2つです。 <パターン(1)> クA:フィA1| a       | b       | c       | d       | ※他のフィールドは必要無し。 <パターン(2)> クA:フィA1|クA:フィA2|クB:フィB1|クB:フィB2 a       |J      |(空)    |(空) a       |K      |(空)    |(空) b       |L      |(空)    |(空) b       |M      |(空)    |(空) c       |X      |c      |P c       |X      |c      |Q d       |Y      |d      |R d       |Y      |d      |S ※4フィールドが同一になるところだけ除きたい 恐縮なのですが、この2パターンのSQLをご教授いただけると助かります。 よろしくお願い致します。

  • クエリのフィールド欄に作成した項目を抽出条件で利用するには?(Access2000)

    Accsess2000、クエリについての質問です。 新規のクエリをデザインビューで開き、フィールド欄に、hoge:50 と入力します。シートビューにすると、hogeフィールドには50と表示されています。 デザインビューに戻り、新たなフィールド欄に 加算:[hoge]+100 と入力します。シートビューにすると、加算フィールドには150と表示されています。 以上のように、[hoge]という項目は他のフィールド欄でも利用できることがわかりました。 しかし、[hoge]を抽出条件欄で用いようとすると、パラメータの入力を求められてしまいます。 (例えば、[金額]フィールドの抽出条件に >[hoge] と設定するなど) 質問内容は、[hoge]を抽出条件で利用するにはどのようにすればよいか、というものです。 以上、よろしくお願い致します。

  • Access2003複数フィールドの文字数合計

    複数のフィールドに入力されている文字列(数値や文字)の文字数をカウントし、そのレコードごとの合計を1回の更新クエリで算出する方法があれば教えてください。 =========================================================== ☆1つのレコードにA~Eのフィールドがあり、全角・半角の文字および英数字のデータが混在しています。(データの入っていない場合は「null」となる) (例) No  [A]       [B]     [C]       [D]       [E] 1  東京都   港区   ○○1丁目  1-2-3   ●×マンション101 2  神奈川県  横浜市  ○○○町   10-10   △△ビル10F  3    〃      〃     〃       〃        〃    =========================================================== (1) これらの各フィールドの文字数を「LEN関数」を使って、新たなフィールドF~Jに文字数を表示する (2) そして、上記のF~Jの文字数を「SUM関数」を使って、フィールドKへ合計数を表示しています。 (例) No  [F]  [G]   [H]  [I]  [J]   [K] 1   3   2   5   5  10    25 2   4   3   4   5   7     23     =========================================================== 現在は、上記のように、各フィールドの文字数を出してから合計数を計算していますが、 この合計数[K]の値を、フィールドF~Jを作成しなくても一度で計算できるような関数式があれば教えてください。 私は、SQLが書けないので、フィールド欄へ関数式を入力しておりますが、 関数だけでは出来ない場合は、SQLで教えていただければ幸いでございます。 お手数お掛けしますが、宜しくお願い致します。

  • Access クエリでの抽出条件の質問です。

    Access初心者です。宜しくお願いします。 選択クエリで、選択したフィールド同士を比較して条件に合えば表示したいのですが、うまくいきませんご伝授お願いします。 (例) フィールド名 A B C D の4つのフィールドがあります。 AとBを比較して同じでなければ表示、又はCとDを比較して同じでなければ表示 Aのフィールドの抽出条件に <>B 「or」で入力しました。 Cのフィールドの抽出条件に <>D の二つの条件を入力しましたがうまく条件にみたしません。A~Dまでのデータは条件に合うように登録されています。 宜しくお願いします。

  • Access2003 クロス集計クエリでの合計

    ☆以下のようなテーブルで、フィールド[ID]~[C]があり、文字および数字のデータが混在しています。   ↓  ↓  ↓  ↓  ↓  ↓  ↓  ↓ =========================================== (テーブル(1)) [ID]  [A]      [B]    [C]     1    111     英語    10    2    222     英語    20    3    333     数学    30    4    111     国語    40   5    222     数学    50    6    333     国語    60    7    222     国語    70   8    333     英語    80     9    111     数学    90     =========================================== [課題] クロス集計クエリを作成する (1) フィールド[A]を行見出しに設定、    フィールド[B]を列見出しに設定、    フィールド[C]を集計する項目に設定する。   (2) フィールド[C]の値を列ごとに平均を計算し、    行ごとに合計を計算する。   ※ 列と行で、それぞれ集計した値を表示する   ↓  ↓  ↓  ↓  ↓  ↓  ↓  ↓ =========================================== [クロス集計結果]     合計  英語  国語  数学     111  140   10    40    90        222  140   20    70    50     333  170   80    60    30  --------------- 平均  150   36     56   56 ===========================================   ↑  ↑  ↑  ↑  ↑  ↑  ↑  ↑    上記のようなクロス集計クエリの結果を表示させたいのですが、 どうすればよろしいでしょうか? また、クエリだけでは出来ない場合は、SQLで教えていただければ幸いでございます。 お手数お掛けしますが、何とぞ宜しくお願い致します。

  • 複数のフィールドから、合計数を求めたい

    複数のフィールドから、合計数を求めたい テーブルに複数フィールドがあり、その複数フィールドから、 使われている内容合計数を求めたいと思っています。 例として、 id, s1, s2 というフィールドがあり、 id s1 s2 1 A D 2 A G 3 C 空 4 D G この s1 と s2 からユニークな文字列でグループ分けをし各々の合計数を数えたいです。 (Aは2 Cは1 Dは2 Gは2 といったデータ) 1つのフィールドならば、 SELECT s1, COUNT(s1) FROM table GROUP BY s1 といったクエリでグループ分け及び合計数が求められるのですが、 これを複数のフィールドから行いたい場合の記述方法がわかりません。 宜しくお願いします。 ----------------- 環境  MySQL 5.1.22

    • ベストアンサー
    • MySQL
  • アクセスの複数フィールドからの抽出について教えてください。

    「テーブル1」があり、「テーブル1」の中にフィールドA、フィールドB、フィールドC、フィールドDがあります。  その4つのフィールドの中のどれにも”あ”という言葉が含まれていないレコードを探しだしたいのですが、クリエでOR検索してもうまくいきません。  フィールドAに”あ”は無くても、フィールドBかフィールドCに”あ”といいう文字が含まれているものが出てきてしまいます。どうしてでしょう・・・  ちなみにSQL文は SELECT * FROM TABLE1 WHERE ((Not (TABLE1.フィールドA)="あ")) OR ((Not (TABLE1.フィールドB)="あ")) OR ((Not (TABLE1.フィールドC)="あ")) OR ((Not (TABLE1.フィールドD)="あ"));  となっています。明らかに初歩的な問題だと思われますが、初心者のため分からず困っております。  アドバイス、よろしくお願いします。

専門家に質問してみよう