You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Excel中实现基于指定分隔符的自定义筛选层级功能

如何在Excel中实现基于指定分隔符的自定义筛选层级功能

当然可以实现!Excel里有几种实用方法能帮你搞定这种基于分隔符的层级筛选,体验和日期筛选的年>月>日层级差不多,下面给你详细说两种靠谱的方案:

方案一:用Power Query生成原生层级筛选(推荐)

这个方法能直接生成和日期筛选一模一样的内嵌层级结构,操作也不算复杂:

  • 选中你要处理的目标列,点击顶部菜单栏的「数据」→「从表格/区域」(如果弹出提示确认表格有标题,勾选后点击确定)
  • 进入Power Query编辑器后,选中目标列,点击「转换」→「拆分列」→「按分隔符」
  • 在弹出的窗口里,选择分隔符为|,拆分方式选「拆分为列」,点击确定后,原单元格的内容会按|拆分成多列(比如「顶级|二级|三级」会拆成三列,分别对应三个层级)
  • 选中所有拆分出来的层级列,右键点击→「创建层次结构」→「从所选列」,此时编辑器里会生成一个带层级的组合列
  • 点击「关闭并上载」,把处理后的表格加载回Excel,现在你点击表头的筛选按钮,就能看到和日期筛选一样的层级展开/折叠选项啦,点击对应层级就能快速筛选内容。

方案二:辅助列+分步筛选(适合不想用Power Query的场景)

如果你不习惯用Power Query,也可以手动拆分出层级辅助列,用原生筛选功能实现类似效果:

  • 在原列旁边插入若干辅助列,对应你需要的层级(比如原列是A列,就插入B、C、D列分别对应顶级、二级、三级)
  • 用拆分函数填充辅助列:
    • 顶级列(B2单元格):=IFERROR(TEXTBEFORE(A2,"|",1),"")
    • 二级列(C2单元格):=IFERROR(TEXTBEFORE(TEXTAFTER(A2,"|",1),"|",1),"")
    • 三级列(D2单元格):=IFERROR(TEXTAFTER(A2,"|",2),"")
      注:如果你的Excel版本是2016及以前,没有TEXTBEFORE/TEXTAFTER函数,可以用LEFT+FIND组合,比如顶级列用=IFERROR(LEFT(A2,FIND("|",A2)-1),""),二级列用=IFERROR(MID(A2,FIND("|",A2)+1,FIND("|",A2,FIND("|",A2)+1)-FIND("|",A2)-1),"")
  • 选中包含原列和辅助列的整个区域,点击「数据」→「筛选」,之后你可以先筛选顶级列的内容,再在筛选结果里筛选二级列,以此类推,实现分步的层级筛选效果。

备注:内容来源于stack exchange,提问作者JoeOD

火山引擎 最新活动