『タイムをif関数(多重)を用いて数字を表示させたい』(Bulls)
if関数(多重)について質問させていただきます。
タイムが1時間〜3時間40分に収まっていれば「7」と表示。
0時00分過ぎをカウント開始するので、出力値を気にしないでください。
ネットで検索してみましたが、解決策が見つからず…、投稿させていただきました。
=if(タイム>"1:00"*1,タイム<"3:40"*1,"7",if(タイム>"3:40",タイム<"5:40"*1,"8",if(タイム>"7:45"*1,タイム<"9:45","1",if(タイム>"9:45"*1,タイム<"11:45","2",if(タイム>"12:45"*1,タイム<"14:45","3",if(タイム>"14:45"*1,タイム<"16:45","4",if(タイム>"19:30"*1,タイム<"21:45","5",if(タイム>"21:45"*1,タイム<"0:00","6"))
間違っている箇所を教えていただけますか。
よろしくお願いいたします。
追伸
厚かましいですが、もっと簡略できるのであれば、教えていただけると嬉しいです。
< 使用 Excel:unknown、使用 OS:unknown >
(?) 2026/01/07(水) 12:01:41
既に指摘のある通り、 • そもそものif関数の使い方から誤っています • タイムとは? →結論、何がしたいのか意味不明です。
"1:00"*1は「*1することで数値(時刻)にキャストできる」 という知識だけで書いているのでしょうが、最初から自分で記入するのに わざわざ一度文字列で書いてキャストしているのは意味不明です。 既出のようにTIME関数などの「元から時刻として扱える」データを使用してください。
If関数の引数は3つです。if(条件式,Trueの場合の値,Falseの場合の値)です。 あなたの例では引数が4つあることになっています。 • タイム>"1:00"*1 • タイム<"3:40"*1 • "7" ※ここを文字列にしているのも謎 • if(…..
そして第二引数は条件式ではありません。 • タイム<"3:40"*1 これはTrue/Falseを値として返す式でしかなく 第二引数に書いている以上、その後のifの判定には使用できません
(Asa) 2026/01/07(水) 16:00:36
(?)さん >=IF(OR(A1>=TIME(1,0,0), A1<=TIME(3,40,0)), 7, "") だと論理式はTRUEにしかなりません 2条件を満たすならANDです
複数の条件をIF関数で分岐する場合は IF(論理式,値が真の場合,値が偽の場合) 値が偽の場合にIF関数をネストする IF(論理式,値が真の場合,IF(論理式,値が真の場合,値が偽の場合)) 複数の条件で分岐する場合の論理式は 比較条件が最も小さい値から順に大きい値 比較条件が最も大きい値から順に小さい値 で比較すると可能ですが 検索範囲(タイム)が昇順の対応表を作成して VLOOKUP(検索値, 範囲, 列番号, [検索の型]) 検索の型をTRUEにすると近似値で検索出来ます (はてな) 2026/01/07(水) 16:09:04
こんな数式で行けそうな気がする。
=LOOKUP(タイム+(タイム-"7:45"<0),{"7:45";"9:45";"11:45";"12:45";"14:45";"16:45";"19:30";"21:45";"24:00";"25:00";"27:40";"29:40"}*1,{1;2;"";3;4;"";5;6;"";7;8;""})
(半平太) 2026/01/08(木) 00:20:05
指摘ありがとうございます。
もう一度、基本から勉強し直して作り直します。
(Bulls) 2026/01/08(木) 08:42:07
既に保留扱いにされていますが、メモしておいたものを参考までに。
(1) 今のものではエラーになると思いますが、そのエラーメッセージをどう解釈していますか? 「この関数に対して、多すぎる引数が指定されています。」
既に指摘があるように、IF関数の基本は、 =IF(条件判定式, Trueの時の適用式, Falseの時の適用式) :適用式には値を含む という形式です。 (ただし、場合によっては、2番目や3番目の引数に、IF関数を使う、いわゆる「入れ子」にすることもできますが、 基本的な構図は上記のとおりです。)
あなたの式では、 ・条件判定式が タイム>"1:00"*1 ・Trueの時の値が タイム<"3:40"*1 ・Falseの時の値が "7" と解釈され、 以下の、if(タイム>"3:40",・・・は、過剰な引数と判断されてエラーになります。 IF関数の基本のところから間違っています。
(2)またカッコの数が対応していません。質問の前にご自分で確認できるはずです。
(3)質問にあたっては、使用しているExcelのバージョンを書いて下さい。
使える関数が変わってきます。(例えば、こういう場合には IFSと言う関数も用意されています。)
(4)何をしたいのかを他人にわかるように、コードではなく、日本語で箇条書きにすると双方で行き違いがありません。
(コードは間違っていて頼りになりません。
また、全て "<" か ">"になっていますが、ジャストのものはどうなんですか?)
基本から復習することに賛成です。例えば、下記の記事も参考になるでしょう。
IF 関数 https://support.microsoft.com/ja-jp/office/if-%E9%96%A2%E6%95%B0-69aed7c9-4e8a-4755-a9bc-aa8bbff73be2
IF 関数 – 入れ子になった式と問題の回避 https://support.microsoft.com/ja-jp/office/if-%E9%96%A2%E6%95%B0-%E5%85%A5%E3%82%8C%E5%AD%90%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%9F%E5%BC%8F%E3%81%A8%E5%95%8F%E9%A1%8C%E3%81%AE%E5%9B%9E%E9%81%BF-0b22ff44-f149-44ba-aeb5-4ef99da241c8
(xyz) 2026/01/08(木) 14:21:54
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.