• ベストアンサー

accessで指定期間の曜日カウントしたい

access2000を使用しています。 table1にID,start,endというフィールドがあって 1|2009/04/01|2009/04/30 2|2009/03/16|2009/04/15 といった具合にstart,endには日付が入っています。 startからendまでの期間、日曜日が何回あるかを表示させるクエリはどのようにすればできるでしょうか。 ID|start|end|日曜日の回数 と表示させたいです。 weekday関数でstart,endのそれぞれの曜日は取得できています。 datediff関数でstartからendまで何日あるかは計算できています。 そこから先、どのようにカウントすればよいでしょうか。 特に上記2つの関数を使用しなくてもカウントできるようであればそれでもよいです。宜しくお願いします。

  • konga
  • お礼率93% (45/48)

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

  • ベストアンサー
  • kurodai2
  • ベストアンサー率38% (77/202)
回答No.1

SELECT テーブル1.ID, テーブル1.strat, テーブル1.end, IIf(Weekday([テーブル1]![strat])=1,DateDiff("ww",[テーブル1]![strat],[テーブル1]![end])+1,DateDiff("ww",[テーブル1]![strat],[テーブル1]![end])) AS 日曜日の回数 FROM テーブル1; 確認は2003でしています

konga
質問者

お礼

ありがとうございます!できました。 IIFとDateDiffの週+1ですかー。思いつきませんでした!すごい!

関連するQ&A

  • Excelで曜日を出力する方法

    セルA1に3/19と入力すると、3月19日と表示されますよね。 で、セルA1に日付を入力したら、 B1に「日曜日」と表示させる方法がありましたら、教えてください。 Weekday関数を使うと、数字で曜日が、表示されるところまではわかるんですが。 この数字で表示されたものを、「日曜日」といったように、 日本語で表示することは無理でしょうか? IF関数と組み合わせようとしたら、やっぱり、また、1900年におめにかかってしまって(-_-;) ユーザー定義でaaaaで、日曜日と表示させるのも知っているんですが、 式を組み合わせるとむちゃくちゃになってしまって。 よろしくお願いいたします。

  • Accessのクエリ / 曜日の表示について教えてください

    お世話になっております。 Accessのクエリについて教えてください。日付から曜日を表示させたいのですが、うまくいきません。 アクセスのクエリの作成の画面で、フィールドのところに Weekdayname(Weekday[日付(MM/DD/YYY形式で日付が入って言います)]と入力したのにエラーが出て更新できません。 どうしたらいいのでしょうか? どうぞよろしくお願いいたします。

  • WEEKDAY関数と条件付き書式について

    EXCEL2010使用です。 B列に日付、C列に曜日の表を作成する場合、 WEEKDAY関数を使って 日付に対応する曜日を求めるのに、 例として曜日先頭セルがB4、種類を日曜日スタートに設定する場合、 「C4」セルに=WEEKDAY(B4,1)の関数を挿入、下方向にコピーします。 その後、日曜日の日付と曜日だけフォントの色を変更するため、 条件付き書式の「数式を使用して、書式設定するセルを決定」で、 数式を入力する場合、=WEEKDAY($B4)=1と入力しますが、 =WEEKDAY(B4,1)の「B4」と、=WEEKDAY($B4)=1の「$B4」の意味は分かるのですが、 なぜ「$B4」にしなければいけないのか?(この場合「B4」でも結果は同じです) どなたか教えてください。お願いします。

  • クエリで曜日表示

    クエリにて曜日を出す式を入力する場合はどうすればいいでしょうか? クエリのデータとして年(2006などの4桁) 月 は別にフォームより入力しその該当するデータを抽出するようになっておりますので クエリのデータとして1日曜日~31日曜日というような感じで表記したいのですが weekdayを使うとシリアル値を入力することになると思うのですが持っているデータが2006 7 といったデータなのでそれは使えないと思うのですが曜日だけデータを取ることはできますでしょうか??

  • 何日前かを求めるクエリ

    テーブルには 2012/12/27 23:04:42 と入っている場合、 クエリで新しいフォールドを作り、 上記の日付が今日より何日前かを求めるフィールドを作りたいのですが どのような士気にすればいいのでしょうか? クエリで経過日フィールドを作って、「2日前」と表示させたいです。 DATEADD 関数か DATEDIFF 関数だと思うのですが使い方がわかりません。 ご回答よろしくお願いします。

  • Accessテーブルへのフィールドの追加について

    Outlookの予定表をエクスポートすると、日付は有るのですが「曜日」がありません。 そこで、テーブル上に「曜日」というフィールドを作成し、エキスポートした日付に対応させ方をご教示下さい。 クエリ上ではFormat関数で作成できたのですが、レポート上ではそのクエリが使用できないと表示されます。その為、クエリを使用せず、テーブルだけでの対応を考え付いた際、上記の「曜日」をテーブル上に作成致したく、宜しくお願い申し上げます。

  • セルに値が入った時に個数をカウントする

    曜日 数値 日  1 日   日  1 月  2 上記例の様な状態です。 曜日はweekdayで表示しており、数値は手入力です。 数値欄に0以外の値がある時に、その横にある曜日の数をカウントするということはできますか? 上記例の場合なら、「日曜日」が「2個」という数え方です。 言葉足らずでわかりにくいかもしれませんが、よろしくお願いします。

  • Access datediff関数について

    クエリを使って、社員の定年までの年数を計算したいと 思っています。 datediff関数を使うのかなと思いますが、行き詰ってしまいました。 <テーブルフィルード名> ・氏名 ・今日の日付 ・生年月日 など <クエリ> で定年までの年数を調べたいので、 ・氏名フィールド ・演算式フィールドとして 定年までの年数:([今日の日付],[???],"Y") かなと考えています。???の部分も式が分からないのですが 教えて頂けないでしょうか? よろしくお願いいたします。

  • アクセス 計算結果にマイナスがついてしまう

    [検査実施日],[曜日],[医師],[検査]・・・フィールドがあります。 〔例〕A医師、日曜日、月曜日・・・と曜日ごとの合計を出したいのですが、うまくいきません。曜日はWEEKDAY関数で出しています。 医師ID  医師名 10  A医師 20  B医師 30  C医師 40  D医師 ・   ・ ・   ・ ・   ・ =Sum(IIf([曜日]=1,[医師]=10,0))とういうように作成したのですが、計算結果が”-”マイナス表記で出てきてしまいます。 アクセス初心者なものでまだよく分かりません。初歩的なことかもしれませんが、どなたかお教えくださいませ。宜しくお願いします。

  • エクセルで曜日指定のカレンダーを作りたい

    お掃除当番表をExcelで作っています。 当番は火金だけなので、1年間のカレンダーを作りたいのですが、オートフィルでやってもずれてしまいます。 日付を手入力で、曜日をWEEKDAYで表示するくらいしか思いつかないのですが、他に何か便利な方法はありますか?