Microsoft Office Updateで「Accessで誕生日から年齢を計算する」と言う項目があり、式がのっているのですが、フォームのコントロースロースに
=Datediff("yyyy",[誕生日],now())+int(format(now(),"mmdd")<format([誕生日],"mmdd"))
と入力するとあるのですが、式中にある"INT"の意味がわかりません。
この式でのINTは何を表しているのですか?
よろしくお願いします。

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

A 回答 (2件)

まず、Datediff("yyyy",[誕生日],now()) で年数のみの計算を行っています。


次に format(now(),"mmdd")<format([誕生日],"mmdd") で、月日を比べて、まだ誕生日がきていなかったらこの式が成立します。判別式ですね。この時、式は True になります。
Datediff の帰り値(数値)とTrueは型が違うので加算できないため Int()を使って数値にしていると思います。
Int(True)=-1、Int(False)=0 で、結局、
年の差を計算して、まだ誕生日がきていなかったら1を引いている式でしょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
よくわかりました。
いつもAccessで期間を表したいときに、format関数を使って違う方法で直していたのですが・・・。
とってもよくわかりました。
でも、Accessの関数と、Excelの関数とどう違うんでしょうね?
同じMicrosoftなのに・・・・。

お礼日時:2001/05/20 23:00

Integer(整数)ではないのですか?


日付で出てくるものを数値に変換する関数だと
思います。

ではでは☆

この回答への補足

ご回答ありがとうございます。
私の思い込みなのかもしれないのですが、
int(Format(now(),"mmdd")<Format([誕生日],"mmdd"))
で、たとえば、
Format(now(),"mmdd")で返ってくるのは(今日であれば)
0520
と言う数字が返ってきます。
Format([誕生日],"mmdd"))でかえってくるのは(6月23日生まれ)
0623
と言う数字が返ってきます。
すると、
INT(0520<0623)
と言うことになるのでしょうか?
で、整数?
私は何か考え違いをしているのでしょうか?
たぶん、1プラスするのか、しないのかと言うのを処理しているのだとは思うのですが・・・。お返事いただけますでしょうか?

補足日時:2001/05/20 21:55
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

お礼日時:2001/05/21 21:34

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

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

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

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

QExcelの一操作毎に数十秒自動計算するのを時間短縮する方法

Excel 2003を使用しています。一つの処理をする毎に、十数秒かけて再計算処理をしています。これを数秒で終了させるには、どのような設定をしたらよいか教えていただけないでしょうか。
設定は、手動計算ではなく自動計算にしています。最近突然自動計算の処理に時間がかかるようになってしまったのですが、手動計算には変更したくありません。自分では認識していないうちに、Excelの設定を変更してしまったのかもしれません。

Aベストアンサー

こんばんは。

本来は、数式を工夫すれば、そんなに時間が掛かるはずがありません。
配列を抱えた計算で、その要素数(のべ)が、一定の数を越えると、スワップ・メモリを使い始めるので、そういう問題が発生してきます。

まず、広範囲で使う場合は「配列数式」は避けるべきなのですが、しかし、避けられない場合があります。配列を引数とする関数、例えば、FREQUENCY関数などがあります。そういう場合は、VBAに切り替えるしかありません。なるべく、数式は、分散させて計算させることです。

なお、データが存在しない範囲(Shift + Ctrl + Endの外) は、数式でその範囲をいくら設定しても、それはないものとしてみなされますので、単に広範囲であっても、一般関数の引数に範囲を入れても問題はありません。

これで良く分からないようでしたら、数式を出して相談したほうがよいです。

QOutlookで[全員に返信]をクリックすると、[宛先]と[CC]をす

Outlookで[全員に返信]をクリックすると、[宛先]と[CC]をすべて[CC]に入るように設定。

今までOutlookずっと愛用していますが、現在は最新版のOutlook2010を使用してます。

[全員に返信]をクリックすると、元メールの[送信元]と[宛先]が新メールの[宛先]に変わり、[CC]はそのまま引継ぎますが、元メールの[送信元]と[宛先]と[CC]を全部[CC]に入るように設定などありますか。

または、[送信元]だけを[宛先]にして、ほかはすべて[CC]に入ってもいいですが。

Aベストアンサー

>[全員に返信]をクリックすると、元メールの[送信元]と[宛先]が新メールの[宛先]に変わり、[CC]はそのまま引継ぎます

これって、Microsoftのメールソフトの仕様ですかね。
自分が受信したメールの宛先やCCであっても、Outlook Expressもそうなるようです。

私のメインのThunderbirdでは、自分が複数の宛先やCCに含まれている場合でも、それらの受信メールから「全員に返信」で、受信メールの「送信元」のみが、返信メールの宛先に入り、他の「宛先」や「CC」はすべてCCに表示されます。

>[送信元]だけを[宛先]にして、ほかはすべて[CC]に入ってもいいですが。

この部分での方法は、返信メールの宛先欄で、送信元以外をドラッグして選択して右クリックから切り取り、CC欄に右クリックから貼り付けするしかないと思います。

QExcelの自動計算について

Excelのセルに入力すると、自動計算されるようにしていますが、

例えば
A1+B1=C1 セル

B1に値を入力すると、C1が計算されていたのですが、つい最近から入力しても自動で計算されなくなりました。
保存ボタンを押すと、計算されるのです。
保存を押すまで計算されないので、困っています。
何が原因と考えられるでしょうか?

Aベストアンサー

F9を押しても再計算、だったかな。

自動で計算されなくなったのは、何らかの理由で自動計算が無効になってしまったからでしょう。

Excel2013だと、
ファイル → オプション → 数式 
ここの「計算方法の設定」の「自動」にチェックを入れて下さい。

他のバージョンでも、オプションの中から自動計算の設定はできるはずです。

Q[ctrl] + [V] で書式無しテキストとして貼り付ける

PowerPoint2002を使用しています。

テキストを [ctrl] + [C] でコピーし、[ctrl] + [V] で貼り付けるときに、書式無しテキストとして貼り付ける方法はないでしょうか?

書式なしテキストとして貼り付けるには、
「編集」→「形式を選択して貼り付け」→「書式なしテキスト」と選択しますが、これでは手間がかかります。
マクロを登録すればよいのかもしれませんが、もっとスマートにできる方法がありましたら教えてください。

Aベストアンサー

こんにちは

私はテキストエディタを別に立ち上げておき,一度そこにペーストしてから再びコピーし
て,パワーポイントにペーストしています.
コピー&ペーストを2回繰り返すことになりますが,[型式を…]をやるよりは楽かなぁ~
と思っています.書式を無くしたいときはいつもこの方法を使っています.

[型式を…]のコマンドをツールバーに入れてしまうという方法もありますが,メニューか
ら選ぶという手間が省けるという程度です.

QExcelの自動計算(SUM関数)について

ExcelのセルにSUM関数をセットしています。
入力をするのですが、関数をセットしている
セルの計算がされません。

セルを選択し、ファンクション2キー押下後
Enterを押すと再計算され表示されます。

随時、関数対象セルに入力するとセットしたセルで
自動計算するにはどうしたら良いでしょうか?

Aベストアンサー

[ツール]→[オプション]
「計算方法」タブ
計算方法が「手動」になっていませんか?
「自動」にチェックを入れて OKを押してみてください。

QOutlookExpressの[eml]データを[msg]データに

メールデータについて教えて下さい。

通常OutlookExpressのメールデータを保存すると
拡張子が[eml]になりますが、
これをOutlookの[msg]に変換する方法は
ありますでしょうか?

理由は、取引先からメールデータを
[msg]で欲しいといわれたのですが、
私のメーラーはOutlookExpressのため
渡すことができません。

何か良い方法を教えて下さい。

Aベストアンサー

下記のサイトのソフトはいかがでしょうか?

参考URL:http://www.freedownloadscenter.com/Best/eml-convert.html

QExcel 自動計算の基点となるセルの優先順位は付けられる?

■Excel上、下記のような表を作ることは可能でしょうか?

セルがA,B,C,Dの4つあるとします。
セルに入力する内容は日付(2009/○○/○○)です。

A:手入力
B:自動計算(Aから5日後の日付)
C:手入力
D:自動計算(Cがブランクの場合はAから12日後の日付。Aに入力があってもCに入力がある場合には、Cから10日後の日付)

教えていただきたいのは、
Dにどのような計算式をいれるのかというところです。
ネットからは情報を見つけれらず、今回質問を出させていただきました。
Excelは初心者です。

Aベストアンサー

いや、だから・・・

=IF(C1="",A1+12,C1+10)

これだけの話ですよね。

ただ、これだけだとA1,C1ともにブランクの場合は、
1900/1/10が自動的に表示されちゃうので、例えば

=IF(C1="",IF(A1="","",A1+12),C1+10)

こんな風に逃げておくとか・・・ですね。

Qエクセル表示形式で[DBNnm1][$-FFFF]0となるのは?

アラビア数字を漢数字で表記(9105→九一〇五)するため「表示形式」、「ユーザー定義」で
[DBNnm1]0
と入力(詳しくはないのですが、このサイトで調べてそのようにしてみました)してファイルを保存しましたが、再びファイルを開いたときにそのセルの表示がアラビア数字に戻っており、表示形式が
[DBNnm1][$-FFFF]0
と変わっています。[$-FFFF]の部分は何を表しているのですか?
また、保存時のまま変わらないようにする対処法を教えてください。よろしくお願いします。

Aベストアンサー

「ユーザ定義」で”[DBNum1]G/標準”とやるだと思います。
この場合、9105->九千百五と変換されます。

9105->九一〇五と変換するには、関数を使わないと出来ないのではないでしょうか。

A1のセルに数字が入っている場合、A2のセルに以下の式を書きます。
=NUMBERSTRING(A1,3)

QExcelで90分後を自動計算

Excelで、入力した時刻に対して90分後を自動計算させたいのですが、
どのような式にしたらいいのでしょうか?

Aベストアンサー

A1セルに時刻が入っているとします。
=A1+90/24/60
で90分後の時刻が表示されます。

Q[3430514]を[昭和43年5月14日]と表示させたい

大量のデータを

3430514 > 昭和43年5月14日

という形式に変換、またはセルの書式設定で
変換したいです。

1文字目は、

1 明治
2 大正
3 昭和
4 平成

2文字目以降は年号・月・日という形式です。
なんとか手間をかけずに綺麗に整理できればと、
思うのですが、良いお知恵がありましたらお教え下さい。

Aベストアンサー

3430514がA1セルにあるとすれば

=CHOOSE(LEFT(A1,1),"明治","大正","昭和","平成")&MID(A1,2,2)&"年"&MID(A1,4,2)&"月"&RIGHT(A1,2)&"日"

これでOKなはず。

以下、式をオートフィルでコピーすれば大量のデータでも大丈夫です。


人気Q&Aランキング

おすすめ情報