有没有办法在 Excel 中使用公式将当地时间 (HHMM) 转换为 Zulu/GMT?

问题描述 投票:0回答:1

我有一个 Excel 文档中的出发和到达时间电子表格,采用 24 小时时间格式:

出发时间 到达时间
0600 0800
1415 2355

等等。

我还有一个时区电子表格,其中包含以秒为单位的偏移值:

时区 偏移(标准) 偏移(夏令时)
美国/纽约 -18000 -14400
欧洲/斯德哥尔摩 3600 7200

出发和到达地点遍布全球,因此时区偏移范围为 GMT-12 到 GMT+12。

我遇到的问题是我有负偏移和正偏移,因此需要根据位置添加或减去更改。此外,有时时间会在午夜向后交叉到 Excel 视为负时间并返回错误(GMT+10 中的 0400,如果我减去 10 会返回错误,如果我加 10 则显然是错误的;我可以增加 14 小时,但随后我必须弄清楚如何更改所有偏移量以适应该用例,但我不知道该怎么做)。

这些出发和到达时间大约有 20,000 行,所以我一直在尝试想出一个可以应用并拖到底部的公式结构,因为逐行确定不太实际公式根据位置在加法和减法之间切换。您可能已经猜到,我的 Excel 技能并不是特别先进。我觉得我需要在我的公式中进行某种逻辑测试才能使这项工作有效,但我对使用 IF 等知之甚少,或者这是否是正确的路径。

有人可以帮忙吗?如果我上面解释得不好,我很乐意澄清任何事情。

这是适用于 Microsoft 365 MSO(版本 2402 内部版本 16.0.17328.20550)64 位的 Microsoft Excel。

谢谢!

excel excel-formula
1个回答
0
投票

解决此任务的最佳方法是使用真实的 DateTime 值进行操作,让 Excel 计算所有内容:

  1. 将字符串时间转换为一天中的时间并添加当前日期(或任何日期)。
  2. 减去时区偏移即可得到 GMT。
  3. 仅以适当的格式显示时间。
  4. 确定日差。

enter image description here

C2 =INT(NOW())+TIME(LEFT(A2,2);RIGHT(A2,2),0)
D2 =C2-1/24/3600*B2
E2 =D2
F2 =INT(D2)-INT(C2)

E2 的数字格式为“hhmm”。

© www.soinside.com 2019 - 2024. All rights reserved.