带有通配符的Excel数组公式
我有一个数组公式,指出一个下拉单元($ AG $ 7)来确定要评估的单元格。 这很好,但是,我需要包括一个额外的项目在下拉是“全部”。
当select这个时,我希望数组公式中使用“*”来返回数组中的所有实例,但是我不能让它工作。
这是我目前使用的公式;
={SUM(IF((tblSkillsMatrix[Role]=[@Role])*(INDIRECT("tblSkillsMatrix["&V$2&"]")=$AG$7),1,0))}
我试过使用
={SUM(IF((tblSkillsMatrix[Role]=[@Role])*(INDIRECT("tblSkillsMatrix["&V$2&"]")="*"&$AG$7),1,0))}
和
={SUM(IF((tblSkillsMatrix[Role]=[@Role])*(INDIRECT("tblSkillsMatrix["&V$2&"]")="*"&$AG$7&"*"),1,0))}
但是这些不起作用。
有人有什么想法吗?
谢谢
显式=
比较不能使用通配符。 COUTIFS
和SUMIFS
可以。 据我所知,你只要计算(条件总和1和0)。
问题是, COUTIFS
和SUMIFS
将不处理INDIRECT
范围。 但是INDIRECT
可以而且应该(因为其不稳定的行为)经常被INDEX
– MATCH
所取代。
所以:
=COUNTIFS(tblSkillsMatrix[role],[@role],INDEX(tblSkillsMatrix,,MATCH($V$2,tblSkillsMatrix[#Headers],0)),"*"&$AG$7)
如果$AG$7
为空,则它将独立于$V$2
指定的列进行计数。
顺便说一句:在一个表(ListObject)中,这不需要作为数组公式input。
这不是100%的公式替代,因为如果$V$2
是空的,所以没有工作,所以没有给出表列的标题。 您的公式将查看所有列,但是这不可能使用COUNTIFS
,其中每个附加范围都必须具有与criteria_range1参数相同的列数。 所以如果$V$2
也可以是空的,那么这是行不通的。
如果是这样,那么你可以使用
{=SUM((tblSkillsMatrix[role]=[@role])*(LEFT(INDIRECT("tblSkillsMatrix["&$V$2&"]"),LEN($AG$7))=$AG$7))}
优点: $V$2
和$AG$7
都可以是空的。
缺点: INDIRECT
易失性行为,即使在ListObject表中,该公式也必须是数组公式。 必须使用Ctrl + Shift + Enter确认 。