- ベストアンサー
エクセルの関数を訳してほしいのですが
関数苦手ですが便利なので活用したいので すみませんが宜しくお願いします。 =IF(I3<>0,I3,DAY(TODAY()-1)) 訳すとどういうことでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
IF関数は次のように定義します。 =IF(論理式,Yesのときの処理,Noのときの処理) 提示の数式で論理式は I3<>0 ですからI3セルの値が0でないときがYesのときの処理でI3の値を適用し、I3が0または未入力(セルに何も入力されていないときは0と判断される)のときはDAY関数の結果を適用されます。 DAY関数は次のように定義します。 =DAY(日付の値(年/月/日)から日の数値のみ取り出します。 提示の数式でDAY関数の日付はTODAY関数の値から1を減じた値です。 TODAY関数では参照する値がありませんので括弧内は何も記載しません。 TODAY関数は今日の日付を返しますが、その値はPCの内臓時計から取り込んでいます。 =TODAY()-1 の結果は昨日の日付になります。
その他の回答 (4)
- A88No8
- ベストアンサー率52% (836/1606)
こんにちは #4への補足です。 書き忘れてしまいましたが、エクセルが表現出来る日付の限界は「9999/12/31」と決まっています。 数値で表すと2,958,465です。 エクセル自体はもっと大きな数値を扱えるのですが、きっと「今のところ西暦9999年まであれば十分でしょ」ということなのでしょう(^^;
- A88No8
- ベストアンサー率52% (836/1606)
こんにちは #2の補足への回答です。横入りでごめんなさいm(^_^;m >もし、昨日の日付が31日のときで >今日の日付が1日だとすると、 >どうなってしまうのでしょうか? なるほど、確かに疑問がわきますよね。月が変わっているのに1日減じて正しいのか? それを考えるには、まず基本的にコンピューターが扱うあらゆるデータは2進数という数値だけなので、その数値に対して実際に利用する上で考えやすいように用途別に「型」付けを行なっていることを知らないと。 質問者さんの疑問は「日付型」という2進数の型のことなのです。 例えばセルに数値「0」を入れてセル書式を標準型から日付型に変更すると… 「1900/1/0」とあり得ない日付が出てきますけれど、この日から数値で1増えるごとに日付が連続的に進んでいるのです(マイクロソフトでは、この日付型数値のことをシリアル値と呼んでいるようです)。 質問の回答ですが「2014/9/1」を日付型から数値型に戻すと「41,883」になります。 そこから1を減じて「41,882」にした上で日付型に戻してやると… あ~ら不思議でもなんでもなく「2014/08/31」と一日前に戻ります。 日付は天文学の進歩により「計算で求めることが出来る」ようになったのでこんな仕組みが考えられたのですね(^^)v P.S. どんな計算式で日付を求めるのかは下記のURLを参照してくださいm(__)m ★グレゴリオ暦 http://ja.wikipedia.org/wiki/%E3%82%B0%E3%83%AC%E3%82%B4%E3%83%AA%E3%82%AA%E6%9A%A6
- keithin
- ベストアンサー率66% (5278/7941)
I3がゼロと等しくなければI3 そうでないとき(ゼロと等しいとき)は「昨日の日付」を計算する #昨日の日付は、今日の日付-1とは違います。
お礼
ご回答ありがとうございます。
補足
もし、昨日の日付が31日のときで 今日の日付が1日だとすると、 どうなってしまうのでしょうか? ピンと来てなくてすみません。 宜しくお願いします。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 素直に・・・ もしI3セルが0以外であれば(空白以外であれば)、I3セルのデータをそのまま返す。 そうでない場合(I3セルが0の場合=空白の場合)は 今日の日付「6」から1を引いた値すなわち「5」を返す。 といった関数です。m(_ _)m
お礼
ご回答ありがとうございます。
お礼
ありがとうございます。 とても分かりやすいです。