在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. 识别这些卖家
  2. 应用基于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_idbuyer_idHAVING子句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 

在这里输入图像说明