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

Excel:使用条件和组合计算唯一值,excel,excel-formula,excel-2013,libreoffice-calc,Excel,Excel Formula,Excel 2013,Libreoffice Calc,为了简化这一点,假设我在Excel 2013(或LibreOffice)中有一个电子表格,其中有一个列表,其中有行,我可以看到以下值: (很抱歉,图像上载当前不适用于我。我将尽快用快照替换等距文本) 组合选择器: Country -> Canada City -> Ontario 总数: SUM Distinct people Car 3 2 Home 1 2

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

(很抱歉,图像上载当前不适用于我。我将尽快用快照替换等距文本)

组合选择器:

Country -> Canada
City    -> Ontario              
总数:

        SUM     Distinct people     
Car     3       2       
Home    1       2       
值可以重复。我们可以看到查理在安大略省(加拿大)有一辆车的两条线路

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

  • 给定组合中选定的城市,我能加起来有多少辆车(和房子)。一旦我定义了范围,我就用下面的公式结束了。也就是说,安大略省有3辆车,即3辆:

    =IF(A15“全部”、SUMIF(RegionRange,A15,Column1Range)、SUM(Column1Range))

  • 实际问题。给定组合中选定的一个城市,有多少不同的人在该城市拥有一辆汽车。也就是说,虽然安大略省有3辆车,但只有2个人(鲍勃和查理)。看一看关于我的问题,可以使用以下公式,但这不会考虑组合中的过滤器:

    =SUM(如果频率(匹配(Column1Range,Column1Range,0),匹配(Column1Range,Column1Range,0))>0,1))

我的问题是,我可以使用什么公式来代替前一个公式来考虑组合中的过滤器


请注意,我希望数据保持可见,并在我在组合框中选择某些内容时更新总计,因此我需要的是一个计算公式,而不是使用自动过滤器。

您可以使用以下数组公式:

=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而不是Enter进行确认。如果操作正确,Excel将在公式周围放置
{}


文本比照片好,因为我们可以复制和粘贴文本
=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)))