![](/img/trans.png)
[英]Excel: How to count number of distinct values that meet multiple conditions - single cell?
[英]Formula for count of distinct values, multiple conditions, one of which = or <> all repeating values
Excel公式(我知道这可能适用于数据透视表,但需要一个公式)来计算不同的值。 如果这是我在Excel中的表格:
Region | Name | Criteria
------ | ------ | ------
1 | Jill | A
1 | Jill | A
1 | John | B
1 | John | A
2 | Jane | B
2 | Jane | B
2 | Bill | A
2 | Bill | B
3 | Mary | B
3 | Mary | B
3 | Gary | A
3 | Gary | A
在此示例中,我采用以下形式来计算每个区域内的不同值=SUM(--(FREQUENCY(IF((Table1[Region]=A2)*(Table1[Name]<>""),MATCH(Table1[Name],Table1[Name],0)),ROW(Table1[Name])-ROW(Table!B2)+1)>0))
共2个(区域1 = Jill&John; 2 = Jane &Bill,3 = Mary&Gary,每个不同的名字都计算一次)。
我有一个加法公式,可以通过在<>“”)之后添加*(Table1[Category]="B")
在每个区域内每个不同名称至少具有1个“ B”的条件来计算多少个不同值。 ..在此示例中,它将返回Region 1 = 1,Region 2 = 2、3 = 1,因为Jill和Gary没有“ B”-所有其他人都至少有一个“ B”。
现在,我陷入了最后一个公式,我想计算每个区域中有多少个不同的值 在所有情况下都具有B。 结果应为区域1 = 0(吉尔没有B,约翰具有B,但也有A),区域2 = 1(简出现两次,计为1个不同值,并且两次出现都是B,比尔有一个B在他的其中一个中),并且3 = 1(玛丽拥有所有B)。
对于仅执行公式的任务来说太复杂了,但是可行。
以下数组公式可以完成这项工作。 尽管您没有指定,但是我想如果“ Mary”在另一个区域中具有A,则只要在区域3中所有名称为“ Mary”的记录都具有“ B”,就不应取消她在区域3中的计数。 。 换句话说,名称可以在不同的区域中重复,但不会在区域中产生干扰(这使公式变得更长。为此,我添加了一个测试用例,区域4中的玛丽在A处不会干扰区域3中的玛丽)。
=SUM(IF((Table1[Region]=Table1[@Region])*(0=COUNTIFS(Table1[Region],Table1[@Region],
Table1[Name],Table1[Name],Table1[Criteria],"<>B")), 1/COUNTIFS(Table1[Name],Table1[Name],
Table1[Criteria],"B",Table1[Region],Table1[@Region]), 0))
输入它, 然后按 Ctrl Shift Enter 。 然后复制/粘贴该列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.