选择仅拥有产品A或B的那些客户

时间:2019-08-09 08:49:40

标签: excel

我有一个包含列CustomerProduct的列表,并且想要创建一个新列Select,在这里我想用1为拥有{{ 1}}或A,否则为B。预期输出:

例如,我不想选择客户3,因为他具有0AB。我只希望那些拥有CABA的客户。

我已经尝试过此B,但是它没有用,只给出了奇怪的数字或错误。

reverse relation

3 个答案:

答案 0 :(得分:3)

有趣的问题。试试这个公式:

=--NOT(SUMPRODUCT(--($A$2:$A$10=A2),--($B$2:$B$10<>"A"),--($B$2:$B$10<>"B")))

结果:

enter image description here

答案 1 :(得分:3)

我在想

=--AND(OR(COUNTIFS(A$2:A$10,A2,B$2:B$10,"A"),COUNTIFS(A$2:A$10,A2,B$2:B$10,"B")),NOT(COUNTIFS(A$2:A$10,A2,B$2:B$10,"<>A",B$2:B$10,"<>B")))

但这似乎有点长!

@JvDV和@Justyna MK在逻辑上是完全正确的,您可能会错过A或B的测试,因为如果不是A或B,则必须是别的东西,这将使它失去资格,因此您可以进行测试代表不是A和不是B。在我的版本中是

=--NOT(COUNTIFS(A$2:A$10,A2,B$2:B$10,"<>A",B$2:B$10,"<>B"))

唯一的区别是,如果您的产品有空白,则我的原始公式不会计算出空白,而简化后的公式会计算出

enter image description here

答案 2 :(得分:3)

这是另一种选择,将以SUM(COUNTIFS(ColA,Customer,ColB,Product A OR B))方式包装的客户订购产品A或B的次数与该特定客户在数据库中的行数进行计数。

enter image description here

C2中的公式:

=N(SUM(COUNTIFS($A$2:$A$10,A2,$B$2:$B$10,{"A","B"}))=COUNTIF($A$2:$A$10,A2))

一个更基本的公式是:

=N(COUNTIFS($A$2:$A$10,A2,$B$2:$B$10,"<>A",$B$2:$B$10,"<>B")=0)

在这里我们只是测试客户购买的产品是否既不是产品A也不是产品B。

向下拖动。