我正在尝试让函数从特定单元格中查找文本并将其连接到行号以使函数动态化,因为每组行的范围不同。
非动态公式是=COUNTIFS(C2:EC2,"<>",C3:EC3,"")
,但我想用 中的文本替换第一个范围中的起始列EJ2
。例如,EJ2
等于“C”。我试过了=COUNTIFS(INDEX(EJ2,1)&"2":EC2,"<>",C3:EC3,"")
,但它不起作用,尽管INDEX(EJ2,1)&"2"
它本身给了我想要的“C2”
理想情况下,我希望它插入两个单元格中文本值较高的单元格中的文本。继续示例,EJ2
=C 和EJ3
=D。因此,结果范围将D2:EC2
在 COUNTIFS 函数中。
尝试功能的屏幕截图:
答案1
步骤1:EJ2:EJ3
从(或您想要的任何其他一维数组)中查找最大字符串
{=INDEX(EJ2:EJ3,MATCH(MAX(COUNTIF(EJ2:EJ3,"<"&EJ2:EJ3)),COUNTIF(EJ2:EJ3,"<"&EJ2:EJ3),0))}
来源
在其他单元格中输入此公式。我之所以输入它,A3
只是因为它很方便。请务必将其作为数组公式输入。这意味着复制除花括号之外的所有内容{ }
,将其粘贴到公式栏中,然后按Ctrl+ Shift+ Enter。这现在应该会为您提供最大字符串。它应该适用于任何字母数字字符串,无论大小写。
第2步:INDIRECT
使用函数构建所需的公式
=COUNTIFS(INDIRECT(A3&"2:EC2"),"<>",INDIRECT(A3&"3:EC3"),"")
INDIRECT
允许您以字符串形式构建对某个范围的引用,然后返回该范围。这意味着您可以在函数中使用它的输出COUNTIFS
。