
答案1
良好排序的技巧是 Excel 需要知道它是日期。
您可以使用 C4 中的下列公式將儲存格 C3 中的文字(例如)轉換為日期:
=DATE(2000+RIGHT(C3,2),XLOOKUP(LEFT(C3,3),{"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"},SEQUENCE(1,12)),1)
看起來又長又笨重,但拆開來看卻有些簡單。
我們正在使用該DATE
功能。這需要三個參數(用逗號分隔):
- 年
- 月
- 天
年份是2000+RIGHT(C3,2)
.這只是將文本中最右邊的兩個字元添加到 2000 以獲得年份。如果日期早於 2000 年,則需要調整這部分。
月份是XLOOKUP(LEFT(C3,3),{"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"},SEQUENCE(1,12))
。這就是說“在此月份列表中查找單元格 C3 中的前三個字元。從 中返回同一位置的值(即,如果是 Apr,則為列表中的第四個位置)SEQUENCE(1,12)
。”此 SEQUENCE 只是從 1 到 12 的數字列表。
該天僅為 1。 這可以是小於或等於 28 的任何數字,因為所有月份都至少有那麼多天。
所以,對於 C3,年份是 2000+21,月份是 Apr - 即第 4 個月,所以是 4,日期是 1 DATE(2021,4,1)
。
答案2
您也可以在儲存格 C4 中嘗試此公式
=DATE(2000+RIGHT(C3,2),MONTH(1&LEFT(C3,3)),1)
答案3
人們缺少專門針對這項工作的功能。
選擇一個“輔助行”。它可以是第 4 行或 999 行或任何您想要放置的位置。
在該行的 C 列中(例如,在儲存格 C4 中),輸入
=DATEVALUE(SUBSTITUTE(C3, "'", " 20"))
將SUBSTITUTE
撇號替換為空格 和 20
。例如,這會更改Apr'21
為 Apr 2021
.然後函數 DATEVALUE
將該文字值變更為對應的日期值。
然後 - 其他人沒有提到的“明顯”部分 - 您可以按輔助行對資料進行排序。
如果您願意,您可以使用
=DATEVALUE(LEFT(C3,3) & " 20" & RIGHT(C3,2))
如果您可能有非 21 世紀的資料(即年份不是 20yy),您將需要添加邏輯來確定世紀數。