Arrays 基于多个数组标准计算表中的行数
我试图根据表中不同列中的多个条件计算表中的行数。但是,公式中没有直接的标准;它们是我想引用的数组(而不是直接在公式中列出它们) 范围表示例:Arrays 基于多个数组标准计算表中的行数,arrays,excel,Arrays,Excel,我试图根据表中不同列中的多个条件计算表中的行数。但是,公式中没有直接的标准;它们是我想引用的数组(而不是直接在公式中列出它们) 范围表示例: Group Status a 1 b 4 b 6 c 4 a 6 d 5 d 4 a 2 b 2 d 3 b 2 c 1 c 2 c 1 a 4 b 3 标准/
Group Status
a 1
b 4
b 6
c 4
a 6
d 5
d 4
a 2
b 2
d 3
b 2
c 1
c 2
c 1
a 4
b 3
标准/阵列示例:
group
a
b
status
1
2
3
如果我只在该表中的一个范围(1列)中进行了一次数组搜索,我就能够做到这一点:
{=SUM(COUNTIFS(data[Group],group[group]))}
按预期返回“9”(=数据表组列中与组[group]中的任何值匹配的行的总和)
但是,如果我添加第二个不同的范围和不同的数组,则会得到错误的结果:
{=SUM(COUNTIFS(data[Group],group[group], data[Status],status[status]))}
返回“3”,但应返回“5”(=状态列中有1、2或3且组列中有a或b的行的总和)
我搜索并搜索了与使用sumproduct或在公式中定义数组有关的各种想法,而不是将整个公式分类为数组,但我无法通过这些方法获得预期的结果
谢谢您的帮助。因为您的
组
和状态
标准是不同数量的值(组有2个值,而状态
有3个值),我不确定您是否可以用一个公式来实现这一点。我所知道的最好的方法是使用一个helper列(如果愿意,可以隐藏)
将此数组公式放在助手列中,并向下复制数据的长度(必须使用Ctrl+Shift+Enter确认数组公式):
然后使用:
=COUNTIF(helpercolumn,TRUE)
获取计数您可以使用稍微不同的方法,使用Power Query/Power Pivot
将表命名为数据
、组
和状态
,然后创建以下查询,名为过滤数据
:
let
tbData = Excel.CurrentWorkbook(){[Name="Data"]}[Content],
tbGroup = Excel.CurrentWorkbook(){[Name="Group"]}[Content],
tbStatus = Excel.CurrentWorkbook(){[Name="Status"]}[Content],
#"Merged Group" = Table.NestedJoin(tbData,{"Group"},tbGroup,{"Group"},"tbGroup",JoinKind.Inner),
#"Merged Status" = Table.NestedJoin(#"Merged Group",{"Status"},tbStatus,{"Status"},"Merged Status",JoinKind.Inner),
#"Removed Columns" = Table.RemoveColumns(#"Merged Status",{"tbGroup", "Merged Status"}),
#"Changed Type" = Table.TransformColumnTypes(#"Removed Columns",{{"Status", type number}})
in
#"Changed Type"
仅作为连接加载到
,并勾选加载到数据模型
现在创建一个DAX度量:
Status Sum:=SUM ( 'Filtered Data'[Status] )
然后,您可以在工作表上使用以下公式,获得符合组
和状态
表中指定条件的行的状态值之和:
=CUBEVALUE("ThisWorkbookDataModel","[Measures].[Status Sum]")
只需刷新数据连接即可更新值。最终我想转到PBi,谢谢您的建议。我现在很抱歉,但我会尽快检查您的解决方案。非常感谢。谢谢你,泰格拉瓦塔。我现在很忙,一有机会我就会试试。工作很有魅力,我理解你通过和/或帮助栏解决挑战的方式。再次感谢你!
=CUBEVALUE("ThisWorkbookDataModel","[Measures].[Status Sum]")