我有一列(文本)值。我想计算非空白单元格出现的次数,其值与其上方单元格的值不同。我不想只计算非空白单元格的数量或单元格总数减去空白单元格的数量。
例如,如果列的形式为(A, B, B, A, A, A, _, A, B, C, B)
,其中“ A
”和“ B
”和“ C
”表示一些文本(使得它们彼此不同)并且“ _
”(下划线)表示空白单元格,那么我想要的计数将是7因为:
A
第一个条目中的“ ”有效。B
第二条记录中的“ ”有效。B
第三个条目中的“ ”不是数数。A
第四条记录中的“ ”有效。A
第五和第六个条目中的“ ”不是计数,每一个。_
第七项中的“ ”不是因为是空白,所以不计算在内。- 每个后续条目都算数,因为每个条目都非空白,并且与紧接的前一个条目不同。
我怎样才能实现这样的功能?
答案1
您可以尝试下面的方法,然后让我知道效果如何,理论上在这个数据集上我得到了 7 个,但不能 100% 确定我理解了所有的标准。
=1+SUMPRODUCT(--($A$1:$A$11<>OFFSET($A$1:$A$11,1,0)),--(OFFSET($A$1:$A$11,1,0)<>""))
答案2
下面写的公式将有助于计算,正如 OP 所说非重复值在数据范围内。
{=SUM(IF(FREQUENCY(IFERROR(MATCH(A2:A12,A2:A12,0),""),ROW(A2:A12)-ROW(A2)+1)=0,1))}
注意:我修改了之前的公式并包含了 IFERROR,因为 OP 提到 UNDERSCORE 是一个空白单元格。
现在公式是 CSE,所以用它完成它Ctrl+Shift+Enter。
笔记, 如果在空白单元格位置写上下划线,那么下面写的先前公式将在没有 IFERROR 的情况下起作用。
=SUM(IF(FREQUENCY(MATCH(A2:A12,A2:A12,0),ROW(A2:A12)-ROW(A2)+1)=0,1))
希望这对你有帮助。