• ベストアンサー

ACCESSの日付に関してですが、休日の部分でデータの存在しない部分を無視して平均を出す方法を教えてください。

ACCESSの日付に関してですが、休日の部分のテーブルデータが存在しなくてもクエリで日付に関して過去30日間などを行うとデータの無い部分は無い部分で無視して計算してしまい、結果として土日が休みですと過去22日分などでの計算になってしまいます。そのような計算ではなく例えばの言い方ですが、休みを除いた過去30営業日(テーブルに存在する日付のみ)での計算を行うにはどのようにしたら宜しいでしょうか?? ACCESSに詳しい方宜しくお願い致します。

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

  • ベストアンサー
  • deecyan
  • ベストアンサー率38% (89/233)
回答No.1

日付の所を降順にして 30行だけ出す指定にすればいいのでは? クエリのデザインビューを表示している画面で 上のへんの ツールボックスに ”すべて”って なっているところに 30といれればいいですよ

その他の回答 (2)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.3

>結果として土日が休みですと過去22日分などでの計算になってしまいます。 集計関数はNullを除いて集計しますからそうなりますね >過去30営業日(テーブルに存在する日付のみ)での計算を行うには 全てレコードとしては存在しているのですね その場合は集計したい値をNz関数でNullを0に変換して集計します クエリに Nz(データ,0) という式フィールドを作り このフィールドの平均を取ります

  • kosamon
  • ベストアンサー率47% (11/23)
回答No.2

まず、日付のみのクエリを作成します。 それをグループ化し、プロパティのトップ値を例えば30営業日であれば「30」と入力します。 そのクエリと元々のテーブルの日付フィールド同士を結びつけるクエリを新たに作成します。 そうすることで、ご所望の結果が得られると思います。 営業日数が一律でない場合その都度設定してやる必要があり、ちょっと面倒かな?

関連するQ&A

  • アクセス データの表示について

    アクセス2000 windows98です。 いくつかのテーブルを組み合わせ、計算やグループ化 などをして作った2つのクエリ同士を組み合わせてひとつ のクエリを作ったのですが、片方のクエリにしかない データは表示されません。 両方のクエリ(クエリを作った元のテーブルの両方に) にデータがないとだめなのです。 ひとつの商品を作るときにかかった費用で社内費と社外費 をそれぞれのクエリで計算してそれを組み合わせてひとつ のクエリを作ろうとしているので、社内費のみで作ること ができた商品は社外費のクエリには存在しないので商品名が表示されないという状況です。 多少アクセスのわかる方に聞きましたところ結合プロパティを片方のクエリにしかなくても表示できるように変えればよいと言われ、やってみたのですが良くわからずうまくいきません。 こちらは初心者ですので説明の仕方が下手でうまく 伝えられなくてすみません。 できるだけ簡単に教えて頂ければありがたいです。

  • ACCESSで前日比を行う方法で最も効率のいいと思われる方法は・・・??

    ACCESSに詳しい方の知恵を拝借できたらと思います。 宜しくお願い致します。 早速ですが、休日を挟みデータの存在しない日付を無視し前日比を 計算させる方法で最も効率の良い方法はどのようなものになるでしょうか?? 現在クエリ上では日付フィールドの抽出条件に例えばですが・・・“(select max(日付) from ○○ <(select max(日付) from ○日前))” といった感じで前日比の計算を行うことができるようにしておりますが・・・この方法ですと多くの日数分のクエリを作成したとしても、14日か15日程度で構造が複雑すぎるということで算出することができなくなってしまいます。 何らかの方法で簡略化および日数を増やすことができたらと考えておりますので、アドバイスをお願い致します。

  • Access 日付抽出について

    Access2000のクエリにて、ある特定日付の抽出ができません。 テーブルの日付項目は、日付/時刻型です。 テーブルを開くと、「2008/02/01 12:59:00」のように見えます。 クエリで抽出する時に、「#2008/02/01#」で抽出されると思って いるのですが、実行すると抽出できません。 どのようにクエリ設定をすればよろしいでしょうか?

  • 【アクセス】 クエリの使用方法

    現在アクセスを使用してデータベースを作成して いるですが、複数のテーブルを一つのクエリに まとめたいのですが 例えば (Aテーブル) (Bテーブル) (Cテーブル)   日付      日付      日付 上記A~Cのデータの日付をクエリで一つにする ことはできますか? アクセス超初心者で基本的な質問かもしれませんが よろしくお願いします。

  • 数値データを日付データとして扱いたい。

    違うDBからファイルをDLしてきて、テーブルに入れているデータがあります。 その違うDBの日付データが分割してインポートされてしまいます。   2 | 9 | 18 ↑こんな感じです。 これを日付データとして扱いたいのです。(2002/09/18というように。) 表示だけでしたらクエリーとかに [年]&"/"&[月]・・ とかってやればいいのですが、そうではなくて、日付のデータとしたいのです。 Excelですと「Date」関数というのがあって、それに 「Date(年,月,日)」と入れれば、日付データとなると思うのですが、Access にはこのような関数はないのでしょうか?

  • Accessのクエリーで、*が入っているデータを抜出す方法って?

    助けてください! Accessのクエリーで、*が入っているデータを抜き出すのってどうやるんですか? クエリーの元になるテーブルは1つ、非常に単純なテーブルです。  ●フィールド1=「*」もしくはNullもしくは「英数字」  ●フィールド2=製品番号  ●フィールド3=メーカ番号 テーブルには上記3つのフィールドしかありません。 このテーブルの、「フィールド1に『*』が入っているデータを抜出したいのです。(抜出すのはフィールド1~3全て) 単純に選択クエリーで「抽出条件」に「“*“」と入れると、「フィールド1に英数字が入っている」行まで選択しちゃうんです。そりゃそうだよなーとは思うのですが、じゃあ、どうやったら英数字の入っている行は無視して、純粋に「*」だけの行を抜出せるのかわかりません。 誰かー!助けて―!

  • access2000にてクエリで日付計算

    アクセスのテーブルにて 開始時間 00:00 と終了時間 99:99 を持っています クエリで 終了時間-開始時間を計算し 実働時間 00:00 を出したいのですが 普通に計算すると0.023088・・・とかの数字になります 実働時間を計算する方法はありますでしょうか? 開始時間 終了時間ともデータ型は 日付/時刻型になってます

  • アクセス2010 最新データを抽出する方法

    はじめまして。 アクセスを猛勉強中の初心者です。 過去記事を探しましたが、解決できませんでしたのでご教示お願いします。 やりたいことは、2つのテーブルからクエリを使って、最新のデータを抽出したいです。 ですが、その中に抽出したくないワードが存在します。 それ以外のワードで最新のデータを抽出したいです。 まず、下記のような2つのテーブルがあります。 ●テーブル1        ・ID(主キー)       ・日付 ・コメント ・顧客ID ●テーブル2 ・顧客ID(主キー) ・顧客名 ・住所 次にこのテーブルをクエリにしてデータを返すと、下記のようになります。 日付    コメント      顧客名    ・2/1     保留       Aさん ・2/1     発送       Bさん       ・2/1     相談       Cさん ・2/2    次回未定     Bさん ・2/3     発送       Aさん  ・2/4    次回未定     Dさん        今回抽出したいデータは、「発送」というワードをはぶいた最新のデータをとりたいということです。 なので、データとしては、 日付    コメント      顧客名    ・2/1     保留       Aさん ・2/1     相談       Cさん ・2/2    次回未定     Bさん ・2/4    次回未定     Dさん と、このように抽出したいのです。 最新データの抽出にはMax関数を使ってでき、いらないワードである「発送」はクエリのフィールドの抽出条件に『<>”発送”』と入力することで抽出を防ぐことができたのですが、これらの方法でMax関数を入れて最新データの抽出をしようとすると、全ての「発送」を除いたデータが抽出されるので、最新データに該当する顧客のデータが消えてしまいます。 なので、本来のコメントデータが分からない状態になります。 また、エクセル側でパラメータクエリを使って資料を作成し、アクセスに触ったことがない人たちが使用するので、アクセスを更新してといったことができません。 なので、更新クエリなどを使ってのやり方以外の方法はないでしょうか? 全くの初心者ですので、言葉足らずで説明が分かり辛くて申し訳ありません。 ご教示をお願いいたします。

  • Accessの日付/時刻型のデータ変換について

    Accessで日付/時刻型で持っているデータを整数型に変換したいと思っておりますがうまくいきません。 日付/時刻型の「時刻(S)」でテーブル上にデータを入れています。これを整数に変換したいと思っています。 例)10:20 → 1020 そこで、 CInt([変換したいフィールド名]) をクエリで実行してみたのですが、結果は「0」、「1」、「#エラー」が表示され、変換したい形に変換することができませんでした。 どのようにしたら、例にある変換の仕方ができるのか教えて頂けますでしょうか。宜しくお願いいたします。

  • ACCESS2010で直近の日付を取得したいのです

    お世話になっています ACCESS2010で以下のことがやりたいのです 2つのテーブル「カレンダー」と「データ」があります データの中には「NO」と「指定日」というフィールドがあります データ no      指定日 9364     2012/08/06 9365     2012/08/10 9366     2012/08/11 9367     2012/08/12 カレンダーの中には「日付」と「日祭」というフィールドがあります カレンダー 日付         日祭 2012/08/04    0 2012/08/05    1 2012/08/06    0 2012/08/07    0 2012/08/08    1 2012/08/09    1 2012/08/10    1 2012/08/11    1 2012/08/12    0 「データ」テーブルを元にして作ったクエリーで、新たに追加した出荷日フィールドに、同じレコードの指定日よりも小さく、かつカレンダーテーブルで「日祭」にはいっている「1」を抜かした直近の日付を表示させたいのです その日付が「0」の場合はそのままの日付をとります それぞれの出荷日は以下のようにしたいのです データ クエリ no       指定日       出荷日 9364     2012/08/06     2012/08/04 9364     2012/08/10     2012/08/07 9345     2012/08/11     2012/08/07 9372     2012/08/12     2012/08/12 これはどのようにしたらできるのでしょうか 大変困っています 教えていただけると助かります

専門家に質問してみよう