给出以下测试数据。如何构造数组公式以产生所需的结果?
=LET(item,G4,name,A4:A7,data,C4:E15,
names, CHOOSECOLS(data,1),
items, CHOOSECOLS(data,2),
cnt, CHOOSECOLS(data,3),
mn, MIN(IF(AND(name=names,item=items,cnt>0),cnt,FALSE)),
mx, MAX(IF(AND(name=names,item=items,cnt>0),cnt,FALSE)),
if(and(not(mn),not(mx)),"None",mn&" : "&mx) )
船是在“显示”列中输入的,因此结果应该与船相关。如果将绿色单元格更改为Car,则结果应仅显示汽车等。
公式位于单元格I4中,生成#N/A
。我尝试了一些其他类似的公式,但没有运气到目前为止。
2条答案
按热度按时间tvokkenx1#
也许这就是您可以使用
MAP()
尝试的·单元格
I4
中使用的公式cgh8pdjw2#
为了替代,你可以使用
MINIFS
,MAXIFS
如果没有匹配的条件,两个函数都返回0
,如果我们可以假设0
不是一个有效的计数,那么我们可以有这个简单的方法(* 公式1*):注意:可以通过如下方式避免
MAP
函数(* 公式2*):如果
0
是一个有效的计数,那么就没有办法区分名称中有船值的情况和有0
计数的情况以及没有船的情况。要将0
视为有效计数,我们需要采用不同的方法。我们不能使用MAXIFS/MINIFS
,因为它们是RACON function,我们需要首先过滤,即输入将是一个数组而不是一个范围(* 公式3*):使用
FILTER
的第三个输入参数和一个文本值,对于不匹配条件MAX/MIN
的情况,返回#VALUE!
,所以现在我们有一种方法来区分这种情况。最后使用IFERROR
将其转换为"None"
。下面是使用 * 公式1* 的输出:
查找名称也可以通过
UNIQUE(B)
获得,我们保持这种方式,因为排序不同。