计算 2 列中值的出现次数
Count Occurances of value in 2 columns
我在 PowerBi 中有一项简单的工作要做,但出于某种原因我无法理解它。
我有项目 table - 在这个 table 中我们有“开始日期”和“结束日期”。我想要的是一个较小的 table,第一列为“年和季度”,并且在该“年和季度”中开始的项目数和结束的项目数。
项目编号
开始
结束
xxxx23
2019-01
2019-03
xxxx24
2019-03
2020-01
xxxx25
2019-03
2020-02
我所追求的是如下所示:
年度和季度
项目开始
项目结束
2019-01
1
0
2019-03
2
1
2019-04
0
0
在进行计算时,我得到了错误的计数。非常感谢任何帮助!
您可以使用 UNION 创建一个新的 table。您可以使用原来的 table 两次,但使用不同的列。
NewTable =
UNION(
SELECTCOLUMNS( Projects,
"date",Projects[started],
"project",Projects[project],
"Started",1,
"Ended",0
)
,
SELECTCOLUMNS( Projects,
"date",Projects[ended],
"project",Projects[project],
"Started",0,
"Ended",1
)
)
如果您有日历Table,您可以通过以下两种方式实现询问
#1
newTable =
VAR _1 =
SUMMARIZE ( 'Calendar', 'Calendar'[Yr & Qt] )
VAR _2 =
ADDCOLUMNS (
ADDCOLUMNS (
_1,
"Project Started",
COUNTX (
FILTER ( Projects, Projects[started] = EARLIER ( [Yr & Qt] ) ),
[started]
)
),
"Project Ended", COUNTX ( FILTER ( Projects, Projects[ended] = EARLIER ( [Yr & Qt] ) ), [ended] )
)
RETURN
_2
#2
Table 2 =
ADDCOLUMNS (
ADDCOLUMNS (
SUMMARIZE ( 'Calendar', 'Calendar'[Yr & Qt] ),
"Project Start Count",
CALCULATE (
CALCULATE (
COUNTX ( Projects, Projects[started] ),
TREATAS ( SUMMARIZE ( 'Calendar', 'Calendar'[Yr & Qt] ), Projects[started] )
)
)
),
"Project End Count",
CALCULATE (
CALCULATE (
COUNTX ( Projects, Projects[ended] ),
TREATAS ( SUMMARIZE ( 'Calendar', 'Calendar'[Yr & Qt] ), Projects[ended] )
)
)
)
结果如下
该解决方案对日历 tbl 的依赖性最小,其中包含如下 Yr & Qt
的列
我在 PowerBi 中有一项简单的工作要做,但出于某种原因我无法理解它。
我有项目 table - 在这个 table 中我们有“开始日期”和“结束日期”。我想要的是一个较小的 table,第一列为“年和季度”,并且在该“年和季度”中开始的项目数和结束的项目数。
项目编号 | 开始 | 结束 |
---|---|---|
xxxx23 | 2019-01 | 2019-03 |
xxxx24 | 2019-03 | 2020-01 |
xxxx25 | 2019-03 | 2020-02 |
我所追求的是如下所示:
年度和季度 | 项目开始 | 项目结束 |
---|---|---|
2019-01 | 1 | 0 |
2019-03 | 2 | 1 |
2019-04 | 0 | 0 |
在进行计算时,我得到了错误的计数。非常感谢任何帮助!
您可以使用 UNION 创建一个新的 table。您可以使用原来的 table 两次,但使用不同的列。
NewTable =
UNION(
SELECTCOLUMNS( Projects,
"date",Projects[started],
"project",Projects[project],
"Started",1,
"Ended",0
)
,
SELECTCOLUMNS( Projects,
"date",Projects[ended],
"project",Projects[project],
"Started",0,
"Ended",1
)
)
如果您有日历Table,您可以通过以下两种方式实现询问
#1
newTable =
VAR _1 =
SUMMARIZE ( 'Calendar', 'Calendar'[Yr & Qt] )
VAR _2 =
ADDCOLUMNS (
ADDCOLUMNS (
_1,
"Project Started",
COUNTX (
FILTER ( Projects, Projects[started] = EARLIER ( [Yr & Qt] ) ),
[started]
)
),
"Project Ended", COUNTX ( FILTER ( Projects, Projects[ended] = EARLIER ( [Yr & Qt] ) ), [ended] )
)
RETURN
_2
#2
Table 2 =
ADDCOLUMNS (
ADDCOLUMNS (
SUMMARIZE ( 'Calendar', 'Calendar'[Yr & Qt] ),
"Project Start Count",
CALCULATE (
CALCULATE (
COUNTX ( Projects, Projects[started] ),
TREATAS ( SUMMARIZE ( 'Calendar', 'Calendar'[Yr & Qt] ), Projects[started] )
)
)
),
"Project End Count",
CALCULATE (
CALCULATE (
COUNTX ( Projects, Projects[ended] ),
TREATAS ( SUMMARIZE ( 'Calendar', 'Calendar'[Yr & Qt] ), Projects[ended] )
)
)
)
结果如下
该解决方案对日历 tbl 的依赖性最小,其中包含如下 Yr & Qt
的列