如何在 ArrayFormula 中使用 COUNTUNIQUE 函数并获得范围结果?

How to use COUNTUNIQUE function within ArrayFormula and get a range result?

我尝试在单元格 'A2' 中的 ArrayFormula 中使用 COUNTUNIQUE 函数来获得范围内的结果,例如我设置函数单元格的 B 列细胞。但它 returns 只有一个值。这是我在单元格 'A2':

中的公式
=ArrayFormula(COUNTUNIQUE(D2:D7,E2:E7,F2:F7,G2:G7,H2:H7))

任何帮助将不胜感激!

你可以这样做:

=ARRAYFORMULA(QUERY(UNIQUE(TRIM(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
 IF(D2:K<>"", "♦"&ROW(A2:A)&"♥"&D2:K, )),,999^99)),,999^99), "♦")), "♥"))),
 "select count(Col1) where Col1 is not null group by Col1 label count(Col1)''", 0))

或者像这样:

=ARRAYFORMULA({
 COUNTUNIQUE(D2:H2);
 COUNTUNIQUE(D3:H3); 
 COUNTUNIQUE(D4:H4);
 COUNTUNIQUE(D5:H5);
 COUNTUNIQUE(D6:H6);
 COUNTUNIQUE(D7:H7)})

这个问题让我感兴趣了一段时间。基本上,@player0 的解决方案对我来说似乎很明显。但是读起来有难度。

也许使用组合数组和隐式结尾搜索更合适:

=INDEX(
  COUNTIF(
    UNIQUE(FLATTEN(
      {"" & ROW(C2:Z), ROW(C2:Z) & "-" & C2:Z}
    )),
    ROW(C2:Z7) & "-*"
  ) - 1
)