查询日期5月23日有两个结果符合,G12和G13,但两个都是自动线,所以目标是返回结果只需要显示一个自动线即可,这个怎么做?还有就是同一个公式,怎么在一个单元格内显示全部符合条件的结果,像J13单元格就是使用的同一个公式,但却只返回了一个符合条件的结果?
你试试这个公式:
=CONCAT(UNIQUE(IF(MMULT(TRANSPOSE(N(IF((A5:A11=J15)*(I5:I11=J16),E5:E11,0)={"G1","G2","G3","G6","G7","G8","G9","G10","G11","G12","G13"})),ROW(5:11)^0),{"1号机";"2号机";"2号机";"4号机";"4号机";"5号机";"5号机";"6号机";"6号机";"自动线";"自动线"},"")))
数组公式,数组三键输入。
追问厉害,能详细解释下该公式的各步骤原理吗?最近在学函数公式。
追答第一步:IF((A5:A11=J15)*(I5:I11=J16),E5:E11,0)
将符合条件的单元格提取出来,
第二步:IF((A5:A11=J15)*(I5:I11=J16),E5:E11,0)={"G1","G2","G3","G6","G7","G8","G9","G10","G11","G12","G13"})
和标准名称做对比
第三步:使用N函数将逻辑结果转化为1,0
第四步:使用TRANSPOSE函数将得出的结果做一个转置,方便后续使用MMULT函数计算结果能和后面的几号机对应。
第五步:使用IF函数将上面MMULT函数计算结果对应的标准名称提取出来。
第六步:使用UNIQUE函数对得出的名称去重。
第七步:使用CONCAT函数将得出的结果合并就可以了。
大神好像追问的回答被系统误删了,有有消息提示,进来没看到回答内容。简单问下吧。
1 Transpose函数在此公式里起什么作用?
2 为什么要用MMult函数?
3 最外层的If函数是如何进行数组匹配的,Mmult函数得出的结果只有7个而外层的IF返回匹配数组结果却有11个,这个是怎么匹配到正确机位的?
4 用我原本的vlookup公式怎么做到单个单元格显示全部匹配内容是缺少那个函数?
IF((A5:A11=J15)*(I5:I11=J16),E5:E11,0)={"G1","G2","G3","G6","G7","G8","G9","G10","G11","G12","G13"})
IF函数是6行1列,{"G1","G2","G3","G6","G7","G8","G9","G10","G11","G12","G13"})这个是1行11列,通过逻辑对比后结果是6行11列,使用TRANSPOSE函数转置成11行6列,再使用MMULT转化成11行1列,这样就可以跟后面的{"1号机";"2号机";"2号机";"4号机";"4号机";"5号机";"5号机";"6号机";"6号机";"自动线";"自动线"}一一对应了。
还是看不到任何追问内容,
追答