簡體   English   中英

在 Excel 中使用 Unix US 格式化的日期-時間-年份進行計算

[英]Using Unix US Formatted Date-time-year for calculations in Excel

我的日期使用 Bash (echo $date) 的默認時間格式進行格式化,例如:

2021 年 12 月 24 日星期五 07:35:41 EST

我無法更改此行為,因為我無權更改我們的 IT 解決方案。 我需要能夠將這些日期加載到英國本地化的 Excel 中,但是由於日期、時區、時間等原因,任何使用通常的 Text To Columns DMY 方法的嘗試都不起作用。

是提取數據並重新組裝數據的唯一方法還是有更簡單的解決方案?

據我所知,如果我們去掉EST和工作日FRI ,我們可以獲得一個有效的日期值。 注意:如果您想要工作日,可以使用 function WEEKDAY WEEKDAY()獲取值6 ,即星期五。 (1 是星期日)。

因此,要擺脫工作日,您可以使用RIGHT() function。 所有工作日都是 3 個字母和一個空格,所以我們需要去掉前 4 個字符,如下所示:

=RIGHT(A1;LEN(A1)-4)

你可以把它放在你的示例時間下面,所以把它放在單元格 A2 中。

要刪除EST有點棘手,我們需要知道EST在文本中的位置。 為此,我們使用FIND()

=FIND("EST ";A2)

現在我們知道在 A2 中出現文本"EST "的 position。

然后我們可以使用一個簡單的REPLACE() function,將“EST”替換為空。 像這樣:

=REPLACE(A2;FIND("EST ";A2);4;"")

注: 4指的是"EST "的長度。

這適用於本示例,因此您可以使用不同的數據進行嘗試。 如果它不能正常工作,只需在下面發表評論,以及使用哪些數據,我會調查它。

  • A1中輸入日期
  • =RIGHT(A1;LEN(A1)-4)放入A2
  • =REPLACE(A2;FIND("EST ";A2);4;"")放入A3

可以將其合並到 1 個單元格中:

=REPLACE(RIGHT(A1;LEN(A1)-4);FIND("EST ";RIGHT(A1;LEN(A1)-4));4;"")

然后,您可以將其放在 A1 中的日期旁邊,因此在 B1中,然后將此公式向下拖動以獲取所有導入的日期。 現在它應該適用於您的所有日期。

您還可以復制它們的值並替換原始日期,然后刪除公式,您將擁有與一開始所期望的相同的布局和功能!

干杯::)

試試這個 function。 將其寫入模塊並從任何單元格調用。 喜歡 =makeDateFromStr(A1)

Function makeDateFromStr(ByVal someDate As String) As Date
 On Error Resume Next
    Dim var As Variant, Mu As Long
    var = Split(someDate, " ") ' array to hold all parts of the string-date
    Mu = (InStr("JanFebMarAprMayJunJulAugSepOctNovDec", var(1)) + 2) / 3 ' a way to make short string month (Dec) to number
    makeDateFromStr = DateSerial(var(5), Mu, var(2)) & " " & TimeValue(var(3)) ' putting all together
 On Error GoTo 0
End Function

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM