いつもお世話になっております。
エクセル2003で、以下のように作りましたがif関数がうまく働きません。
B1~AF1に各月1~31日の休憩時間を入力し、B2には遵守しているかの欄にします。
B1が20分を超える場合「×」そうでなければ「○」とB2~AF2に表示したいのです。
A2には基準値として :20:00 を入力しました。
B2には if(B2>A2,"×","○") を入力しました。
しかしB1が20分未満「:01:00」等の場合でも「×」と表示されてしまいます。
元々B1の休憩時間は別シートからVLOOKUP関数で呼び出す式が入っていたので
関数を消して直接「:01:00」と入力し、セルの書式をユーザー書式「h:mm:ss」にしたり「時刻」にしたり試しましたが「×」のままです。
A2も同様セルの書式を変えましたが同じです。
時間は「h:mm:ss」の状態で、元ファイルから呼び出され、秒単位の表示なので、
B1はできれば10進数は使わずこの表記の状態にしたいと思います。
またA2の基準時間は、手動で60分にすることもあるので、A2のセルも利用できればと思います。
ネットで検索すると「時間は大小比較ができない」とあったのですが、
ここから先どうすればいいか行き詰っています
別の関数を3行目以降に追加しても構いません。
何かいい方法がないでしょうか。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
>A2には基準値として :20:00 を入力しました。
まず基本事項として,「:20:00」や「:01:01」といった時刻の記入の仕方はありません。
時刻や時間数を記入するときは,「0:20」(ゼロ時間20分)や「0:01:00」(ゼロ時間1分00秒)のように記入します。
手順:
A2の書式設定を時刻にする
A2に改めて
0:20 (20分のことです)
あるいは
1:00 (60分のことです。もちろん)
を記入する
1行目を時刻の書式設定にする
B1に
0:10
を必ず改めて記入する
B2に
=IF(B1>$A2,"×","○")
と式を記入し,どっちが大きければ○や×なのか再確認してから結果を確認する。
さらに
1行目に元の数式を記入し,値を参照してくる
その状態で1行目のセルの書式設定を「標準」に戻し,「正しい時間の数値」がキチンと計算されているか再確認する
#時間の数字とは
たとえば0:20と記入したセルに「標準」の書式設定を付け直すと
0.013888889
という値が現れます。これが正しい時間の数値です。
もしもこの操作をしたときに関数の表示が例えば「:20:00」などのように現れたとしたら,計算式で参照した元のデータから間違っていますので,元からキチンと直します。
正しく時刻の値で引っ張ってこれていることが確認できたら,1行目を時間の表示に設定し直します。
回答ありがとうございました。
1ステップずつ修正方法を記載いただきありがとうございました。
実は最初「20:00」で試したのですがうまく反応せず、
B1~にてvlookup関数がひっぱってきた数値が「:20:00」のような表記だったので、
「:20:00」という表記でないのが間違いなのかと思っていました
もう一度最初からご指摘の方法で修正してみます。
ありがとうございました。
No.2
- 回答日時:
二つの大きな間違いをしていますね。
1つは時間を入力する場合には20分でしたら0:20:00のように入力することです。お示しの場合は:20:00のように入力していますがそれではパソコンでは時間として認識していません。時間はパソコンでは数値として認識されなければなりませんが:20:00のような入力では文字列として認識されて、その後に表示形式を変えるといった操作をしても全く意味がありません。
二つにはIF関数の式でif(B2>A2,"×","○") とB2セルに入力していますが、B2セルに入力するのにB2を式に入れることはできません。=IF(B$1>$A2,"×","○")の間違いでしょう。
Aに$を付けているのはB2セルに入力した式を横方向にオートフィルドラッグしても$A2の表示が変わらないようにするためです。B$1としているのは下の方向にオートフィルドラッグ操作をしてもB$1が変わらないようにするためです。
ところでどうしても現在のままのデータでお望みのようなことをしたいということでしたらB2セルには次の式を入力して右横方向にオートフィルドラッグします。
=IF(OR(B$1="",$A2=""),"",IF(TIMEVALUE(0&B$1)>TIMEVALUE(0&$A2),"×","○"))
回答ありがとうございます。
#1の方にも書いたのですが、
実は最初「20:00」で試したのですがうまく反応せず、
B1~にてvlookup関数がひっぱってきた数値が「:20:00」のような表記だったので、
「:20:00」という表記でないのが間違いなのかと思っていました
あとご指摘のとおり、B2にいれた式は。=IF(B1>$A2,"×","○")です。
このサイトで記載する時に間違いました。質問をややこしくしてすみません。
最後に書いていただいた式で一度試してみたいと思います。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【再度】Excelの関数について教えてください。 4 2023/07/28 13:06
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Excel(エクセル) Excelの関数について教えてください。 5 2023/07/28 11:27
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) エクセル関数について 2 2022/04/13 18:25
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
- Excel(エクセル) 至急です><Excelの関数を教えてください。 2 2022/03/22 17:56
- Excel(エクセル) マクロ/VBAについて教えてください。 10 2022/05/27 12:59
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
VBA
-
英数字のみ全角から半角に変換
-
会社のTeamsのことで相談です。...
-
office2010とoffice365の共存で...
-
office365って抵抗感ないですか?
-
Excel関数について質問ですm(__)m
-
会社PCのメールが更新されない
-
マイクロソフト 一時使用コード...
-
Microsoft365で写真をアルバム...
-
自分の専門分野の仕事。初見で...
-
2つのシートの一致する行のセ...
-
Microsoft Formsの「個人情報や...
-
エクセルにリンクされるのをし...
-
Excelについて
-
エクセルで串刺ししたシートの...
-
学校を卒業したため、学校側か...
-
Office2021を別のPCにインスト...
-
【Excel VBA】PDFを作成して,...
-
エクセルでXLOOKUP関数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
マイクロソフト 一時使用コード...
-
outlookのツールバーが縦になっ...
-
【Excel】セル内の文字が正しい...
-
Excel テーブル内の空白行の削除
-
Microsoft 365 Apps for busine...
-
Microsoft Formsの「個人情報や...
-
【スプレッドシート】指定の日...
-
office2010とoffice365の共存で...
-
web上にあるエクセルをショート...
-
英数字のみ全角から半角に変換
-
Excel データの並び替えについて
-
何文字超えたファイルだけを抽...
-
エクセルマクロ(超初心者)
-
Microsoft Officeを2台目のPCに...
-
パソコン買い換え Office移行 ...
-
【スプレッドシート】白色のセ...
-
会社PCのメールが更新されない
-
IF(EXACT(B1,B2),"一致","不一...
-
http://oshiete.goo.ne.jp/qa/1...
おすすめ情報