いつもお世話になっています。また疑問が出てきてしまったので質問します。
タイトルの通りEXCEL97で日付の計算をさせたいのですがやり方がよくわかりません。
やりたいことはある日付から1ヶ月後、3ヶ月後9ヶ月後というようにこちらの任意の月数を足した日付を
表示させたいのです。

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (6件)

EDATE関数でセル参照も出来ます。


A1にtoday()あるいはnow()などを、B1に月数を入力したとして、C1に
=EDATE(A1,B1)
シリアル数で表示されますので、表示形式を日付にします。

EDATE関数が組み込まれていないときは、セットアップ プログラムを実行して分析ツールを組み込み、[ツール] メニューの [アドイン] コマンドを使ってその分析ツールを登録する必要があります。

ヘルプの「EDATE」を参照してください。
    • good
    • 0
この回答へのお礼

返事が遅くなって申し訳ありません。
EDATEという関数があるのは知りませんでした。
分析ツールは組み込んでいたのですが(最初にとりあえず全部組み込んでおいたので)
アドインの登録をしていなかったためHELPしか表示されませんでした。
これでよくわからないマクロの勉強をしなくて済みそうです。(本当はちゃんと勉強しなければならないとは思いますが)
どうもありがとうございました。

お礼日時:2001/03/18 08:17

dateaddをつかうとよろしいでしょう



Function abc(idate, idiff)

abc = DateAdd("m", idiff, idate)
End Function

'これは使用例
Sub aaa()
a = abc("2001/01/31", 1)
MsgBox a
End Sub
    • good
    • 0
この回答へのお礼

確かに表示されました。問題は私はマクロが全然と言っていいほど解らないことです。
どうやったら今日の日付に好きな月数を足した日付を表示させるかを実行できるよう勉強する事にします。
実はマクロは難しそうなので今まで避けて来たんです。

お礼日時:2001/03/16 09:08

こんにちは



 以下のページもご参考になるのでは?

【エクセル技道場】-関数-月末の日付
http://www2.odn.ne.jp/excel/waza/function.html#S …

参考URL:http://www2.odn.ne.jp/excel/waza/function.html#S …

この回答への補足

回答ありがとうございます。こんなHPもあるのですね参考にします。ただ私がやりたかったこととは少し違います。どうやらマクロを作らなければできないようですね。私がやりたかったのは次のようなことです。TODAYもしくはNOWの入っているセルを参照して別のセルに数字だけを入れその数字を足した月だけ後の日付を表示させたかったのです。もしも何か良いアイディアがあれば教えてください。

補足日時:2001/03/15 07:39
    • good
    • 0

こんにちは。


telescopeさんのアドイン関数が最良と思われますが、
何らかの理由でアドイン関数が使用できない場合、
以下の関数の組み合わせで同様の結果が得られるハズです。

=DATE(
IF(MONTH(A1)+B1>12,YEAR(A1)+1,YEAR(A1)),
MOD(MONTH(A1)+B1,12),
DAY(A1))

A1:起算する日付
B1:経過月

どうしようもなく手がかかりますが(笑)
    • good
    • 0
この回答へのお礼

こちらの勉強不足でアドインの登録をしていなかったばかりに組み込んでいたにもかかわらず
EDATE関数が使えずにアドバイスを頂いた方法で実行するしかないのかと思っていました。
こんな方法もあるのですね。今後の参考にしたいと思います。
どうもありがとうございました。

お礼日時:2001/03/18 08:24

EDATE関数を使います。


EDATE(開始日, 月)

=EDATE("2001/3/14",3)
で、2001/6/14が得られます。

今日の日付からなら、
=EDATE(today(),3)
    • good
    • 0
この回答へのお礼

telescopeさんのアドバイスでようやくEDATE関数が使えるようになりました。
せっかく早くにアドバイスを頂いていたにもかかわらず、こちらの勉強不足から
そんな関数がない(;_;)と悩んでしまいました。
どうもありがとうございました。

お礼日時:2001/03/18 08:20

一番単純な方法は


まず、today関数を入れます。TODAY関数を入れたせるに数式バーでTODAY関数の後に+1をすることで常に次の日の日付がでます。
その応用で例えば3月14日に+31を足してみると4月14日に。
+61(3月が31日間で31+4月が30日間で30=61日)を足すと5月14日になるんですが、参考にならないですかね・・・・。
    • good
    • 0
この回答へのお礼

実は今までDOS版のロータス1-2-3のマクロで動かしていたものをEXCELで使用できないかと
試行錯誤をしているところなのですが日付の扱いがよくわからないのでこのような質問になりました。
このやり方は今使っているロータスのマクロのやり方なんですが月の日数が月のよって違うので
マクロを作った人は1月をすべて30日として計算していたんです。
ところがやはり無理がありある時月がずれて表示されたのでもしかしたらEXCELではもっといい方法が
あるのではないかと質問しました。
どうもありがとうございました。

お礼日時:2001/03/18 08:29

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

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

Q(Excel)エクセルのバージョンごとの使用可能関数リストがあるサイト

(Excel)エクセルのバージョンごとの使用可能関数リストがあるサイト

Excel2007でIFERROR関数などを使っていました
しかし、以前のExcelバージョンだと使えないようです。
そこで、どの関数がどのExcelバージョンから使用可能か?
というリストのようなものを掲載しているサイトはありますか?

Aベストアンサー

下記ページで2007で追加された関数が解ります。

Excel(エクセル)基本講座:Excel(エクセル)関数一覧表
http://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu/itiran.html

QAccess97で任意のフィールドとレコードを選択してExcel97に出力する方法

Access97でデータベースを作っています。
ある機器の部品リストを作っているのですが、テーブルに保存されている情報を
選択画面で、取り出したいフィールドとレコードをチェックボックスなどで選択し、選択したデータのみをExcel97に出力したいのです。
方法ご存じの方、ご教示願います。

Aベストアンサー

再びmaruru01です。

コマンドボタンのクリックイベントにSQLステートメントの実行とファイルのエクスポートを記述すればよいとおもいます。

SQLステートメントは、

Dim SQL As String

SQL="SELECT (フィールド) INTO (一時テーブル名) " & _
"FROM (抽出元のテーブル名) " & _
"WHERE (抽出条件)"
DoCmd.RunSQL SQL

という風で、ファイルのエクスポートは、

DoCmd.TransferSpreadsheet acExport, acSpreadsheetExcel7, (一時テーブル名), (Excelファイル名)

という風です。
詳しくは、個々のヘルプを参照して下さい。
では。

QExcel関数のようなものはありますか?

こんにちは。まだプログラミングをほとんどしたことがないのでわからないことがあります。

現在Excelを使っていますがExcel関数は非常に使いやすいく重宝しています。
Excel関数は300種類ほどあるそうですが、C++やVB、C#、JAVAなどのプログラムにもExcel関数のようなものが
あらかじめ用意されているのでしょうか?
もしExcel関数の中で使いたいものがあり、そういう関数がソフト側で用意されてない場合は自作するしかないのでしょうか?

Aベストアンサー

office2003以降かつ.Netで作成という話しなら、事実上「ある」に等しいかもしれませんね。

.Netの場合、ライブラリとして読み込む側の言語についてあまり意識する必要はありません。(JAVAで本体のプログラムという訳にはいかないが)
とはいえ、プログラム経験が浅いのでしたら、VB.NETでやるというのが吉であると思います。(関数のみならず、マクロも利用できますのでね/office2003以降)

# 開発環境を安くならC#となります(Borland C#Builderなら無料)

参考URL:https://mypage.borland.co.jp/mypage/index.html?ret_to_semi_list=1&page_act=LI_REG

QACCESS97で 日付に何も表示させない

アクセス97で 日付を表示したいのです。

ただ、日付データが NULLの時、何も表示させないことはできるのでしょうか?
例えば、文字型であれば "*" や "" (Null) とできると思うのですが
今のところ 00/01/01 という 値にしています。

Q 日付型に "*" 等の日付以外を表示させることはできないでしょうか?
 文字型に 日付で入力し、NULLの時は "*" にする方がいいのでしょうか?

Aベストアンサー

入力したいコントロールのプロパティを開いてください
そこに、既定値って項目がありますでしょ?
そこに、論理式を入れておけば良いですよ

=iif([日付]=null,"",[日付])こんな具合に・・・

あれ?日付のコントロールにって事なのかな?
だったら、既定値を取ってしまい、空白にしておけば済むんだけど、こう言う事ではないのかな?

QExcel関数について

Excel関数についての質問です。


Excel関数で、実際の仕事上でよく使う関数、ベスト5を教えてください。

また、覚えやすいコツなどがありましたら、教えて頂きたいです。

よろしくお願いします。

Aベストアンサー

うーん…仕事でどういったものを使いたいかによりますが…基本として、

SUM (サム)
指定範囲の合計を出します。
合計はサム!みたいにして覚えました。

--------------------------
IF
if文は結構使いました。
if(A1="","○","×")  ⇒ もし、A1が空なら,○を入力、違うなら×を入力
if(A1="","○",IF(A1="?","△","×")) ⇒ もし、A1が空だったら、○を入力、
                         それ以外で、?が入っていたら△を入力、それ以外は×を入力

とか、色々使えます^^
他の関数とも組み合わせて、とても便利です。

-------------------------
COUNTIF(カウントイフ)
条件にあったものの個数を数えます。

COUNTIF(A1:A5,"正解") 正解と書かれている個数を数えます

--------------------
TODAY
今日の日付が表示されます。
---------------------


他にも、平均を出すものや
便利なものはたくさんあります。
その都度、やりたいことを検索して
使っていくのがベストかな?と思います。
Excelの、挿入⇒関数のところで、
検索もできたはずです。


参考リンク
http://pc.nikkeibp.co.jp/pc21/tech/excel36/
http://matome.naver.jp/odai/2135607317537215601
http://www.enjoy-web-jp.com/jp/excel/excel00.html


また、セルの書式設定のユーザー定義はとても便利です。
書き方を勉強しておくと役立つかもしれません。

以上、参考まで

うーん…仕事でどういったものを使いたいかによりますが…基本として、

SUM (サム)
指定範囲の合計を出します。
合計はサム!みたいにして覚えました。

--------------------------
IF
if文は結構使いました。
if(A1="","○","×")  ⇒ もし、A1が空なら,○を入力、違うなら×を入力
if(A1="","○",IF(A1="?","△","×")) ⇒ もし、A1が空だったら、○を入力、
                         それ以外で、?が入っていたら△を入力、それ以外は×を入力

とか、色々使えます^^
他の関数とも組...続きを読む

QExcel2000で任意の日付から3日後になるとセルを赤色表示するには?

A1セルに2006/1/7と入力し
その3日後の2006/1/10になった時点で
A1セルを赤色表示したいのです。
2006/1/11以降は色表示なしの状態に。

条件付き書式で
セルの値が次の値に等しい A1+3 書式パターン赤
にしてもダメでした。


また、別の質問ですが、
任意日付の30~37日後、60~67日後になったら
それぞれの期間だけセルに色づけするには
どのようにすればよいのでしょうか?

Aベストアンサー

A1に日付を入れる場合は
A1をポイントして
数式がで=$A$1=Today()-3
2006/1/10日だけ色がつく
ーーーーー
A1に日付を入れない場合は
どこかの空きセル(たとえばE1)に=TODAY()をいれて置く。
E1は実際の日の進行につれて、ブックを開いたとき、その日をさす。
A1をポイントし、
書式
条件付き書式
数式が
数式に =$E$1=DATE(2006,1,10) と入れる
書式でパターンを薄赤色に指定する
OK
数式において、具体的に2006//10 のように具体的な日付を設定しないと、ダメではないかと思う。
それに$A$1のように絶対番地にしておくほうが良い。今回はA1だけを色をつけるので、同じかもしれないが、2セル、たとえばA1,B1セルをいろ付けたいときは、ないとおかしくなると思う。
ーーーー
30-37日後は
[数式が」で
=AND($A$1<=(TODAY()-30),$A$1>=(TODAY()-37))

QEXCEL ゴールシークの関数?

EXCEL ゴールシークの関数?
ゴールシークを画面操作をしなくて ゴールシーク機能を持つ 関数はありませんか?
無ければ 複合関数は? VBを使わないでEXCEL関数だけで 求める方法を探しています。

Aベストアンサー

こんにちは。

例えば、財務関数のNPVなどがありますが、ゴールシークの代わりに、関数だけで、オプションの循環参照計算があります。そうでなければ、基本的な話ですが、微分を使うか、もしくは、ミスが出やすいのですが、オートフィルで、目的の値を探すか、いずれかの方法があると思います。

ただ、VBというか、マクロのことだと思いますが、そういう区分けはあまり意味のないことだと思います。それは、アドインもピボットも、コマンドの3分の1程度は、動的なプログラムを使っているからです。また、分析ツールは完全にExcelの古いマクロです。

私は、マクロを中心とする回答者のひとりです。何かを使わないという条件付き質問は、学校のテストやクイズやお遊びとしてはありえるとしても、ゴールシークというものは、論理的な計算ではなく、反復する時系列な計算です。それは、基本的にマクロにほかなりません。ただし、私たちが考えるよりも、遥かに速い処理です。それを論理的な計算をするというなら、その求める具体的な質問がなければ、話は進みません。解答を求めたいなら、方法論は何でもアリではないかと思います。そうでないなら、純粋に数式で計算させるMathematica のようなもののほうが良いと思います。

こんにちは。

例えば、財務関数のNPVなどがありますが、ゴールシークの代わりに、関数だけで、オプションの循環参照計算があります。そうでなければ、基本的な話ですが、微分を使うか、もしくは、ミスが出やすいのですが、オートフィルで、目的の値を探すか、いずれかの方法があると思います。

ただ、VBというか、マクロのことだと思いますが、そういう区分けはあまり意味のないことだと思います。それは、アドインもピボットも、コマンドの3分の1程度は、動的なプログラムを使っているからです。また、分...続きを読む

Qアクセス97のクエリーで、年月データの置換処理を行いたいのですが、やり方が分かりません。

マイクロソフトAccess97を使って、テーブル上の「年月」のデータのうち、ある条件に該当するものについてクエリーで「1ヶ月前」あるいは「2ヶ月前」の年月にまとめて置換えようとしています。(例:200705→「200704」あるいは「200703」へ置換え)

クエリのフィールド欄に、
実年月:[○○テーブル名]![年月]-1 あるいは
実年月:[○○テーブル名]![年月]-2
と入力すると、月によっては求めたい結果が出ます。
ただ、年をまたがるような場合にはうまくいきません。
どんなケースでも(例えば、もとの年月が2007年1月の場合に、1ヶ月前→「200612」、2ヶ月前→「200611」と変換される)きちんと処理がされるようにするためには、どうしたらよいか教えて頂けないでしょうか。

Aベストアンサー

>200705
これはAccessにとってはただの数字または文字列で年月とは見てくれませんん
これを日付と分かる形に変形してやらないと日付関連の関数は使えません

実年月: DateAdd("m",-1,DateValue(Format([数字],"0000\/00""/1""")))

Qexcelのピボット関数

excelのピボット関数はどんな関数ですか?

Aベストアンサー

私自身は「ピボット関数」なる言葉を聞いたことがないけど、貴方はそれを何処で知ったのですか?
ひょっとして、[データベース関数]の中の =GETPIVOTDATA()関数のことでしょうか?
Excel のヘルプ文をお読みになったら如何でしょ。
>ピボットテーブル レポートに格納されているデータを返します。
>GETPIVOTDATA 関数を使用すると、ピボットテーブル レポートに
>表示されている集計データを取得することができます。
で始まる説明があります。
それを読んでから不明なところを質問されることをお奨めします。
何?隅から隅まで、チンプンカンプン?

QExcel97:ワークシートをコピーすると日付が1日若く更新される

表記のとおりです。
Excel97で、マクロ入りのある管理簿を作成しています。
提出物として、マクロがかかっていない完成版のワークシートを別に保存する時、ワークシートをコピーしてから「名前を付けて保存」するやり方をしてます。でもなぜかその時日付が1日分だけ若く更新されるのです。
その他には、コピーさせずに移動でワークシートを切り離しても同じことが起こります。でも再びそのファイルに戻すと日付もまた元に戻ります。ちなみに日付には「3/4」という表示形式が選択されています。

この現象はずっと今まで気付かなかったんですが、これまでの提出用の完成版ファイルを確認したら全てそうなっていました。念のため、違うファイルの日付がある表でワークシートのコピーをしてみたんですが、この時は大丈夫でした。
どうやら、このマクロ入りの、それもファイルの種類が「Excel97および5.0/95ブック」のファイルだけがそうなるようです。

でも、複雑なマクロが組み込まれているので、ファイル自体を再作成して改めて上バージョンで保存させるのは大変です。周りの人に聞いてみたら、「多分97のバグだろう。MicrosoftのExcelバグ対応のページを見れば何かあるかも」と教えてもらったので見たんですが、数ある中でこの現象には何が対応してるのかさっぱり分かりません。

一応先月度の提出物は、ファイルを全コピーさせ、マクロ入りのいらないワークシートを全て削除する方法で作成しました。でもワークシートの数が多いしメモリも重い物なのでやっぱり少しやりにくいですね。毎月のことだのでもっと良いやり方にしたいものです。

長くなりましたが、どなたか正しい対応の仕方、また何故このような現象が起こるのか教えて下さい。

表記のとおりです。
Excel97で、マクロ入りのある管理簿を作成しています。
提出物として、マクロがかかっていない完成版のワークシートを別に保存する時、ワークシートをコピーしてから「名前を付けて保存」するやり方をしてます。でもなぜかその時日付が1日分だけ若く更新されるのです。
その他には、コピーさせずに移動でワークシートを切り離しても同じことが起こります。でも再びそのファイルに戻すと日付もまた元に戻ります。ちなみに日付には「3/4」という表示形式が選択されています。

この現象はず...続きを読む

Aベストアンサー

こんばんは!

>「1904」を外せば多分、元ファイルの日付のまま
>コピーされるんでしょうけど、そうすると元ファイル
>じたいの日付表示がおかしくなってしまうのなら、
>どうしようもありません。

「1904」を外すと既に入力された日付自体がコピー先と
同様に4年と1日ずれますので以下の方法で補正します。

・「1904」を外す
・適当なセルに1462と入力しそれをコピー
・日付の入っているセル範囲を選択
・右クリック 形式を選択して貼り付け [値]と[加算]をチェック
・OK
---------------
数値の 1462 は1900/1/1 と 1904/1/1 の経過日数
です(1904/1/1-1900/1/1+1)

試しに 新しいシートで[1904]にチェックした状態で
2001/1/1 と入力して[1904]のチェックを外し同作業を
行ってみて下さい!納得されると思います。

不便な機能と思われるかもしれませんが確かMAC版との
互換を保つためにあると聞いたことがあります。
あとこれを使うと時間のマイナス値も扱えるようになる
のですが、承知しての使い分けを行わないと、ご承知の
通り、不便を伴います。

こんばんは!

>「1904」を外せば多分、元ファイルの日付のまま
>コピーされるんでしょうけど、そうすると元ファイル
>じたいの日付表示がおかしくなってしまうのなら、
>どうしようもありません。

「1904」を外すと既に入力された日付自体がコピー先と
同様に4年と1日ずれますので以下の方法で補正します。

・「1904」を外す
・適当なセルに1462と入力しそれをコピー
・日付の入っているセル範囲を選択
・右クリック 形式を選択して貼り付け [値]と[加算]をチェック
・OK
-------...続きを読む


人気Q&Aランキング

おすすめ情報