エクセルで時間分秒表記から秒を消したい場面は多々あるかと思います。
エクセルには、関数を使ったり書式設定で秒を消す・削除方法がありますので、今回はその方法についてご紹介します。
なお、マクロコードも併記しておりますので、好みの方法で処理してみてくださいませ♪
エクセルで時間分秒表記から秒を消す・削除する方法【関数の使用】
エクセルの時間表記から秒を消すには、TIME関数とINT関数を組み合わせて使用します。
例えば、B2セルに12:34:56となどという時間がh:mm:ssの形式で入力されているとします。
形式が違う場合は、セルをクリック、書式設定、ユーザー定義から以下の記載を適用するといいです。
その上で、C2セルに以下の数式を入力します。
=TIME(HOUR(B2),MINUTE(B2),0)
元の時間分秒データから、時間と分の情報を取得し、秒情報には0を入れ、最後にTIME関数で結合させています。
この数式をC2セルに入力後、C2セルの右下をダブルクリックしてオートフィルを使い、C列全体に数式を反映させます。
すると、以下のようにB列の時間表記から秒が消えた状態でC列に反映されます。
VBA(マクロ)の場合
Alt+F11でVBE画面を開いて以下をコピペしましょう
Sub DeleteSecond()
'DeleteSecond関数の開始
Dim lastRow As Long
'変数lastRowをLong型(長整数型)で宣言
With ActiveSheet
'アクティブなシートを参照
lastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
'変数lastRowにB列の最終行番号を代入
.Range("C2:C" & lastRow).Formula = "=TIME(HOUR(B2),MINUTE(B2),0)"
'C2セルからC列の最終行まで数式 "=TIME(HOUR(B2),MINUTE(B2),0)" を入力
.Range("C2:C" & lastRow).Value = .Range("C2:C" & lastRow).Value
'入力した数式の結果を値として上書き
End With
'With文の終了
End Sub
'DeleteSecond関数の終了
Alt+F8でマクロ選択画面を開きDeleteSecond関数を実行します
エクセルで時間分秒表記から秒を消す方法【書式設定】
秒を消すもう一つの方法が書式設定です。
ただ書式設定の場合は、見かけのみで秒を削除しているだけで計算などに使用する際には秒のデータも使用されるので気を付けましょう!
対象のセル範囲を選択し、右クリック、セルの書式設定を押します。
表示形式、ユーザー定義で、種類の中をh:mmにするだけでOKですね。
表示上でのみ秒が消されました。
VBA(マクロ)の場合
Alt+F11でVBE画面を開いて以下をコピペしましょう
Sub DeleteSecondByFormat()
'DeleteSecondByFormat関数の開始
Dim lastRow As Long
'変数lastRowをLong型(長整数型)で宣言
With ActiveSheet
'アクティブなシートを参照
lastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
'変数lastRowにB列の最終行番号を代入
.Range("C2:C" & lastRow).NumberFormatLocal = "hh:mm"
'C2セルからC列の最終行まで表示形式を "hh:mm"(時:分)に設定
.Range("C2:C" & lastRow).Value = .Range("B2:B" & lastRow).Value
'B2セルからB列の最終行までの値をC2セルからC列の最終行にコピー
End With
'With文の終了
End Sub
'DeleteSecondByFormat関数の終了
Alt+F8でマクロ選択画面を開きDeleteSecondByFormat関数を実行します
まとめ エクセルで時間の秒を消す・削除(関数や書式設定:時間分秒までなど)する方法
以上、エクセルで時間分秒表記から秒を消す・削除する方法をご紹介しました。
エクセルの扱いになれ、さらに快適な生活を送っていきましょう!