excel数据如何提取大写字母创建缩写
如下图1所示,使用公式,提取列A每个单元格数据中的大写字母 。
文章插图
图1
满足以下条件:
- 只提取大写字母
- 每个单词以大写字母开始
- 每个单词仅有一个大写字母
- 单元格中的数据文本可能包含空格,也可能没有空格
- 单元格中的数据文本只包含字母和空格
- 单元格中的数据文本可包含任意类型的字符
- 大写字母中没有重音符号
- 数据所在的工作表名为“x”(仅1个字符)
- 结果长度必须等于大写字母的数量
- 公式要最短
解决方案
首先,提取每一字符,使用CODE函数将其转换成对应的数字,如果数字大于等于65且小于等于90,将该数字再转换成对应的字母,将大写字母连在一起 。
公式中,MID(x!A5,ROW(INDIRECT(“1:”&LEN(x!A5))),1)用于提取单个字符,也可以使用MID(A5,ROW(A$1:INDEX(A:A,LEN(A5))),1),但前者更短 。CODE函数将字符转换成相应的数字,注意大写字母编码从65至90 。IF函数将忽略我们不想要的编码 。CHAR函数将数字转换成字母 。CONCAT函数将提取到的大写字母连接 。
公式1:
=SUBSTITUTE(CONCAT(CHAR(IF((CODE(MID(A5,ROW(INDIRECT(“1:”&LEN(A5))),1))>64)*(CODE(MID(A5,ROW(INDIRECT(“1:”&LEN(A5))),1))<91),CODE(MID(A5,ROW(INDIRECT(“1:”&LEN(A5))),1)),91))),”[“,””)
公式2:
=SUBSTITUTE(CONCAT(IFERROR(CHAR(IF(CODE(MID(A5,ROW(INDIRECT(“1:”&LEN(A5))),1))<91,CODE(MID(A5,ROW(INDIRECT(“1:”&LEN(A5))),1)))),””)),””,””)
公式3:
=SUBSTITUTE(CONCAT(IFERROR(CHAR(IF(z<91,z)),””)),””,””)
其中,“z”是一个定义的名称:
名称:z
引用位置:=CODE(MID(x!A5,ROW(INDIRECT(“1:”&LEN(x!A5))),1))
公式4:
=SUBSTITUTE(CONCAT(IFERROR(CHAR(IF(AND(z<91,z>64),z)),””)),””,””)
与公式3相同,“z”是一个定义的名称 。
公式5:
=CONCAT(FILTER(MID(A5,SEQUENCE(LEN(A5)),1),ISNUMBER(MATCH(CODE(MID(A5,SEQUENCE(LEN(A5)),1)),SEQUENCE(24,,65),0))))
公式6:
=TEXTJOIN(“”,1,IF(ISNUMBER(MATCH(CODE(MID(A5,ROW(INDIRECT(“1:”&LEN(A5))),1)),ROW(INDIRECT(“65:90”)),0)),MID(A5,ROW(INDIRECT(“1:”&LEN(A5))),1),””))
公式7:
=SUBSTITUTE(CONCAT(IFERROR(CHAR(IF(CODE(MID(A5,ROW(A$1:INDEX(A:A,LEN(A5))),1))<91,CODE(MID(A5,ROW(A$1:INDEX(A:A,LEN(A5))),1)))),””)),””,””)
本文只给出了公式的基本运行原理和公式,有兴趣的朋友可以参考本系列前面讲解的一些方法对公式进行调试,以加深理解 。
推荐阅读
- 怎么让excel图表形状生动起来
- excel技巧缩减工作表行列数
- 怎么使用excel筛选功能创建动态图表
- excel函数参数数组怎么运算
- 山药炒木耳怎么做好吃
- 石斛松茸乌鸡汤-滋补而不燥的养生汤怎么做好吃
- 淘宝曝光率怎么收费?如何增加曝光率?
- 淘宝极速推广怎么收费?如何使用?
- 桂花山药怎么做好吃
- 店铺销售额上不去怎么办?附技巧方法