在Excel或SQL Server中进行条件格式化
我有一个Excel表中约500k的logging。 我负责识别具有多个购买ID和买方ID的卖方。 例如,seller_id(12525)具有三个不同的purchase_id(8569,8591,8594)和buyer_id C160511,C160512,C160513)。 什么是在Excel 2013中使用正确的语法,可以轻松识别我感兴趣的logging? 我google了条件格式,但会有人协助?
谢谢,乔
location Loc_Id Purchase_id buyer_id Seller_Id Date CA 49456 8569 C160511 12525 5/3/2016 CA 49456 8569 C160511 12525 5/3/2016 CA 49456 8591 C160512 12525 5/3/2016 CA 49456 8591 C160512 12525 5/3/2016 CA 49456 8594 C160513 12525 5/3/2016 CA 49456 8594 C160513 12525 5/3/2016 TX 37140 8620 C170166 5621 1/24/2017 TX 37140 8621 C170167 5621 1/24/2017
既然你提到SQL Server,我会用这个答案。 老实说,你的数据库是一个更好的地方做这个。 用excel你会有两个问题。
- 识别这些卖家
- 应用基于1的条件格式。
问题1将在Excel中对500klogging进行重处理。
在SQL Server上:
SELECT Seller_ID, CASE WHEN COUNT(DISTINCT Purchase_ID) > 1 THEN 'X' ELSE NULL END AS multiple_purchases, CASE WHEN COUNT(DISTINCT Buyer_ID) > 1 THEN 'X' ELSE NULL END AS multiple_buyers FROM your_table_name HAVING multiple_purchases = 'X' OR multiple_buyers='X' GROUP BY Seller_ID;
因此,在这里,我们只是通过Seller_ID
汇总logging,然后使用CASE
语句和汇总公式COUNT(DISTINCT <field>)
来获取不同(唯一) purchase_id
和buyer_id
。 HAVING
子句testing这些testing是否产生了一个命中,如果不是,则从结果集中删除logging。
解决scheme有点冗长但很容易。 我已经包含一个额外的条件作为卖家ID 5623,没有多个买家和购买ID。 这样做是为了更好地testing这个解决scheme。 我只突出显示了具有多个买方和购买ID的sellerIds。
我的解决scheme的形象: –
注意: – 所有的公式或单元格名称是根据我的解决scheme,如图所示
现在解决scheme。 我会在不同的部分打破它:
第1步: – 添加一列说Purchase_Id_cnt,并写下这个公式,并把它拖下来,直到结束
=IF(SUMPRODUCT(($A$2:$A2=A2)*($C$2:$C2=C2))>1,0,1)
第二步: – 添加一个列说Buyer_Id_cnt,并写下这个公式,并拖动到最后
=IF(SUMPRODUCT(($B$2:$B2=B2)*($C$2:$C2=C2))>1,0,1)
第三步:在同一张纸上添加数据透视表(也可以使用不同的纸张,我在同一张纸上使用了单元格F1)
第4步: – 添加另一列说头(你可以给一个更好的名字),并在我的情况下,input这个公式对应于单元格I3中的枢轴表的公式,并将其向下拖动,直到结束
=IF(AND(G3>1,H3>1),1,0)
第五步: – 现在select/ Higlight C2至C11。 然后去条件格式。 select“新规则”。 然后select“使用公式确定要格式化的单元格”。
第六步:在“格式数值,这个公式为真”的地方input这个公式
=IFERROR(VLOOKUP(C2,$F$3:$I$5,4,0),0)=1
第七步: – 不要按“确定”。 点击“格式”。 进入“填写”标签。 select你想要的任何颜色。 我select黄色,然后按“确定”。
完成!
在条件格式中使用以下公式:
=COUNTIFS($B:$B,$B1,$C:$C,"<>" & $C1)>0