大多数人听到“Excel里的Python”,第一反应就是处理复杂的数据分析、构建模型。但我发现它最实用的地方,反而是搞定那些我平时总拖着不做的琐碎表格活儿:拆分凌乱的姓名、核对两份清单、把一堆数字直接变成文字结论。有了它,再也不用硬着头皮写绕来绕去的公式,也不必反复调整 Power Query 的步骤。
Python 直接内嵌在 Excel 里,你不需要单独安装任何软件。输入 Python 公式,代码就在微软的云端运行,结果直接返回单元格。而且,它专为工作表数据设计,你可以通过 xl("表名") 或 xl("单元格区域") 把表格内容拉进 Python,处理完再写回 Excel。Python in Excel 自带一个由 Anaconda 提供的环境,里面装着 pandas 这类常用库,省去了过去折腾环境的各种麻烦。
你并不需要先成为一名程序员。把 Python 当成另一种处理表格难题的工具来用就好,文中每个示例都可以直接改造成你自己的数据,我会逐一解释每段代码在干什么。要体验的话,只需要一个符合条件的 Microsoft 365 订阅,再把数据格式化成 Excel 表格(按 Ctrl+T),或者在单元格里敲 =PY( 然后插入 Python,就可以开始了。
以前我最头疼的活之一,就是把一列“姓名”拆成“名”和“姓”。看起来简单,可一旦数据里冒出来中间名缩写、双姓或者带连字符的姓氏,公式里的 LEFT、RIGHT、FIND 就乱套了。Power Query 我也试过,但每次格式一变动,又得重新去调整步骤。后来我用 Python 根据自己的规则做了一次清理,舒服多了。下面这段代码并没有试图覆盖所有命名习惯,只是用了一个简单的规则:
先用 split 按空格把全名拆成片段,如果最后一个片段里带有连字符,就判断它是连字符姓氏,前面所有部分合并成名字;如果正好有两个片段,就分别当作名和姓;要是片段更多,就默认最后一个是姓,前面都是名。这样一类逻辑,用 Python 写出来只有寥寥几行,我把它包成一个函数,套在整列姓名上,干净的名字表立刻就拆分好了。
这种“为自己的典型杂活写一段小规则”的方式,比试图用复杂公式拼凑一个万能的解决方案省心太多。不用再和边界情况反复较劲,也不用因为偶尔多了一种新格式就推翻重来。Python 让我把 Excel 从“能搞定一切”的大工具箱,变成了一个遇到具体麻烦时才随手拿出来的趁手家伙。
热门跟贴