Excel 计算由另一个值索引的范围内的唯一值
我有一个按建筑物名称和社区排序的紧急类型列表。每个建筑名称有5种紧急类型,每个社区有不同数量的建筑。我试图返回与每个社区相关联的建筑数量 我试过这个公式Excel 计算由另一个值索引的范围内的唯一值,excel,indexing,excel-formula,count,Excel,Indexing,Excel Formula,Count,我有一个按建筑物名称和社区排序的紧急类型列表。每个建筑名称有5种紧急类型,每个社区有不同数量的建筑。我试图返回与每个社区相关联的建筑数量 我试过这个公式 =SUMPRODUCT(1/COUNTIF(BuildingCostsTbl[Building Name - Click to go to Sheet],BuildingCostsTbl[Building Name - Click to go to Sheet]&"")) 但它只返回表中的建筑总数,不按社区计算。我也尝试过在这个函数中
=SUMPRODUCT(1/COUNTIF(BuildingCostsTbl[Building Name - Click to go to Sheet],BuildingCostsTbl[Building Name - Click to go to Sheet]&""))
但它只返回表中的建筑总数,不按社区计算。我也尝试过在这个函数中使用MATCH函数来缩小COUNTIF函数的范围标准,但是我不断地得到我不理解的错误
下面是我的excel工作表中的快照,说明了我希望做的事情
Excel快照
我试图使用的用于缩小COUNTIF查找范围的匹配公式是
=MATCH(H9,BuildingCostsTbl[Community])
以下是一个基于handy source的小示例:
D2
中包含上述样本数据的公式:
=SUM(--(FREQUENCY(IF($A$2:$A$9=C2,MATCH($B$2:$B$9,$B$2:$B$9,0)),ROW($B$2:$B$9)-1)>0))
注意:这是一个数组公式,需要通过CtrlShift Center确认
当您使用表格时,您可以根据自己的需要进行调整。以下是一个基于handy source的小示例:
D2
中包含上述样本数据的公式:
=SUM(--(FREQUENCY(IF($A$2:$A$9=C2,MATCH($B$2:$B$9,$B$2:$B$9,0)),ROW($B$2:$B$9)-1)>0))
注意:这是一个数组公式,需要通过CtrlShift Center确认
当您使用表时,您可以根据自己的需要进行调整。您可以使用透视表 鉴于这些数据:
插入数据透视表
并选择将此数据添加到数据模型
拖
- 社区到行
- 将名称转换为值
- 价值成本
- 不同计数
- 更改列名
您可以使用透视表 鉴于这些数据:
插入数据透视表
并选择将此数据添加到数据模型
拖
- 社区到行
- 将名称转换为值
- 价值成本
- 不同计数
- 更改列名
最简单的方法是使用透视表
。如果选择“添加到数据模型”
,则不同计数将是选项之一。您还可以使用透视表来计算每个社区的成本。最简单的方法是使用透视表。如果选择“添加到数据模型”,则不同计数将是选项之一。您还可以使用数据透视表来计算每个社区的成本。是的,数据透视表是最简单的,暂时忘记它:S@JvdV取决于OP对工作表的动态要求。它更简单,但如果更新数据,则需要更新数据透视表。是的,数据透视表最简单,暂时忘记它:S@JvdV取决于OP对工作表的动态要求。它更简单,但是如果你更新数据,你需要更新数据透视表。谢谢你的回复,我尝试了你的公式,并对其进行了修改,所有操作都有效,除了Aroland的“建筑物数量”列中,公式应该输出2,但它只给出了1的值。这里是一个显示精确公式和参考的屏幕截图链接@Marmiketin,你需要按照答案中的解释,以数组的形式输入这个公式。请尝试这样做。是的,我这样做了,在公式栏中,它用两端弯曲的括号显示出来,如{=SUM(-(频率(如果(BuildingCostBl[Community]=H9,匹配(BuildingCostBl[Building Name],BuildingCostBl[Building Name],0)),行(BuildingCostBl[Building Name])-1>0]),但仍不计算Aroland下的2栋建筑。我用数据透视表做了同样的事情,Aroland是2。啊,对了,@Marmiketin,在你的例子中,你从第9行开始计算公式,所以你需要减去8,而不是1。那就行了;)真是太棒了,我想知道-1是干什么用的。感谢您的帮助。感谢您的回复,我尝试了您的公式并对其进行了修改,除Aroland的“建筑物数量”列外,其他所有内容均有效。该公式应输出2,但其值仅为1。这里是一个显示精确公式和参考的屏幕截图链接@Marmiketin,你需要按照答案中的解释,以数组的形式输入这个公式。请尝试这样做。是的,我这样做了,在公式栏中,它用两端弯曲的括号显示出来,如{=SUM(-(频率(如果(BuildingCostBl[Community]=H9,匹配(BuildingCostBl[Building Name],BuildingCostBl[Building Name],0)),行(BuildingCostBl[Building Name])-1>0]),但仍不计算Aroland下的2栋建筑。我用数据透视表做了同样的事情,Aroland是2。啊,对了,@Marmiketin,在你的例子中,你从第9行开始计算公式,所以你需要减去8,而不是1。那就行了;)真是太棒了,我想知道-1是干什么用的。谢谢你的帮助。