如何使视频时间码在 Excel 中正确显示?

如何使视频时间码在 Excel 中正确显示?

与回答的其他问题不同,我的问题没有得到解决。我在电视台工作,有需要评估/存储的时间码。 01:23:45:04是 1 小时 23 分钟 45 秒和 4 帧(根据内容,总共 24 或 30 帧)。当我将 Excel 单元格中的一些单独值连接在一起形成时间码时,Excel 会忽略所有位置的前导 00,并且不允许我的格式。它喜欢以 000 秒为单位显示的 days:hrs:mm:ss:partial secs。等等......我需要能够将 4 个不同的 2 位数字组合成一个 8 位时间码,并用冒号 ( :) 分隔,就像这样: 01:43:23:02而不是让 Excel 给我1:43:23:2

答案1

您的意思是您在不同的单元格中输入小时、分钟、秒和帧吗?如果您分别在 A2、B2、C2 和 D2 中输入这些内容,请尝试使用 TEXT 函数连接并保留前导零,即

=TEXT(A2,"00:")&TEXT(B2,"00:")&TEXT(C2,"00:")&TEXT(D2,"00")

答案2

如果你可以接受框架是小数,那么这可能会起作用:

hh:mm:ss.00

否则,我认为您需要将框架放在单独的单元格中,因为它不适合正常的日期时间戳。

答案3

如果你只想存储它们,格式化单元格就足够了。如果你要使用这些数据,则必须使用其他方法。

仅限商店:

1- Select the range of cells you want to format
2- Enter Start-Number-Format-Customize
3- Write on type: 00\:00\:00\:00

从那一刻起,单元格将把输入的数据调整为 00:00:00:00 格式

如果输入 123,单元格将显示 00:00:01:23

如果输入 1234567,单元格将显示 01:23:45:67

注意!如果您单击带有数据的格式化单元格,您将看到格式消失。这是因为我们所做的只是将单元格强制为一种图形表示。

文本模式的单元格是存储此类数据的正确选择。要对 TC 进行加减运算,此方法不起作用,因为 TC 是六十进制系统,而 Excel 使用十进制。在 TIME 模式下格式化单元格也没有用。

未格式化和已格式化单元格中发生情况的示例。

还有另一种方法,即使用文本字符串以 00:00:00:00 格式存储 TC

当您想要添加两个 TC 时,您必须将所有内容传递给框架,添加或减去这两个值,然后再次转换为 TC 代码。由于数据是字符串,因此首先使用替换语句从 TC 中删除冒号:

numToConvert = Replace (numToConvert, ":", "")

转换为秒的函数将是这样的:

Dim fra2s, seg2s, min2s, hor2s As Double
fra2s = 0
seg2s = 0
min2s = 0
hor2s = 0
fra2s = Mid (numToConvert, 7, 2) / framesRef
sec2s = Mid (numToConvert, 5, 2)
min2s = Mid (numToConvert, 3, 2) * 60
hor2s = Mid (numToConvert, 1, 2) * 3600
TcInSeconds = hor2s + min2s + seg2s + fra2s

其中framesRef是参考系统(24,25,29.97 ...)

现在我们把这两个值相加或相减,然后以正确的格式重新计算 TC。该函数应该是这样的:

Dim s2fra, s2sec, s2min, s2hor, TimeCodeTMP As Double
TimeCodeTMP = numToConvertInSeconds
s2fra = 0
s2seg = 0
s2min = 0
s2hor = 0
TimeCodeTMP = 0

'The "\" or "MOD" operators can not be used because VBA Excel returns integer values and we need decimals
s2hor = Int (TimeCodeTMP / 3600)
TimeCodeTMP = TimeCodeTMP - (3600 * s2hor)
s2min = Int (TimeCodeTMP / 60)
TimeCodeTMP = TimeCodeTMP - (60 * s2min)
s2seg = Int (TimeCodeTMP)
TimeCodeTMP = TimeCodeTMP - (s2seg)
s2fra = Int (Round (TimeCodeTMP * framesRef, 0))
HHMMSSFF = Right ("00" & s2hor, 2) & ":" & Right ("00" & s2min, 2) & ":" & Right ("00" & s2sec, 2) & ":" & Right ("00"& s2fra, 2)

最后一行负责为 10 以下的数字添加零。例如:1:5:42:7 在字符串格式中变为 01:05:42:07。

如果你不想花时间,这里有一个 Excel TCCalculator。它是免费的,适合所有人:

https://drive.google.com/drive/folders/1_mj7JmciCAhs6Tj1Qh3cw22GbSaF9Zwz

相关内容