我有一个类似于我上一个的问题。我试图弄清楚如何找到一次只购买胶带,笔和订书机的客户。
Name CustmoerID Item Name Item # Desired Results
Bob 1 Pen 555
Bob 1 Stapler 222
Bob 1 Stapler 222
Bob 1 Tape 111
Greg 2 Pen 555
Greg 2 Pen 555
Greg 2 Stapler 222
Tim 3 Stapler 222
Tim 3 Tape 666
Tim 3 Glue 333
Mark 4 Pen 555 Check
Mark 4 Stapler 222 Check
Mark 4 Tape 111 Check
这是我认为的壁橱。但没有运气。
=IF(AND(OR(D2={111}),COUNTIF(B:B,B2)=1)*AND(OR(D2={222}),COUNTIF(B:B,B2)=1)*AND(OR(D2={555}),COUNTIF(B:B,B2)=1),"Check","")
编辑 - 这让我更接近但仍然无法正常工作。
=IF(AND(OR(D11={111,222,555}),COUNTIF(B:B,B11)=3)*AND(OR(D11={111,222,555}),COUNTIF(B:B,B11)=3)*AND(OR(D11={111,222,555}),COUNTIF(B:B,B11)=3),"Check","")
答案 0 :(得分:2)
这允许对同一事物使用两个代码并检查是否有三个。
<li>
<a href="https://www.google.com/chrome/browser" target="_blank">
<img alt="Chrome" src="@Url.Content(" ~="" content="" images="" chrome-logo.png")"="">
CHROME
</a>
</li>
答案 1 :(得分:1)
您可以使用以下公式来确定给定客户是否使用以下公式(在本例中为钢笔)中的一个和一个给定项目:
=COUNTIFS(B:B, B2,D:D, 555)=1
然后,您也可以将其转换为订书机和磁带。最简单的方法是将每个这些放入他们自己的列并使用AND语句,但所有这些一起看起来像:
=AND(COUNTIFS(B:B, B2,D:D, 555)=1, COUNTIFS(B:B, B2,D:D, 222)=1, COUNTIFS(B:B, B2,D:D, 111)=1)
答案 2 :(得分:0)
如果您想要购买任何一件商品的人,而不是三件商品中的每件商品中的一件,您可以使用传统的&#39;数据透视表:
这只是一个数据透视表,同时应用了项目过滤器(使用切片器)和应用了值过滤器,仅显示count = 1的结果
请注意,您需要选中“数据透视表选项”中的“允许每个字段的多个筛选器数”选项&gt;总计&amp;过滤器对话框,以便同时设置过滤器和值过滤器。
如果你想要那些购买了三个 中 中的一个的人,你可以使用传统的数据透视表,并在旁边运行一个公式(如果只使用像Scott Craner建议的那样的公式,那么就可以使用任何优势,或者你可以使用OLAP数据透视表并使用DAX编写测量。这个相当新的功能非常棒:您现在可以在数据透视表本身内编写复杂的公式。
如果使用数据透视表+公式方法,它看起来像这样:
......公式为:
=AND(GETPIVOTDATA("Item Name",$B$1,"Name",B3,"Item #",C$2)=1,GETPIVOTDATA("Item Name",$B$1,"Name",B3,"Item #",D$2)=1,GETPIVOTDATA("Item Name",$B$1,"Name",B3,"Item #",F$2)=1,GETPIVOTDATA("Item Name",$B$1,"Name",B3)=3)
但这与斯科特克拉纳给出的伟大答案之间没有任何优势。
或者您可以使用DAX度量和基于DataModel的OLAP数据透视表。
这要求您拥有内置DataModel的Excel(即Excel 2013或更高版本) 或 具有PowerPivot加载项的Excel版本已安装(Excel 2010免费版,内置于其他Excel版本,如果您拥有合适的高级版本,如Professional Plus等)。
结果如下:
...如果你没有安装PowerPivot(但是有Excel 2013或更高版本),那么如何添加一个度量:你只需右击这里:
这要求您检查&#34;添加到数据模型&#34;首次制作数据透视表时的选项:
2018年5月更新:
我在https://community.powerbi.com/t5/Desktop/Identify-customers-who-had-puchased-exactly-one-unit-of-three/td-p/407941发布了一个关于如何更加动态地执行此操作的问题,并得到了4个很棒的答案。所有四个都使用Excel 365,但只有Phil Seamark的第三个答案适用于我的Excel 2016构建。这里是:
它的工作原理是使用旧的&#34;参数arg&#34;在Table2的第二列中使用1,2,4 ......的技巧,这样你就可以看到有人购买的所有内容都添加到7. Sneaky!
以下是衡量标准:
=COUNTROWS(
FILTER(
SUMMARIZE(
'Table1',
Table1[Customer],
"Score", SUM('Table2'[ID]),
"myRows",COUNTROWS('Table1')
),[Score]=SUM(Table2[ID]) && [myRows]=COUNTROWS(Table2))
)