Excel中如何根据单元格前3个字符批量生成对应标签?
解决方案:根据ID前缀批量生成对应标签
方法一:使用Excel公式(快速上手,适合中小数据量)
假设你的ID数据在A列(A1是表头,数据从A2开始),在B2单元格输入以下任意一个公式,然后鼠标放在单元格右下角,当光标变成十字形时下拉填充即可:
公式1(MATCH+CHOOSE组合)
=IFERROR(CHOOSE(MATCH(LEFT(A2,3),{"182","187","196"},0),"turtles","rabbits","cats"),"None")
LEFT(A2,3):提取A2单元格ID的前3个字符MATCH(...,{"182","187","196"},0):查找前缀在列表中的精确匹配位置CHOOSE(...):根据匹配位置返回对应的标签IFERROR(..., "None"):如果前缀不在指定列表中,返回"None"
公式2(VLOOKUP版本)
=IFERROR(VLOOKUP(LEFT(A2,3),{"182","turtles";"187","rabbits";"196","cats"},2,FALSE),"None")
- 用VLOOKUP直接查找前缀,找到后返回对应标签,未匹配到则返回"None"
方法二:使用Power Query(适合超大数据量,更高效)
如果数据量极大导致公式下拉卡顿,推荐用Power Query批量处理:
- 选中ID列的所有数据(包含表头),点击顶部菜单栏的「数据」→「从表格/区域」,在弹出对话框中勾选「我的表格有标题」,点击确定进入Power Query编辑器
- 点击「添加列」→「自定义列」,在弹出窗口中:
- 自定义列名填写「标签」(或任意你喜欢的名称)
- 在公式框输入:
=if Text.Start([ID],3) = "182" then "turtles" else if Text.Start([ID],3) = "187" then "rabbits" else if Text.Start([ID],3) = "196" then "cats" else "None"
- 点击「确定」,此时会自动生成新的标签列
- 点击「主页」→「关闭并上载」,选择将处理后的数据上载到原工作表的空白区域即可
内容的提问来源于stack exchange,提问作者JLuu
相关产品推荐
相关产品推荐

