web-dev-qa-db-ja.com

Googleスプレッドシートでの期間の書式設定

ここでいくつかの問題:

  1. 期間(例7:51)がベースライン期間の値より大きいか小さいかを判断しようとする数式があります。数式を入力するとき、ベースライン番号を引用符で囲む必要があります

    ex =IF(B3="SB",IF(AND(I3<"13:01",J3>49,K3>49,L3>5,M3<"12:01"),"P","F")

    それ以外の場合、式は私がセルの範囲を指していると考えています。この方法でエラーが発生することはありませんが、入力した時間がベースラインより短いか長いかに関係なく、式は正しく機能しません。同じ結果が生成されます。

  2. コロンなしでデータを入力し、代わりにピリオドでmin:secを分離することで数式を機能させることができますが、この方法で物事を行うのは不満です。 「min:sec」である真のフォーマットを使用してデータを入力できるようにしたい。

ここでの答えは、セルをフォーマットしてデータを表示する方法の範囲内にあるように感じますが、多くのオプションを試しましたが、どれもうまくいかないようです。私はスクリプト編集の経験がまったくないので、これはまだ検討されていない別の方法であり、ロックを解除できる機能もわかりません。

2
Cory Hooper

Googleスプレッドシートでは、13分1秒の時間が次のように数式バーに表示されます

00:13:01.000

上記の値を13:01として表示するには、[形式]> [その他の形式...]をクリックしてカスタム形式を適用し、次のmm":"ssを適用します

一方、Googleスプレッドシートの数式では、日付、時刻、期間の値を直接書き込むことはできません。代替手段は

  • セルに日付/時刻/期間を記述し、式でそのセルへの参照を使用します

IF(AND(I3<A1,J3>49,K3>49,L3>5,M3<A2),"P","F")

  • 対応する日付、時刻、または期間を返す関数を使用します。次の例では TIMEVALUE を使用します

IF(AND(I3<TIMEVALUE("0:13:01"),J3>49,K3>49,L3>5,M3<TIMEVALUE("0:12:01")),"P","F")

  • 日付、時刻、または期間に対応するシリアル番号を書きます。次の例では、13分1秒は0.009039351852で、12分1秒は0.008344907407です

IF(AND(I3<0.009039351852,J3>49,K3>49,L3>5,M3<0.008344907407),"P","F")

1
Rubén

数式で期間を使用するには、 TIME 関数を使用します

TIME(hours,minutes,seconds) 

またはあなたの場合

TIME(0,13,1)

数式全体:

=IF(B3="SB",IF(AND(I3<TIME(0,13,1),J3>49,K3>49,L3>5,M3<TIME(0,12,1)),"P","F")
0
mhoran_psprep