Excel公式根据三个不同的标准计算唯一值

时间:2016-08-26 16:28:36

标签: excel excel-vba excel-formula vba

我正在尝试在电子表格中按行计算唯一发票。我希望excel通过读取1表示唯一或0表示重复来执行此操作。 我已经成功= IF(COUNTIF($ C $ 3:C3,C3)> 1,0,1)。

这给了我一个基于一个特定专栏的准确计数,但我没有任何运气推进超出一列。我希望这个公式基于三个标准,而不仅仅是两个标准。

  A		B	C		D		E		F		G
  Vendor ID	Name 1	Invoice Number	Inv Date	Sum Amount	Acctg Date	Unique#
  00001		A	0000001		3/16/2015	5.00		5/11/2016	1
  00010		M	0000001		9/14/2015	10.00		5/24/2016	1	
  00010		M	0000001		9/4/2015	15.00		5/24/2016	0
  00005		K	0000285		4/8/2016	20.00		4/18/2016	1
  000106	O	000042		6/7/2016	30.00		6/21/2016	1
  000107	H	006333		4/5/2016	6.00		4/11/2016	1
  000107	H	006333		4/5/2016	6.00		4/12/2016	1​

由于我需要提取报告,所有列中都有重复项。我想要一个下拉公式,通过将每个行与三列中的每一列的总组合进行比较,在每行行上以1,0格式给出我唯一的A,C,F值。请注意供应商M的发票编号与供应商H重复,根据标准有两个不同的发票。

由于数据的大小,这将大量消耗资源。我看着大约20-90k线,但也许有人可以给我看一个更好的捕鼠器? VBA宏?比赛指数?无论如何,继续失败!

请随意解释他们为什么不工作,或者他们怎么做。另外,与我的例子相比,请忽略列位置,因为我经常搬东西。

= A& C& F然后使用If(countif('ColumnX')),但这不能正常工作,因为我发现当它实际上是唯一时被列为重复的数据。我认为这样做的根本问题是将日期和一般格式组合到一个单元格中。

=SUMPRODUCT((1/COUNTIFS(E3:E1000,E3:E1000,J3:J1000,J3:J1000,G3:G1000,G3:G1000)))

多个版本的AND与IF(CountIF)

= A& C和CountIF(日期)的多个版本

我还在SE中查看了以下问题并发现它们很有用,但最终不是我特别需要的,或者我在实施时失败了。

Simple Pivot Table to Count Unique Values 我根据独特的发票尝试了这个失败,需要三个标准而不仅仅是一个。

Count unique values in Excel 见上文。

Excel Formula: Count Unique Values in a Row Based on Corresponding Value in Another Row 这看起来应该有效,但我尝试了,但未能正确适应我的问题。

Excel - Return Count of Unique Values Based on Two Columns 这也应该与添加第三列完美配合。公式对我大吼大叫,叫我名字。提到的事情无法解决愚蠢问题。

如果问题的任何部分不清楚,请告诉我。我尽力不复制和修剪信息。提前谢谢!

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,基本上您希望G列检查当前行是否与其上方任何行重复(基于列A,C和F)。如果是,则返回0,否则返回1。

如果这是您希望实现的目标,您可以使用COUNTIFS()函数来确定行上方是否有任何重复项,然后只需检查count = 0或是> 0(= 0表示它是唯一的,> 0表示它是重复的。)

G栏的公式如下:

G2: 1 (obviously we know it is unique since there are no values above it to be a duplicate of)
G3: =IF(COUNTIFS($A$2:A2,A3,$C$2:C2,C3,$F$2:F2,F3)=0,1,0)

然后,向下拖动G3。

希望这就是你要找的东西。