Filter Google Sheets-仅当尚未在前一组中计算时,才按组计算唯一值

Filter Google Sheets-仅当尚未在前一组中计算时,才按组计算唯一值,filter,google-sheets,array-formulas,google-sheets-formula,Filter,Google Sheets,Array Formulas,Google Sheets Formula,我希望能清楚地解释我想做什么 我在B列中有一些数据,如A列所示分组 我想计算A列中每个组的唯一值,而不考虑前一组中已计算的唯一值 例如,我想: 计算“proyecto2”中的唯一值,而不计算“proyecto1”中已存在的唯一值 计算“proyecto3”中的唯一值,而不计算“proyecto1”和“proyecto2”中已存在的唯一值 计算“proyecto4”中的唯一值不计算“proyecto1”、“proyecto2”和“proyecto3”中已存在的唯一值 等等 在下面,你可以找到一

我希望能清楚地解释我想做什么

我在B列中有一些数据,如A列所示分组

我想计算A列中每个组的唯一值,而不考虑前一组中已计算的唯一值

例如,我想:

  • 计算“proyecto2”中的唯一值,而不计算“proyecto1”中已存在的唯一值
  • 计算“proyecto3”中的唯一值,而不计算“proyecto1”和“proyecto2”中已存在的唯一值
  • 计算“proyecto4”中的唯一值不计算“proyecto1”、“proyecto2”和“proyecto3”中已存在的唯一值
  • 等等
在下面,你可以找到一个带有我找到的解决方案的谷歌表格,即使我对它不是很满意,也可以很容易地说明我的意思

基本上,在A:B列中,我们有输入数据。您可以在A列和B列中添加数据以查看其工作方式(目前,我的方法仅在您在A列中添加以下组之一时有效:'proyecto1','proyecto2','proyecto3','proyecto4','proyecto5'和'proyecto6')

在D:E列中,我们有输出数据,基本上是由组计算的唯一值

在G:W列中,是处理数据的公式

很明显,我的方法一直到“proyecto6”,因为在“处理列”中,我只考虑到“proyecto6”之前的公式

一切都在运转,但我的问题是:你能给我一个更具活力的方式来实现我的目标吗?或者唯一的方法就是编写一些代码?

  • 删除范围D:Z中的所有内容
  • 粘贴到D2单元格:

  • 粘贴到E2单元格:

  • 粘贴到G2单元格:

  • 粘贴到G3单元格并向下拖动:


太好了,它工作得非常好!我可以要求您对E2中的问题做一个非常简短的解释吗?为什么是MMULT()?基本上这是一个简单的MMULT,我们在数组中的行中模拟COUNTA行为。例如,如果不为空=1*1,如果为空=0*1…更多信息:
=UNIQUE(A2:A)
=ARRAYFORMULA(IF(LEN(D2:D); 
 MMULT(IFERROR(LEN(G2:Z)/LEN(G2:Z); 0); TRANSPOSE(COLUMN(G2:Z2)^0)); ))
=TRANSPOSE(UNIQUE(FILTER(B$2:B; A$2:A=D2)))
=TRANSPOSE(UNIQUE(FILTER(FILTER(B$2:B; A$2:A=D3);
 NOT(COUNTIF(INDIRECT("G2:"&ROW()-1); FILTER(B$2:B; A$2:A=D3))))))