ACCESSを使って、複数の条件に対して計算をする方法

このQ&Aのポイント
  • ACCESSを使用して、複数の条件にあてはまる計算を行いたい場合、IIF関数を使用することで実現できます。
  • 具体的な例として、[開始時刻][終了時刻][氏名]をもつテーブルがあり、各項目を入力すると[終了時刻]から[開始時刻]を計算した使用時間が表示されるようにしたい場合、IIF関数を使用して[氏名]によって出力されるフィールドを分けることができます。
  • 例えば、山田の場合は本部の欄に計算結果を表示し、伊藤の場合は営業部の欄に計算結果を表示することができます。複数の条件に対して計算をさせるためには、各条件に対してIIF関数を使用し、計算結果を出力するフィールドを分けるようにします。
回答を見る
  • ベストアンサー

複数の条件にあてはまるものを複数のフィールドに。

ACCESSを使っています。 [開始時刻][終了時刻][氏名]をもったテーブルがあります。 [氏名]はコンボボックスです。 フォームに各項目を入力すると、[本部][営業部][人事部] のフィールドに[終了時刻]から[開始時刻]をひいた使用時間が 計算されるのですが、[氏名]によって出力される部を分けたいのです。 例えば、山田なら本部の欄に、伊藤なら営業部の欄に計算させたいのです。 計算自体もできるし、山田一人でも素直にIIFを使ってできたのですが 山田、鈴木を本部、伊藤、白川を営業部、というふうに複数の条件に 対して計算させたいのですが、どうしたらうまくいきますでしょうか。

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

  • ベストアンサー
  • k_eba
  • ベストアンサー率39% (813/2055)
回答No.3

再登場 >それをフォームでどう活かせばいいやらわかりません。  ゴメンナサイ。フォームは氏名コード、開始時間、終了時間を入力するだけです  その後帳票を印刷する時にNo.2で作成したクエリーを使用するのです >IIFの中にIIFは入れられたりするのでしょうか。  =IIF(所属=”本部”,”本部”,IIF(所属=”営業部”,”営業部”,”人事部”))  のように入れ子は出来ます。上記はあくまで例です またNo.1の参考ページは見られましたか多分とっても参考になると思います。 頑張って下さい。

ichiro-ichiro
質問者

お礼

 何度も丁寧にありがとうございました。完全にできました。 非常に奥が深くて苦労しますが、その分感動も大きいですね。 これからも勉強していきたいとおもいます。 本当にありがとうございました。

その他の回答 (2)

  • k_eba
  • ベストアンサー率39% (813/2055)
回答No.2

再登場 >テーブルを結合・・・ 1.勤怠テーブル作成(もう有る?)  氏名コード、開始時刻、終了時刻 2.社員マスタテーブル作成(新規作成)  氏名コード、氏名、所属(部名) 3.計算クエリ作成(新規作成)  1)テーブルの表示で勤怠テーブルと社員マスタを追加  2)クエリの上の方の表示の勤怠テーブルの氏名コードをドラッグして社員マスタの氏名コードに持って行くと線が繋がる  3)勤怠テーブルの氏名コード、開始時刻、終了時刻をダブルクリック  4)社員マスタの氏名、所属をダブルクリック 4.ビューボタンをクリック 5.ほら出来た! 参考になれば幸いです     

ichiro-ichiro
質問者

補足

 できました!…が、それをフォームでどう活かせばいいやらわかりません。 氏名コードというものがよくわからなかったけど、多分「山田」には1、 という番号のことでしょうか(本当にわからないことばかりで申し訳ありません)  社員が20名いるとして、フォームの氏名をコンボボックスにしてあります。 もう少しでイメージがつながりそうでなかなかできません。 質問ですが、IIFの中にIIFは入れられたりするのでしょうか。 よろしければまたアドバイスをお願いします。

  • k_eba
  • ベストアンサー率39% (813/2055)
回答No.1

1.3人だけの場合  IIF分の入れ子で対応する 2.テーブルに部名を入力する  [開始時刻][終了時刻][氏名][部名] 3.氏名コードテーブルを作成  キー:氏名コード  データ:氏名,部名  2つテーブルを結合して  IIF(部名=”本部”,計算,0)  とする 参考になれば幸いです 御土産 http://www.accessclub.jp/ http://www.mahoutsukaino.com/

参考URL:
http://www.accessclub.jp/,http://www.mahoutsukaino.com/
ichiro-ichiro
質問者

補足

 いつもありがとうございます。なんとかできそうな イメージはあるのですが、アドバイスをうまく使用する 方法がよくわからないのです。氏名コードテーブルと テーブルを結合という部分がわかりません。 初心者なもので申し訳ないのですが 詳しく教えていただけると助かります。

関連するQ&A

  • 関数で困ってます

    時間割を早く作りたいのですが、このような場合はどうしたらいいのでしょうか? 例 シート1は     1    2   3  田中1-1 1-2 1-3 伊藤1-2 1-3 1-4  山田1-3 1-4 1-1 鈴木1-4 1-1 1-2 シート2に      1  2  3 1-1 田中 伊藤 山田 1-2 伊藤 山田 鈴木 1-3 山田 鈴木 田中 1-4 鈴木 田中 伊藤 シート2の氏名のところがシート1を元に検索できないでしょうか? 誰かたすけてくれませんか?

  • エクセルで2つの条件を満たした列をHLOOKUPで

    エクセルで、1行目と2行目の条件を満たした列をHLOOKUPで参照したいです。 人件費の表をつくっています。 給与明細の名前の欄をプルダウンで変更可能にし、名前を変えればその人の出勤時間が表示されるようにしたいです。 時間を記入するシート1は下のようになってます A     B     C     D 山田   山田   鈴木   鈴木 出勤   退勤   出勤   退勤 14    21    18    23 16    21    18    22 15    23    17    23 16    22    17    21 1行目が氏名 2行目が出勤か退勤か 3行目以降が時間記入欄です。 別シート2に給与明細がありまして A     B     C 氏名   山田 出退   出勤   退勤 1日   14    21 2日   16    21 3日   15    23 のように参照されています 氏名の「山田」の部分がプルダウンリストで選べるようになっていて この氏名の部分を「山田」から「鈴木」に変更すると自動的に出勤と退勤の時間が「鈴木」のものへ変更になるようにしたいです。 やりたいことは以下の事です シート2の氏名が「山田」であれば例のシート2のまま シート2の氏名の部分を「山田」から「鈴木」へ変更すれば B4、B5、B6セルは18、18、17に変わり C4、C5、C6セルは23、22,23に変化するようにしたいです。 関連しそうなIF,AND,MATCH,HLOOKUP等組み合わせてみましたが、どうもうまくいきません。 わかりづらいと思いますが、是非教えて頂ければ幸いですので宜しくお願いします。

  • エクセル 最新日付以外のデータを合計する

    下表があるとしまして、 氏名 日付 買上金額 鈴木 5月5日 10 鈴木 5月6日 60 鈴木 5月7日 100 鈴木 5月9日 400 田中 5月4日 100 田中 5月7日 200 山田 5月1日 600 山田 5月2日 200 山田 5月3日 300 1970 氏名毎に、最新日付以外の合計を計算したいのです。 この場合、鈴木さんが170 田中さんが100 山田さんが800の合計1070がそれぞれの氏名の最新以外データの合計となりますが、これらを自動的に計算できないでしょうか? よろしくおねがいします。

  • Word内の表の文字をExcelへ自動でコピー

    Word内全ページの表の記載文字をExcelへ自動でコピーするのは可能でしょうか? Word内に表があり、その列ごとを指定し、Excelの指定した列へ自動でコピーする方法はあるでしょうか? Wordは数百ページあり、これを手作業で行うのは時間が掛かりとても面倒です。 【例】 Word 氏名  社員番号  所属   役職 鈴木    100   営業部  主任 伊藤    200   総務部  係長 高橋    300   製造部  一般 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ Excel 社員番号  氏名  役職  所属   100    鈴木  主任  営業部   200    伊藤  係長  総務部   300    高橋  一般  製造部

  • 得意先への年賀状 複数の肩書きを持つ方へは?

    会社から得意先へ年賀状を送るのですが、兼任されていて複数の肩書きを持つ方へ出す場合、宛名はどのように書けばいいのでしょうか? (例) 理事 ○○営業所 副営業所長 工事担当部長    山田 太郎 取締役常務執行役員 営業開発本部長    山田 次郎 悩んでいます。。。どうか教えてください。    

  • エクセルで同じ条件のセルをカウントする

    簡単な方法なのかもしれませんが、エクセル初心者なので教えて下さい。     食事 山田  ○ 小林  ○ 鈴木  ○ 佐藤  高橋  ○ 合計 このような場合、食事の必要な人数・4人を合計欄に記したいと思っています。 どのような計算式を入力すればいいでしょうか。 宜しくお願い致します。

  • Excel:特定の条件でFLOOR関数を使うには?

    Excelを使って、勤務表を作成しています。 開始時刻、終了時刻を入力すると、 終了時刻ー開始時刻ー休憩時間という具合に当日の勤務時間を出力させるようにしています。 当日の勤務時間を出力するセルには以下の条件が必要です。 (1)開始、終了時刻が入力されていない時、0:00と表示する。 (2)開始時刻8:30(もしくはその時刻より前)、 終了時刻17:05と入力された時、7:50と表示する。 (3)(2)の条件以外は15分単位で勤務時間を表示する。 15分単位で丸めるということでFLOORを使うのですが、 そうすると(2)の条件がまったく無視されてしまい、うまくいきません。 FLOORを特定の条件の時のみ、適用する方法があれば教えて下さい。 よろしくお願いします。 使用ソフト:Excel2002 ------------------------------------------------- ちなみに以下のような計算式を当日勤務時間が出力されるセルに書いて試してみました。 =IF(D9="17:05","7:50",IF(COUNT(C9:D9)<2,"0:00",FLOOR(D9-P9-E9,"0 :15"))) 計算式の意味↓ 終了時刻に17:05と入力されたら、当日勤務時間のセルに7:50と表示。 開始、終了が入力されないと、0:00と表示。 そうでなければ、終了ー開始(8:30以前を8:30と考えるセル)ー休憩で計算し、15分単位で表示。 とこのように書いてみたものの…うまくいきませんでした。

  • アクセスVBAでの時刻の計算

    開始時刻と終了時刻をテーブルに保存するために、フォームの入力欄に、操作者は3つ入力します。 A開始時刻の時 B開始時刻の分 C完了までの時間(分間) 開始時刻は、A時B分でそのままテーブルに保存できます。 終了時刻は、(A時B分+C分の計算結果の時部)時(A時B分+C分の計算結果の分部)分 としてテーブルに保存できますが、どのように表記したらよいのでしょうか? よろしくお願いいたします。 ( Windows XP : Access 2002 )

  • Excelで次のような事はできますでしょうか

    こんばんわ。いつも大変お世話になります。 初歩的なことかも分かりませんが次のような事はできますでしょうか。 sheet1に以下のようなデータがはいっております。 このうち、「氏名」の欄の値から抽出(重複する氏名があってもsheet2には1つのみ表示)してsheet2に以下のように表示させたいのですが可能でしょうか。 説明不足なところがあるかもしれませんが、よろしくお願いします。 (sheet1) ┌────┬───┐ │ 氏名   │出席日│ ├────┼───┤ │ 山田○男│    5│ ├────┼───┤ │ 佐藤△子│    0│ ├────┼───┤ │ 山田○男│   2│ ├────┼───┤ │ 鈴木○夫│   3│ ├────┼───┤ │ 佐藤△子│   2│ └────┴───┘ (sheet2) ┌────┐ │ 氏名 ├────┤ │ 山田○男 ├────┤ │ 佐藤△子 ├────┤ │ 鈴木○夫 └────┘

  • アクセスの複雑な条件について

    以下のタリフに応じて利用料金を求めたいと考えております。 (1)9:00~21:00→20円/30秒 (2)上記時間帯以外は無料 利用開始/終了日、利用開始/終了時刻(時分秒)と利用時間(秒)を元に、料金計算を行います。 エクセルでは、利用開始/終了時刻を全て「秒」で表し(日跨の場合86400加算)IF文で時間帯別に複数条件を指定し、計算していました。アクセスでも料金計算を行いたいのですが、方法がわからず途方に暮れています。複雑なIF文以外にも良い方法はあるのでしょうか? ご教示よろしくお願い致します。

専門家に質問してみよう