2

スプレッドシート (Excel の Office 2007 バージョン) には、負の時間値であるテキスト エントリがいっぱいあります。たとえば、"-0:07" のように、従業員が仕事を完了するのに予想よりも 7 分もかかりませんでした。これらのエントリに対して数学的計算を実行する必要があり、これまでに思いついたよりも洗練された式/方法を探しています。

1904年の日付システムと*または/を前後に変換することについて知っていますが、問題は、テキスト入力を負の時間値として認識する式を取得することです。

私は value(), *1 を試しました。数値が正の場合、どちらもテキスト フィールドで機能しますが、"-" がそれらを台無しにしているようです。paste-special/add でさえ、これらを数字として認識できません。

これが私が思いついたもので、仕事を成し遂げますが、それは私にはとても醜いです:

=IF(LEFT(E5,1)="-",((VALUE(RIGHT(E5,LEN(E5)-1)))*-1.0),VALUE(E5))

明らかに、私のテキスト エントリは、この例ではセル E5 にあります。

これは機能するので、解決策を切望しているわけではありませんが、教育目的(および小さなコード)のために、これにより良い方法があるかどうかを知りたいです. 短くて簡単なものの提案はありますか?

ありがとう。

PS - ここで興味深い情報です。職場では Excel を使用していますが、自宅では使用していないため、サンプル スプレッドシートを Google ドキュメントにアップロードすると、これらのエントリの Value() コマンドが実際に適切に処理されます。変でしょ?

ご提案いただきありがとうございます。

4

1 に答える 1

2

Excel は、セル内の期間を処理しません。時間のみを扱います。「00:07」を実行すると、1900 年 1 月 1 日の午前 12 時 7 分と同じ 0.0048611 に変換されます。したがって、2 分から 7 分を引くと、せいぜい午後 11 時 55 分になります。

あなたがそれを行う方法は唯一の方法です。

于 2012-07-13T14:49:59.330 に答える