web-dev-qa-db-ja.com

Excelでテキスト値を時間値に変換する

テキストを時間に変換しようとしています。基本的に私は従業員の合計時間をコピーして貼り付けましたが、テキスト値として貼り付けた後、時間を時間に変換する必要があり、各セルでF2を押す必要があります(多くの従業員の場合は多くのセル)そして、これは本当に給与を取得するための時間を追加します。テキスト値から時間値にすばやく変換するために私が実行できる機能を知っていますか?

9
Jessica

外部ソースからデータをワークシートに貼り付けた場合(Webページはこれは恐ろしいことです)、数値、日付、および/または時刻は、実際の数値、日付、または時刻ではなく、テキスト表現として表示されます。通常、最も速い方法は、列を選択し、[データ]►[テキストから列へ]►[固定幅]►[完了]を選択します。これにより、Excelはテキスト値を再評価する必要があり、疑似番号を実際の数値に戻す必要があります。

これがテキストまたはカスタムとしてフォーマットされたセルに貼り付けられた数式で発生する場合は、最初に列をGeneral形式に設定し、次にCtrl + Hを使用して次を検索します:=および置換:= =そしてExcelは各セルの内容を再評価し、数式のように見えるテキストを演算式に置き換えます。

一般的な意味で注目に値する1つの特定の状況は、日付時刻のテーブルセルが2行目に折り返されないように、Webページで一般的なノンブレークスペース文字(ASCII 160または0xA0)の使用です。単純に取り除くことができないように見えるスペースがある場合は、Ctrl + Hを使用して、改行しないスペースを従来のスペースに置き換える(または何もしない)。テンキーの0・1・6・0をタップしながら(Num Lockをオンにして)Altキーを離すと、Altキーの1つを押し続けると、キーボードで改行なしスペースを生成できます。

5
Jeeped

たとえば、セル8:00J42のようなテキスト値がある場合は、

=TIMEVALUE(J42)

セルK42に入力すると、Excelの日付/時刻値が8時間になります。デフォルトでは0.33333333として表示されます(8時間は1日の⅓であるため)が、時刻値として表示するようにフォーマットすることができます。また、必要に応じて、列Kをコピーし、列Jに値を貼り付けて、テキスト値を削除し、日付/時刻値のみを保持することもできます。

TIMEVALUE()は負の値を処理しません。 -8:00のようにデータに負の時間が含まれる可能性がある場合(以前に入力したデータにタイムシートの修正やその他の調整があるため)、-を明示的に処理する式が必要です。

=IF(LEFT(J42,1)="-", -TIMEVALUE(RIGHT(J42,LEN(J42)-1)), TIMEVALUE(J42))

11:42:47.294この式を使用できます:

=TIME(MID(B13,SEARCH(":",B13,1)-2,2),MID(B13,SEARCH(":",B13,6)-2,2),MID(B13,SEARCH(":",B13,6)+1,6))
2
user455717

Substitue関数とTimeValue関数を組み合わせて、余分なスペースや他の文字を削除して、適切な形式の時間を残すこともできます。

EX

=TIMEVALUE(SUBSTITUTE(A1," PST","")) 

末尾のスペースと「PST」を取り除き、TimeValue関数が「11:58 AM PST」を含むセルA1で機能できるようにします

1
Lucienp

式がない場合(時間値の前に等号がない)、最初の検索/置換ソリューションを利用することもできますが、次のように検索します:AMと置換:AM、次に検索:PM and交換:PM。

これにより、Excelはテキスト値を時間値に再評価します。

0
Stven2212

すべてではなく、列全体を強調表示してみてください。次に、Text to Columnsをクリックします。奇妙に聞こえます、私は知っています。次に、[完了]をクリックします。それは魔法のように時間や日付を通常の時間や日付に...テキストに対して変換します。

0
Will Sargent