如何在Excel单元格区域中移除月份部分以提取年份区间
如何在Excel单元格区域中移除月份部分以提取年份区间
嗨,我来给你几个实用的方法搞定这个需求,根据你的数据格式(都是MM.YYYY-MM.YYYY的固定样式),选适合你的操作就行:
方法一:快速替换法(最省心,适合格式完全统一的情况)
这是最快的操作,不用写公式:
- 选中你要处理的所有单元格区域
- 按下快捷键
Ctrl+H打开「查找和替换」对话框 - 在「查找内容」框里输入
??.(两个问号+一个点,问号代表任意单个字符,刚好匹配两位月份加小数点的格式) - 「替换为」框留空,直接点击「全部替换」
瞬间就能把所有月份部分(比如11.、03.这类)删掉,得到你想要的年份区间。
方法二:公式法(适合需要保留原数据,在新列生成结果的场景)
如果你不想改动原数据,想在旁边新列生成处理后的内容,可以用公式:
针对Excel 365/2021及以上版本(函数更简洁)
在空白单元格(比如B1)输入公式:
=TEXTAFTER(A1,".")&"-"&TEXTAFTER(TEXTAFTER(A1,"-"),".")
解释一下:
TEXTAFTER(A1,".")提取第一个.之后的内容,得到2008-12.2011TEXTAFTER(A1,"-")提取-之后的内容,得到12.2011,再套一层TEXTAFTER(..., ".")就拿到结束年份2011- 最后把起始年份和结束年份用
-拼接起来
适合所有Excel版本的通用公式
如果你的Excel版本比较旧,没有TEXTAFTER函数,用这个:
=MID(A1,FIND(".",A1)+1,4)&"-"&MID(A1,FIND(".",A1,FIND("-",A1))+1,4)
解释:
FIND(".",A1)+1找到第一个.的位置,往后挪1位就是起始年份的开头,再用MID取4位得到起始年份FIND("-",A1)先找到-的位置,再从这个位置往后找.,挪1位后用MID取4位得到结束年份- 同样用
-拼接两个年份
输入公式后,下拉填充就能批量处理所有单元格。
方法三:Power Query批量处理法(适合大量数据,后续可能重复操作的情况)
如果你的数据量很大,或者以后还会处理类似格式的数据,用Power Query更高效:
- 选中数据区域,点击Excel顶部「数据」选项卡→「从表格/区域」(会弹出对话框,确认数据有表头的话勾选,没有就取消,然后进入Power Query编辑器)
- 在编辑器里选中目标列,点击「转换」选项卡→「拆分列」→「按分隔符」,选择
-作为分隔符,拆分成两列 - 对拆分后的两列分别重复拆分操作:选中列→「拆分列」→「按分隔符」,选择
.作为分隔符,然后在弹出的选项里选「最右侧的列」,这样就只保留年份部分 - 现在你有两列年份了,选中这两列,点击「转换」选项卡→「合并列」,选择
-作为分隔符,自定义列名比如「年份区间」 - 最后点击编辑器顶部「关闭并上载」,处理好的数据就会导入到新的工作表里
备注:内容来源于stack exchange,提问作者Andrew Harlan




