Excel:使用条件和组合计算唯一值

为了简化这一点,假设我在Excel 2013(或LibreOffice)中有一个电子表格,其中有一个列表,其中可以看到下面的值:

(对不起,图片上传目前没有为我工作,我会尽快用快照replace等宽文本)

Country City Person Car Home USA New York Alice 1 1 USA New York Bob 1 0 USA Washington Charlie 1 1 Canada Ontario Alice 0 1 Canada Ontario Bob 1 0 Canada Ontario Charlie 1 0 Canada Ontario Charlie 1 0 Canada Toronto Alice 1 1 Canada Toronto Bob 0 0 

组合select器:

 Country -> Canada City -> Ontario 

总计:

  SUM Distinct people Car 3 2 Home 1 2 

值可以重复。 查理在安大略省(加拿大)有一辆车,我们可以看到两条线。

然后我有两个组合按国家和城市过滤(我将简化考虑只有城市),在底部我想要使用公式计算如下:

  • 给定一个选定的城市在组合,多less车(和家园),我可以加起来。 一旦我定义范围,我结束了下面的公式。 也就是说,安大略省有3辆车,那就是3:

    =IF(A15<>"All",SUMIF(RegionRange,A15,Column1Range),SUM(Column1Range))

  • 实际的问题。 给定一个选定的城市组合,有多less不同的人在那个城市有一辆汽车。 也就是说,虽然安大略省有3辆车,但只有2人(鲍勃和查理)。 看看如何在Excel中计算唯一值的问题我可以使用下面的公式,但是这不考虑组合中的filter:

    =SUM(IF(FREQUENCY(MATCH(Column1Range,Column1Range,0),MATCH(Column1Range,Column1Range,0))>0,1))

我的问题是什么公式我可以使用,而不是以前的考虑到在组合filter。

请注意,我希望数据保持可见,并更新总数,因为我select组合中的某些东西,所以我想要的是一个公式来计算它,而不是使用自动filter。

你可以使用这个数组公式:

 =SUM(IF(($B$2:$B$10=$H$1)*($D$2:$D$10>0),1/COUNTIFS($C$2:$C$10,$C$2:$C$10,$D$2:$D$10,">0",$B$2:$B$10,$H$1))) 

作为一个数组公式,它需要使用Ctrl-Shift-Enter进行确认,而不是在退出编辑模式时进入。 如果正确完成,则Excel将在公式周围放置{}

在这里输入图像描述