我的数据格式为:
ACCOUNT_DOCUMENT
ACCOUNT_FACILILITY_MOD
我想提取第一个字母(A)和每个下划线后面的第一个字母。最终输出将是:
AD
AFM
如何在 Excel 中实现此目的?
您可以使用:
=CONCAT(LEFT(FILTERXML("<t><s>"&SUBSTITUTE(A1,"_","</s><s>")&"</s></t>","//s")))
"<t><s>"&SUBSTITUTE(A1,"_","</s><s>")&"</s></t>"
- 使用 SUBSTITUTE()
创建要使用 FILTERXML()
处理的有效 XML 结构。"//s"
- 将所有节点作为数组返回的适当 XPATH 表达式。LEFT()
- 用于检索数组每个元素第一个索引处的所有字符。请注意,如果省略第二个参数,则默认长度仅为 1。CONCAT()
- 用于将所有这些单个字符重新组合在一起。请注意,我的示例是通过 Microsoft365 中的动态数组功能完成的,但如果这是在 Excel 2019 中完成的,则需要通过 CtrlShiftEnter
进行确认这个公式的主干是我们使用
FILTERXML()
将字符串分成几部分的方式。如果您有兴趣,您可以在这里找到更多相关信息。
您还可以使用(对于单元格 B2 中的数据):
=CONCAT(LEFT(B2,1),IF(MID(B2,ROW(INDIRECT("A1:A"&LEN(B2)-1)),1)="_",MID(B2,ROW(INDIRECT("A2:A"&LEN(B2))),1),""))
MID(B2,ROW(INDIRECT("A1:A"&LEN(B2)-1)),1)
- 将文本字符串分离为单个字符数组。
IF
语句正在寻找“_”字符,其结果也将是一个空白(无字符)或_之后的下一个字符的数组。
CONCAT
只是将此数组与使用 LEFT
提取的第一个字符连接在一起
适用于 PC 或 MAC 版本的 Excel。
这在 PowerQuery 中如何实现?