答案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 中的前三个字符。从 开始返回相同位置的值(即,如果是 4 月,则为列表中的第 4 个位置)SEQUENCE(1,12)
。”此 SEQUENCE 只是从 1 到 12 的数字列表。因此,我们将三个字符的月份转换回数字,以便在 DATE 函数中使用它。
天数只有 1。这可以是小于或等于 28 的任意数字,因为所有月份至少都有那么多天数。
因此,对于 C3,年份是 2000+21,月份是 4 月 - 即第 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 世纪的数据(即年份不是 20年年),则需要添加逻辑来确定世纪数字。