0

これが私がトラブルシューティングしようとしている機能です。

=IFERROR(IF(OR(B40="",B41="",B42="",C40=""),"フォームに入力してください。",IF(D40<>"",IF(AND(D40<> "",D40<"20:00"),15,IF(AND(D40>="20:00",D40<="24:59"),10,IF(AND(D40>="25:00") ",D40<="29:59"),5,IF(AND(D40>="30:00",D40<="35:00"),-5,IF(D40>"35:00", -10,""))))))),"")

コンテキスト: 一連のトレーニング イベントのスコアリング ワークシートを作成しています。トレーニング活動で特定の行動を促すために、ゲーム理論と行動経済学を少し使用しています。これは、従業員がローロープ コース (モチベーションを高めるチーム ビルディング アクティビティなど) をどれだけ速く完了できるかを確認するための時間制限のあるドリルです。

「引用符」で囲まれたタイム スタンプ (例: 「20:00」) は、受講者がコースを完了するのにかかった時間です。この数値は、ドリルを開始した時間と完了した時間 (例: 午前 10 時 45 分 - 午前 10 時 36 分) の差を取得している別のセルによって生成されています。

問題は、入れ子になった IF 関数の期間を引用符で囲むと、Excel が混乱することです。数字ではなくテキストとして見ていると思います。これがキッカーです。引用符を削除すると、Excel は時間範囲の一部を行の範囲 (たとえば、24:59) として解釈します。ネストされた IF 関数を取得して、引用符で囲まれた期間をテキストではなくタイムスタンプとして表示するにはどうすればよいですか?

4

1 に答える 1

1

はい、その通りです。「20:00」は数字ではなくテキスト文字列です。希望どおりに機能させるには、次のいずれかを実行できます。

  1. 時間を引用符で囲んで「強制」します。例:「20:00」+0、「20:00」* 1
  2. 10進数に相当するものを使用してください-20時間は20/24です
  3. VALUE関数を使用します。例:VALUE( "20:00")

編集:「20:00」は20時間だと思っていましたが、20分ですか?もしそうなら、トニーが彼のコメントで示唆しているようにTIME関数を使用することができます.....または上記を実行しますが、20分間「0:20」+0に変更します..(「20:00」はExcelによって20として解釈されます時間...)

LOOKUPこれは、 ...を使用して同じことを行う方法です。

=IFERROR(IF(OR(B40="",B41="",B42="",C40=""),"Complete the form.",IF(D40="","",LOOKUP(D40*1440,{0,20,25,30,35;15,10,5,-5,-10}))),"")

于 2012-03-06T20:52:32.933 に答える