例えば宅配便の配達希望時間を羅列した表があって、「20:00以降は“夜間配達”」と戻したいとき、IF関数を使用すると思います。
解説書によると、IFの式の条件には時刻の表示形式は使えないので「”」で囲み、「1」をかける。これで時刻表示がシリアル値になるため設定が早くなる。
とあるのですが、これだけでは意味がわからず質問させていただきました。下記の2点ほどご教示いただければ助かります。
(1)どうしてIFのの条件に時刻の表示形式は使えないのか?他の関数には使えるような気がするのですが。
(2)「”」で囲むのはなんとなくわかるとして、なぜ「1」をかけるのか。
シリアル値の知識(時刻の場合24時間を1で管理する)は一応あります。
No.1ベストアンサー
- 回答日時:
(1)IFの関数というより、数式に時刻を使用することができないのではないでしょうか?
これは想像するに、時刻表示には「:」(コロン)を使いますが関数では「:」は範囲を指定する時に使用しますよね(例:A1:A10)。ですから数式に時刻の「:」を認めると範囲指定なのか、時刻なのか、収拾がつかなくなってしまいそうです。
(2)””で囲んで1を掛ける、についてですが。
””で囲むと文字列として認識されますよね。しかし””の中が本来数値ならば1を掛けることによって、文字列ではなく数値として認識されることになります。そのために1を掛けて数式として成り立つようにするのです。
想像の部分もあり間違ってたらすいません。
この回答への補足
わかりやすい解説ありがとうございました。よーくわかりましたが、(2)でもう1点できたらお伺いしたいことがありまして。その前に・・・
(1)時刻を数式に入れても計算できると誤った認識を持っていたようです。IFに限らず、数式に時刻は使用できないのですね。それからなるほど「:」は範囲指定にも使われていますね。納得です。
(2)ためしに””で囲んで1を掛けずにやってみましたところ、空白となり答はでてきませんでした。””で囲んで1を掛けてやると、無事正解が出てきました。
ここでさらなる疑問が・・・””で囲んで1を掛けることによって、文字列ではなく数式として認識されるようになるのはどういう仕組みなのでしょう。理論などなく、ただ覚えておくといったたぐいのものでしょうか?
何度も申し訳ないのですが、よろしくお願いできれば幸いです。
No.3
- 回答日時:
私が過去の解答で何度も言っていることの、エクセル関数の本質に係わることの、私見を述べます。
>どうしてIFのの条件に時刻の表示形式は使えないのか
IF関数は、エクセルの「関数」です。関数の中で扱う番地は、番地のセルに入っている「値」を問題にしているものです。一部の番地以外の引数も値を問題にしてます。
書式やコメントやセルに付随するデータ(情報)は、色々あるのですが、その中の「値」(Value)だけを問題にします。それに伴って、IFも値を聞く風になっています。TRUE、FALSEも各ソフトや言語で値が決まっています。
(エクセルの将来バージョンでは、書式も聞けるようにMS社はするかも知れないが、プログラムなども関数は値を返すのがいまは主流か。)
表示形式で変換している見た目の状態は、「値」ではありません。特に日付、時刻で相違が顕著です。
時刻もエクセルは24時間を1とする値で持ってますから
値で聞かないとなりません。
更に聞くなら、12時間を0.5と聞くので無く、もう少し時間らしく表現できないかと言う質問はありえます。
それは"12:00"です。0.5を12時と名前をつけておく方法とかもありそう。
>後半
=1+"12:00"
をやって見てください。1.5になりました。
*1しなくても良いようです。
エクセルの中で変換してくれていると考えなくても良いのでは。"12:00"で0.5と言う数値と扱うで良いのではないでしょうか。*1しても結果は変わらないのですが。
No.2
- 回答日時:
こんにちは。
maruru01です。No.1の方の補足になりますが。
>(2)「”」で囲むのはなんとなくわかるとして、
>なぜ「1」をかけるのか。
EXCELは、数値として認識出来る文字列を、四則演算の中に入れてやると、自動的に数値に変換してくれます。
時刻も、シリアル値という数値なので、四則演算の中に入れてやれば、数値に変換されます。
その数値に変換する方法の1つが「1を掛ける」ということです。
つまり、
"20:00"*1
ということです。
で、要点は値を変化させずに四則演算してやればいいわけですから、
"20:00"/1
"20:00"+0
"20:00"-0
--"20:00"
でもいいわけです。
(「--」は「(-1)*(-1)」、つまり-1を2回掛けるということです。)
さらに、関数を使用して、
VALUE("20:00")
TIMEVALUE("20:00")
でも出来ます。
(ただし、TIMEVALUEは24時間超には対応出来ません。)
ちなみに、
=IF(A1>"20:00","夜間配達","")
はだめですが、
=IF(A1-"20:00">0,"夜間配達","")
なら、うまくいきます。
これは先にA1との引き算(四則演算)をして数値(シリアル値)に変換されるからです。
>他の関数には使えるような気がするのですが。
少なくとも、「""」で括らずに使える関数はないはずです。
数式の手入力はもちろん、関数パレット上でも、
「"20:00"」
のようにしないとだめだと思います。
で、この場合は関数が自動的に数値(シリアル値)に変換してくれます。
解説ありがとうございます。
No.1さんにさらに、理論的にどうして「1」を掛けると数値として認識されるのかご質問させていただいたのですが、お答えいただいた下記の部分が少しヒントになりました。
>ちなみに、
=IF(A1>"20:00","夜間配達","")
はだめですが、
=IF(A1-"20:00">0,"夜間配達","")
なら、うまくいきます。
これは先にA1との引き算(四則演算)をして数値(シリアル値)に変換されるからです。
>要点は値を変化させずに四則演算してやればいいわけですから、
"20:00"/1
"20:00"+0
"20:00"-0
--"20:00"
でもいいわけです。
なるほど!そうですね。大変勉強になりました。お世話になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 出退勤管理の遅刻・早退時間について 3 2023/08/10 15:33
- その他(教育・科学・学問) エクセル関数について 2 2022/12/23 08:59
- Excel(エクセル) 出退勤管理の早退時間について 4 2023/08/21 15:22
- Excel(エクセル) VBAで “:” を含むセルの特定 2 2023/05/11 16:30
- Excel(エクセル) エクセルの数式について教えて下さい。 8 2023/05/27 12:17
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
- Excel(エクセル) 下記エクセルの式がなぜこうなるのか理由が知りたいです。 6 2022/08/20 00:43
- Excel(エクセル) エクセルの関数に関しての質問です。 5 2022/10/07 11:17
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- 仕事術・業務効率化 IF関数で時間指定をして、数値を切り上げたいです 1 2022/05/01 23:37
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
IF関数で、時間を条件にしたい場合の式について
Access(アクセス)
-
[IF文] 「何時〜何時」で該当する時間を表示したい お疲れ様です。お知恵をお借りできればと思います
Excel(エクセル)
-
エクセルで時間の判定をしています。0時以上5時以下の場合は○と判定したいので、以下のイフ関数を試しま
Excel(エクセル)
-
-
4
エクセルで表示形式の時刻の「0:00」を表示しないようにするには?
Excel(エクセル)
-
5
IF文に時間(何時から何時まで)の条件文を付けたい
Word(ワード)
-
6
8時間以上だったら1時間マイナスする関数
Excel(エクセル)
-
7
時間範囲(午前/午後/夜間)のIF関数について教えてください
Excel(エクセル)
-
8
エクセル条件付書式で指定の時間が過ぎていたらフォントの色を変える
Excel(エクセル)
-
9
A1セルに入力したら、入力時間をA2セルに自動挿入
Excel(エクセル)
-
10
時間を「昼間」と「夜間」に分けて表示させたい。
Excel(エクセル)
-
11
エクセルで、時間 0:00を表示する方法
Excel(エクセル)
-
12
複数の休憩時間がある場合の休憩時間の算出方法
Excel(エクセル)
-
13
Excelの関数で時刻を固定する方法
Excel(エクセル)
-
14
31:30:00が1900/1/1 7:30:0
その他(Microsoft Office)
-
15
エクセルの時間外勤務時間と深夜時間を自動割り振りできる計算式を教えてください
Excel(エクセル)
-
16
エクセルで時間帯を 深夜、日中、夜間としたい
Excel(エクセル)
-
17
Excelで所定の時間前後何分以内か判定するにはどうしたらよいでしょうか?
Excel(エクセル)
-
18
excel関数 変動する休憩時間等を計算する
ソフトウェア
-
19
有無、要否、賛否、是非、可否、当否…これらの言葉について
その他(教育・科学・学問)
-
20
エクセルで00を表示するには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
中出しをするとお腹が痛い・・・。
-
麻疹風疹の抗体検査結果につい...
-
彼女のことが好きすぎて彼女の...
-
検便についてです。 便は取れた...
-
勃起する時って痛いんですか? ...
-
至急!尿検査前日にオナニーし...
-
納豆食べた後の尿の納豆臭は何故?
-
白血球が多いとどんな心配があ...
-
エクセルでエラーが出て困って...
-
精子が黄色?
-
健否~書類の書き方~
-
口の中に黒い血の塊
-
はしかの抗体検査は何科の病院...
-
これって喉仏ですか? 私は女性...
-
甲状腺が腫れているが血液検査...
-
舌の裏の痛みのないプツプツの...
-
イタリアから帰国する際、肉製...
-
小数点以下を繰り上げたものを...
-
風俗店へ行く前のご飯
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
エクセルでエラーが出て困って...
-
中出しをするとお腹が痛い・・・。
-
白血球が多いとどんな心配があ...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
EXCELで条件付き書式で空白セル...
-
勃起する時って痛いんですか? ...
-
納豆食べた後の尿の納豆臭は何故?
-
精子が黄色?
-
至急!尿検査前日にオナニーし...
-
小数点以下を繰り上げたものを...
-
これって喉仏ですか? 私は女性...
-
値が入っているときだけ計算結...
-
口の中に黒い血の塊
-
舌の裏の痛みのないプツプツの...
-
甲状腺が腫れているが血液検査...
-
Excelで""で囲む方法
-
健否~書類の書き方~
-
リンク先のファイルを開かなく...
おすすめ情報