• ベストアンサー

エクセルの関数を訳してほしいのですが

関数苦手ですが便利なので活用したいので すみませんが宜しくお願いします。 =IF(I3<>0,I3,DAY(TODAY()-1)) 訳すとどういうことでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

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)
回答No.5

こんにちは #4への補足です。  書き忘れてしまいましたが、エクセルが表現出来る日付の限界は「9999/12/31」と決まっています。  数値で表すと2,958,465です。  エクセル自体はもっと大きな数値を扱えるのですが、きっと「今のところ西暦9999年まであれば十分でしょ」ということなのでしょう(^^;

  • A88No8
  • ベストアンサー率52% (836/1606)
回答No.4

こんにちは #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

Vabi
質問者

お礼

ありがとうございます。 とても分かりやすいです。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

I3がゼロと等しくなければI3 そうでないとき(ゼロと等しいとき)は「昨日の日付」を計算する #昨日の日付は、今日の日付-1とは違います。

Vabi
質問者

お礼

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

Vabi
質問者

補足

もし、昨日の日付が31日のときで 今日の日付が1日だとすると、 どうなってしまうのでしょうか? ピンと来てなくてすみません。 宜しくお願いします。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 素直に・・・ もしI3セルが0以外であれば(空白以外であれば)、I3セルのデータをそのまま返す。 そうでない場合(I3セルが0の場合=空白の場合)は 今日の日付「6」から1を引いた値すなわち「5」を返す。 といった関数です。m(_ _)m

Vabi
質問者

お礼

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

関連するQ&A