Excel - 日数 hh:mm:ss を分数に変換 (負の値も含む)

Excel - 日数 hh:mm:ss を分数に変換 (負の値も含む)

次の形式(つまり、日、時間、分、秒)でデータが与えられます。

-4 1:0:0.0

これを Excel で分数に変換するにはどうすればよいですか? (例: 5820 分)

現在、テキストを列(日数列、hh:mm:ss列)に入力し、=([@Days]+[@Hours])*24*60; を実行していますが、日数が負の場合(例:-5700)に間違った値が生成されます。

誰かエレガントな式を持っていますか?

答え1

データには常に時間(ゼロの場合でも)があり、スペースがあると仮定して、この数式を使用してA1の元のデータから分を抽出します。

=(LEFT(A1,FIND(" ",A1))+MID(A1,FIND(" ",A1)+1,20)*IF(LEFT(A1)="-",-1,1))*1440

この例では -5820 が返されるはずですが、これは予想される結果ですか、それとも常に正の値が必要ですか?

答え2

abs 関数を日へのセル参照の周りにラップします。たとえば、日が A1 に保存されている場合は、A1 を に置き換えますabs(A1)。これにより、符号なしの数値が自動的に返されるため、負の数値は正の数値として返され、関数が適切に機能します。

私はあなたのためにこれをやります。しかし、あなたのスプレッドシートがどのように設定されていて、どのようなセル形式を使用しているかはわかりません。スプレッドシートの(関連部分)を質問に添付して(Dropbox や Mediafire などにアップロードして)いただければ、私はそれをやります。

答え3

(Chris が列名を示すために @ をどのように使用しているか理解できません。私にはうまくいきません。私のソリューションでは、各列は名前付き範囲 (Days と Hours) であり、範囲名だけが数式に表示されます。)

ここで注目すべきは両方列には数字が含まれています。時間列には分数が含まれています。時間としてフォーマットされているため、24時間の期間の分数として解釈されます。これは正しいはずです。そうでなければ、数式は

 =(Days+Hours)*24*60

正の値であっても、何も役に立ちません。

ここで、常に両方が正か両方が負の値を加算しています。Days 値は常に正しい符号を持ちますが、Hours 値は負であるべき場合でも常に非負です。したがって、Days が負の場合は Hours 値を変更する必要があります。

 =(Days+IF(Days>=0,Hours,-Hours))*24*60

関連情報