使用“矩阵法”引用产品的完整型号

2022-05-30 10:48:04孙凡丽
电脑爱好者 2022年9期
关键词:数组单元格字符

孙凡丽

在图1中,假设A列为空调的完整型号数据,在D2单元格中输入公式“ ={IFERROR(INDEX($A$1:$A$10,SMALL(IF(MMULT(-ISERR(FIND(MID($C$2,COLUMN(A:Z),1),$A$1:$A$10)),ROW($A$1:$A$26)^0)=0,ROW($A$1:$A$10),COUNTA(A:A)+1),ROW(A1))),"/")}”。注意,输入完公式后需要按下“Ctrl+Shift+Enter”组合键(数组公式)。最外层的{}是按下该组合键后自动产生的,不能手输。以后只要在C2单元格中输入空调型号的部分信息,在D2单元格中就会引用所有与之相关的空调型号。该公式较为复杂,下面详解公式的计算过程。

一、分割信息

通过MID和COLUMN函数将C2单元格中的信息分割为x个单个字符,x根据A列中空调型号的最长字符数确定,并将其对应为列字母。在本公式中,假设A列中的最长字符数为26个,对应的列字母为Z,即将C2单元格中的信息分割为26个字符,没有字符的部分使用空值凑齐(图2)。

二、矩阵转型

使用FI N D函数将2 6个字符与A1: A10数据区域中的内容逐个比对,形成一个10 行2 6 列的矩阵。若字符存在于某个单元格中,就显示其在该单元格字符中的位置序号,不存在就显示“#VALUE!”,空值部分对比后显示“1”(图3)。

然后借助ISERR函数将上述矩阵中的数据转型,将位置序号和“1”转换为“FALSE”、“#VALUE!”转换为“TRUE”(图4)。

接着使用“-”减函数再次转型矩阵,将“FALSE”转换为“0”、“TRUE”转换为“-1”。此时可以发现,包含空调部分信息的那一行,转换后的结果全部为“0”(图5)。

三、计算数组

使用MMULT 矩阵函数计算数组。数组1为图5 所示的10 行2 6 列的矩阵,数组2 为ROW($A$1:$A$26)^0,即26行1列中所有值为“1”的矩阵。计算结果是两个数组的乘积之和,为10行1列的数组(图6)。

四、定准“0”位

使用I NDEX 、IF和SMALL函數将上述的计算结果数组按ROW(A$1:A$10)转换为10行1列的位置行号数组,结果为“0”就显示位置行号,非“0”则显示“11”。并在该数组中找出第k个最小位置行号,D2单元格中k为ROW(A1),值为1,即选出第1个最小的位置行号5。然后从A1:A10数据区域中根据位置行号5引用第1个包含空调部分信息的完整型号。

下拉D 2 单元格中的公式到D 3~D1 0 单元格,R OW( A1)会依次变为R O W ( A 2 ) 、ROW(A3)……,这样就会引用第2个、第3个……的完整型号了。最后会使用IFERROR函数将不符合的结果标记为“/ ”。

猜你喜欢
数组单元格字符
寻找更强的字符映射管理器
JAVA稀疏矩阵算法
电脑报(2022年13期)2022-04-12 00:32:38
JAVA玩转数学之二维数组排序
电脑报(2020年24期)2020-07-15 06:12:41
玩转方格
玩转方格
字符代表几
一种USB接口字符液晶控制器设计
电子制作(2019年19期)2019-11-23 08:41:50
消失的殖民村庄和神秘字符
浅谈Excel中常见统计个数函数的用法
西部皮革(2018年6期)2018-05-07 06:41:07
寻找勾股数组的历程