
背景:資料來自具有歐洲格式(DD/MM/YYYY)日期的資料庫。 「已建立」欄位(A 欄)也有 24 小時格式的時間戳記。旁邊是「已識別」列(B 列),只有一個日期,可能與「建立」日期不同。
我的輸出需要是一個新的「已建立」列,其中只有美國格式的日期(無時間戳記),我知道該怎麼做。我使用 LEFT 在新列中僅捕獲歐洲日期。 (C 列)然後在另一個新列中,我使用=Date(value(right(A2,4)),value(mid(A2,4,2)),value(left(a2,2))) 重新排列日期轉換為美國格式 (MM/DD/YYYY)。 (D 欄)
以上一切都很好。這就是它變得棘手的地方,我需要對「已識別」資料進行相同的日期對話,並將其放入自己的列(E 列)中。並非每一行資料都有「已識別」日期。
如果沒有「已識別」日期,我希望我的日期公式能夠識別錯誤(顯示為#VALUE)並複製轉換後的「建立」日期。
我嘗試過使用 IF、OR 和 IsError 語句,但似乎無法得到有效的語句。
任何建議將不勝感激。我還嘗試使用=If(iserror) 創建另一列(F) 來讀取轉換後的“已識別”列,如果出現錯誤,則獲取轉換後的“創建”日期,如果不是錯誤,則獲取轉換後的“創建”日期轉換的“已識別”日期,但這給了我一個空白單元格。
我已經打出了一個簡單的 Excel 工作表示例,但我沒有看到在哪裡上傳/附加 Excel 文件的選項?
答案1
細胞方程式E2
...
舊方法,使用 IF
=IF(ISBLANK(B2),D2,DATE(VALUE(RIGHT(B2,4)),VALUE(MID(B2,4,2)),VALUE(LEFT(B2,2))))
現代方式,使用 IFERROR
=IFERROR(DATE(VALUE(RIGHT(B2,4)),VALUE(MID(B2,4,2)),VALUE(LEFT(B2,2))),D2)
如果B2
為空,則DATE
您所使用的函數E2
會產生錯誤。
舊方法使用IF
函數來測試 cell 是否B2
為空,如果是,則簡單地將 cell 中的內容作為其結果D2
。如果測試失敗,IF
函數只需使用該函數計算所需的結果DATE
。
現代方法不關心是什麼原因導致DATE
錯誤,只在乎是否有錯誤。如果沒有錯誤,IFERROR 函數將使用第一個參數 - 函數DATE
- 如果有錯誤,則使用第二個參數 - D2
- 作為其結果。
現代方式是更好的選擇。其他錯誤,例如B2
包含隨機文本,將導致DATE
E2 中的函數出現問題。此IF
版本不會正確處理此類錯誤,而IFERROR
會。