• 締切済み

エクセルかアクセスで(できればアクセスで)

質問です。 エクセルかアクセス(できればアクセスで)作成したいのですが、今日が12/10だった場合 12/1 12/2 12/3 12/4  12/5 ~ 12/10  0   50  0  100   0 ~   0 この場合12/5~12/10まで0だった場合 今日まで0が何日続いたかという計算をすることは 可能でしょうか?

みんなの回答

回答No.3

これでどうでしょう・・・ ちょっとクエリを使って考えてみました。 まず、テーブルを作ります。 フィールドは、日付、値(0とかを入力するフィールド)です。 このテーブルをベースに集計クエリを作ります。 クエリのフィールドの設定は、 日付→集計:where条件、抽出条件:<=Date() 値→集計:グループ化、抽出条件:0 にします。 さらに、カウント用のフィールドを作ります。 0のカウント:値→集計:カウント です。 これで、今日までの0の個数をカウントできると思います。

hamu-ha
質問者

補足

上記の方法ですと、0円がトータルで何回あるかということになりませんでしょうか? 今日まで0円が何日続いているかを出したいと考えています。 1日でも0円以外の数字が入れば、再度0円になった直近の日付から今日まで連続した日にちを計算することはできないでしょうか?

  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.2

> フィールド方向です。 たとえば、コントロール名が txt01 txt02  : txt10 のようになっているとして、本日(txt10)から、遡り、0がいくつあるかを カウントするには、以下のように。 Dim lngIdx As Long Dim lngCnt As Long For lngIdx 10 To 1 Step -1   If Me.Controls("txt" & Format(lngIdx,"00")) = 0 Then     lngCnt = lngCnt + 1   Else     Exit Sub   End If Next lngIdx MsgBox lngIdx & " 日、続いています。" のような感じになると思います。

  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.1

> 12/1 12/2 12/3 12/4  12/5 ~ 12/10 >  0   50  0  100   0 ~   0 完全にVBAになると思います。 この値は、フィールド方向に伸びるのでしょうか? それとも、レコード方向? #クロス集計クエリを使うのかな?(Accessでするとしたら。)

hamu-ha
質問者

補足

フィールド方向です。

関連するQ&A