在列中A
我有一个将另外两列整理在一起的公式。
=IF(ISBLANK(B5),"", B5&" "&C5)
然后在名称管理器中,使用动态命名范围作为数据验证下拉列表。
=OFFSET(Projects!$A$5,0,0,COUNTA(Projects!$A:$A),1)
但是,这仍然会计算所有包含公式的单元格,即使它们是空白的。我尝试用它COUNTIF
来计算空白单元格。
=OFFSET(Projects!$A$5,0,0,COUNTIF(Projects!$A:$A, "<>"),1)
但这仍然包括每个包含公式的单元格,即使它是“空白的”。
有没有办法让命名范围忽略返回空白的公式?
编辑
下面是第一位数据的示例。(从第 5 行开始,因此与示例保持一致)
A B C
5 =IF(ISBLANK(B5),"", B5&" "&C5) Director 123
6 =IF(ISBLANK(B6),"", B6&" "&C6) Officer 321
7 =IF(ISBLANK(B7),"", B7&" "&C7)
继续往下到第 1000 行。A 列被隐藏,用户只能修改 B 和 C 中的数据。值经常被添加或删除,因此 B 和 C 中的条目数不断变化
然后,对于我的 DNR,我尝试在不同的表中使用,我使用以下内容设置了一个名为 JobTitle 的命名范围。
=OFFSET(Projects!$A$5,0,0,COUNTIF(Projects!$A5:$A1000, "<>"),1)
我目前的解决方法是计算 B 列中的非空白单元格
=OFFSET(Projects!$A$5,0,0,COUNTIF(Projects!$B5:$B1000, "<>"),1)
目前它可以工作,但是为了将来参考,我想知道如何从 A 列创建 DNR。
答案1
我会定义职称而是:
=Projects!$A$5:INDEX(Projects!$A5:$A$1000,COUNTIF(Projects!$A5:$A$1000,"?*"))
通过代替INDEX
,OFFSET
可以减少构造的波动性。
请注意,该COUNTIF
部分基于以下假设:范围内的值Projects!$A5:$A$1000
是文本,而不是数字。然而,考虑到此范围内的每个值都是通过字符串连接得出的,我认为这个假设是合理的。
问候
答案2
而不是
COUNTA(Projects!$A:$A)
使用
COUNTIF(Projects!$A:$A,"<>"&"")
。
COUNTA 函数计算范围内非空单元格的数量。
包含公式的单元格,即使它返回的值""
不为空。