我在下面有一个测试表,它代表一个更宏大的表,有更多的行和列
$i
请务必注意,此表由另一个数据源的复制和粘贴填充。我有一个countif公式,可以获得" test"的所有实例的计数。在列" Business",但如果复制的原始数据源决定在" Business"之前添加一列,则会遇到问题。柱。当我复制并粘贴数据时,我的countif公式将在列(5)中查找项目,此时它应该在列(6)中查找。我在下面创建了一个公式来动态捕获它,因此countif范围会选择新的列引用,但计算是在单元格范围内添加双引号并给出错误。
- 动态公式
Date key ID Sample Name Business
test test test test test
test test test test test
test test test test test
test test test test test
test test test test test
test test test test test
- 新的countif公式
=SUBSTITUTE(ADDRESS(1,MATCH("Business",A1:A5,0),4),"1","")&":"&SUBSTITUTE(ADDRESS(1,MATCH("Business",A1:A5,0),4),"1","")
当我突出显示动态公式并按F9时,您可以看到双引号如何分配给公式,从而给出了错误,如下所示。我如何解决这个问题,所以我可以让公式具有动态能力,无论添加或更改了多少列,总是给我指定列的计数?
=COUNTIF(SUBSTITUTE(ADDRESS(1,MATCH("Business",A:E,0),4),"1","")&":"&SUBSTITUTE(ADDRESS(1,MATCH("Business",A:E,0),4),"1",""),"test")
答案 0 :(得分:2)
您可以使用Match
找到该列,并使用Index
返回该列,然后将其传递给Countif
=COUNTIF(INDEX(1:1048576,,MATCH("Business",1:1,0)),"test")
答案 1 :(得分:1)
您可以使用INDIRECT
将字符串转换为范围。因此,=COUNTIF(INDIRECT("E:E"),"test")
评估为=COUNTIF(E:E,"test")
:
=COUNTIF(INDIRECT(SUBSTITUTE(ADDRESS(1,MATCH("Business",A:E,0),4),"1","")&":"&SUBSTITUTE(ADDRESS(1,MATCH("Business",A:E,0),4),"1","")),"test")