今「Access97」でシステムを作成していますが、期間の合計を出すことができません。どなたかお分かりの方いらっしゃいましたら教えて下さい。
【詳細】
昭和○○年○○月○○日・・・A
     ~
昭和○○年○○月○○日・・・B
○年○月       ・・・C

A~B=C
という式を作りたいのですが、クエリーでどのように指定したらよいか分かりません。

A 回答 (3件)

i-haradaです。



抽出条件でしょうか?

Between A And B  でどうでしょうか?

>期間の合計を出すことができません。

これって、日数の合計なのか、他の合計かわからんよ。
    • good
    • 0

こんばんはっ。


○年○ヶ月と表示したいのでしょうか?

Int(DateDiff("m",[開始日],[終了日])/12) & "年" & DateDiff("m",[開始日],[終了日])-Int(DateDiff("m",[開始日],[終了日])/12)*12+Int(Format([終了日],"d")<Format([開始日],"d")) & "ヶ月"

こんな感じの式はどうですか?(ものすごく長くなってしまいました。ごめんなさい)
[開始日]がA
[終了日]がB
になります。

この式をどこに入れるかは分かりますか?
もし、分からなければ、補足してください。

とりあえず式をコピーをしてやってみてください。
(もっと短くてもできるのかなぁ?)

この回答への補足

具体例
昭和12年12月12日~昭和15年1月1日を投入すると2年2月と回答できるものです。

補足日時:2001/07/31 15:20
    • good
    • 0

ちょっと見当違いかもしれませんが...



「期間の合計」というのは、AからBまで何日あるかと
いうことでしょうか?

もしそうなら、単純な引き算でできませんかね。
そして FORMAT 関数で書式を指定すれば。

Format(B-A,"書式")
というように。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q平成○年○月○日午後○時○分 日と時間をわけたい

エクセルで「平成○年○月○日午後○時○分」という文字がはいったセルが1000行くらい
あるのですが、作業の過程で、「平成○年○月○日午後○時○分」を

      「平成○年○月○日」

      「午後○時○分」
を別のセルにわける必要がでてきました。単純にコピーをして、片方のセルは一気に時刻がはいってるところを消して、片方のセルは一気に日付がはいったところを削除したいのですが、どういった関数若しくはユーザ定義を行えばいいのでしょうか?

急ぎなので分る方がいれば教えて下さい。

Aベストアンサー

同じデータを表示書式を日付だけ、時刻だけにするので良ければ
A列に日付、時刻をが入っているとします。
1.A列の列名を右クリックから「コピー」
2.B列の列名を右クリックから「コピーしたセルの挿入」
  これでA列とB列は同じ内容が入っています
3.A列の列名を右クリックから「セルの書式設定」続いて表示形式タグで「日付」
  日付に関する表示パターンが西暦表示、和暦表示と各種用意されています
4.B列には時刻を表示するには、同様の要領で3.の選択が「時刻」

これでいかがでしょう
希望の表示パターンがないときはユーザー定義することもできます。
A列から時刻部分、B列から日付部分を除去するには一旦A列を削除
しますので、トラブルの原因になります。

QEXCELで○ヶ月を○年○ヶ月に変換したい。

EXCELで、例えば「430ヶ月を35年10ヶ月」に変換したいのですが、使える関数はありますか?又は、簡単な良い方法はありますか?

Aベストアンサー

=TEXT(DATE(0,430,1),"y年mmヶ月")
ですね。上記の式の430の所をセル参照
別解として
=INT(430/12)&"年"&MOD(430,12)&"ヶ月"

上記2つの式は12ヶ月で割り切れる場合の表示が異なります。
=TEXT(DATE(0,480,1),"y年mmヶ月")→39年12ヶ月
=INT(480/12)&"年"&MOD(480,12)&"ヶ月"→40年0ヶ月

Qエクセルについてなのですが、 例えば指定の範囲内に A B B C A B C A B B C D

エクセルについてなのですが、

例えば指定の範囲内に
A B B C A B C A B B C D B D
と並んだセルからAとDの合計を出したい時はどのようにすればいいのですか?

COUNTIFSだったら複数条件を満たした数を表示するので希望とは違います。
希望はA or Dの合計を出したいのです。

Aベストアンサー

こんにちは!

COUNTIFS関数はAND条件になりますので、今回の質問には適しません。

=COUNTIF(範囲,"A")+COUNTIF(範囲,"D")
のように「A」のセル数と「D」のセル数をコツコツと足し算するのが
間違いないと思います。m(_ _)m

QSUMPRODUCT($A$1:$A$10,$B$1:$B$10)とSUMPRODUCT($A$1:$A$10*$B$1:$B$10)

エクセルのSUMPRODUCT関数についてお尋ねします。

=SUMPRODUCT($A$1:$A$10,$B$1:$B$10)

=SUMPRODUCT($A$1:$A$10*$B$1:$B$10)
の違いは何でしょうか?
両者とも同じ答えを返しますが、いろいろ試したところ、前者は範囲内に文字列があってもそれを無視して計算し、後者は文字列があればエラーになるようですが、その理解で正しいでしょうか?
正しいとすれば、なぜでしょうか?

Aベストアンサー

こんばんは。

配列計算をしているのは言うまでもありませんが、この、SUMPRODUCT は、必ず、内部のひとまとまりから計算するという性質を持っています。ただ、VBAのように左から時系列かどうかは、言語が違いますから、分かりません。しかし、この引数は、パラメータ配列になっています。そして、その引数それぞれの有効値を調べて、それを演算出来る値かどうか調べます。

文字列を入れてもエラーにならないのは、元々、そこに注釈などを入れるために考えられたものです。値を文字列か数値かを精査して演算するように出来ています。最初、SUM関数に対し、そのように作られました。プログラムとしては、初歩的なものですが、そのアイデアは、今日まで、踏襲しているようです。このオリジナルの仕組みを考えたのは、VisiCalc の開発者、ブルックリン氏です。昔々、本で読んだことがあります。 PRODUCT関数とも共通です。3つの関数は、同じような仕様を持っています。

こちらが、本来の使い方です。

=SUMPRODUCT($A$1:$A$10,$B$1:$B$10)

つまり、
$A$1:$A$10 と $B$1:$B$10 の値を別々に取得しています。

では、
=SUMPRODUCT($A$1:$A$10,$B$1:$B$11)

とすると、なぜ、エラーが出るかというと、$B$11 に対応する数値が、NULL値(有効な値がない)だからです。それは、全体に反映させてしまいます。(理由は分かると思いますが、プログラムが途中で、エラーで止まってしまうからです)

ところが、こちらは、

=SUMPRODUCT($A$1:$A$10*$B$1:$B$10)

$A$1:$A$10*$B$1:$B$10 は、分割出来ません。したがって、この数式の中でのエラーは、そのまま、元の数式に反映されます。

ご自分で、ユーザー定義関数を作ってみれば分かります。VBAでも、同じように作ることが可能です。一度、試してみるとよいです。

こんばんは。

配列計算をしているのは言うまでもありませんが、この、SUMPRODUCT は、必ず、内部のひとまとまりから計算するという性質を持っています。ただ、VBAのように左から時系列かどうかは、言語が違いますから、分かりません。しかし、この引数は、パラメータ配列になっています。そして、その引数それぞれの有効値を調べて、それを演算出来る値かどうか調べます。

文字列を入れてもエラーにならないのは、元々、そこに注釈などを入れるために考えられたものです。値を文字列か数値かを精査して演算...続きを読む

QExcel2013 VBA A列とB列の文字をA列とB列とC列に移動させる方法

A列とB列に文字が入っているのですが、下記のようにA列とB列とC列に文字を移動させたいです。
(A列の数字は必ず奇数のA列に入っています。)
VBAのコードを教えて下さい。

例えば
A1 1  B1 cat
A2 空白 B2 猫
A3 空白 B3 dog
A4 空白 B4 犬
A5 2  B5 whale
A6 空白 B6 クジラ
A7 3  B7 rabbit
A8 空白 B8 ウサギ

とデータがある場合

A1 1  B1 cat  C1 猫
A2 空白 B2 dog  C2 犬
A3 2  B3 whale  C3 クジラ
A4 3  B4 rabbit C4 ウサギ

としたいです。

実際、データは、A5196まであります。

Aベストアンサー

No.1です。

>実際、データは、A5196まであります。

前回のコードは一つずつカット&ペーストしていますので
かなりの時間を要すると思います。
↓のコードに変更してみてください。

Sub Sample2()
Dim lastRow As Long
lastRow = Cells(Rows.Count, "B").End(xlUp).Row
Application.ScreenUpdating = False
With Range(Cells(1, "C"), Cells(lastRow, "C"))
.Formula = "=IF(MOD(ROW(),2)=1,B2,"""")"
.Value = .Value
.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
Application.ScreenUpdating = True
MsgBox "完了"
End Sub

少しは短縮できると思います。m(_ _)m

No.1です。

>実際、データは、A5196まであります。

前回のコードは一つずつカット&ペーストしていますので
かなりの時間を要すると思います。
↓のコードに変更してみてください。

Sub Sample2()
Dim lastRow As Long
lastRow = Cells(Rows.Count, "B").End(xlUp).Row
Application.ScreenUpdating = False
With Range(Cells(1, "C"), Cells(lastRow, "C"))
.Formula = "=IF(MOD(ROW(),2)=1,B2,"""")"
.Value = .Value
.SpecialCells(xlCellTypeB...続きを読む


このカテゴリの人気Q&Aランキング

おすすめ情報