如何计算多个或所有 U.S 中有多少不同/独特的产品可用。状态?
How do I calculate how many distinct / unique products are available in multiple or all U.S. states?
我正在尝试确定在多个或所有国家/地区有多少种不同的产品。 (我将重点关注 3 个 U.S。州、华盛顿州、俄勒冈州和加利福尼亚州)
举个例子,我有一个 table 看起来像这样:
Product
State
First
WA
First
CA
First
CA
Second
WA
Second
OR
Second
CA
Second
OR
Third
OR
Third
WA
Third
WA
Third
WA
Fourth
WA
Fourth
CA
Fourth
OR
Fourth
CA
在 table 中,我有 4 种独特的产品和 3 种独特的状态。使用 dax,我想找到在所有 3 个州都可用的独特产品。
产品 Second 和 Fourth 的输出应显示 2,因为它们具有覆盖状态 WA、CA 和 OR。
我试过
dax = CALCULATE(DISTINCTCOUNT(table1[product],filter(table1,[state] IN {"WA","CA","OR"}))
但它 returns 任何州的不同产品的最大数量。
您可以尝试使用 INTERSECT 函数(从您的示例数据测量 return 一,因为产品第四没有 'OR'):
dax =
var __WA_product = CALCULATETABLE(VALUES(table1[product]), filter(table1,[state] = "WA"))
var __CA_product = CALCULATETABLE(VALUES(table1[product]), filter(table1,[state] = "CA"))
var __OR_product = CALCULATETABLE(VALUES(table1[product]), filter(table1,[state] = "OR"))
return
countrows( INTERSECT(INTERSECT(__WA_product, __CA_product ), __OR_product ))
你可以试试这个
Measure4 =
VAR _0 =
CONCATENATEX ( VALUES ( 'fct'[State] ), fct[State], ",", fct[State], DESC )
VAR _1 =
COUNTX ( VALUES ( 'fct'[State] ), fct[State] )
VAR _2 =
IF ( _1 > 2, _0, BLANK () )
RETURN
_2
Edit
您可以在上述措施之后创建以下措施,以在卡片中获得您想要的结果
newMeasure =
COUNTX (
FILTER (
ADDCOLUMNS (
SUMMARIZE (
fct,
fct[Product],
"test", CONCATENATEX ( VALUES ( fct[State] ), fct[State], ",", fct[State], DESC )
),
"test2", [Measure4]
),
[test2] <> BLANK ()
),
[test2]
)
我正在尝试确定在多个或所有国家/地区有多少种不同的产品。 (我将重点关注 3 个 U.S。州、华盛顿州、俄勒冈州和加利福尼亚州)
举个例子,我有一个 table 看起来像这样:
Product | State |
---|---|
First | WA |
First | CA |
First | CA |
Second | WA |
Second | OR |
Second | CA |
Second | OR |
Third | OR |
Third | WA |
Third | WA |
Third | WA |
Fourth | WA |
Fourth | CA |
Fourth | OR |
Fourth | CA |
在 table 中,我有 4 种独特的产品和 3 种独特的状态。使用 dax,我想找到在所有 3 个州都可用的独特产品。
产品 Second 和 Fourth 的输出应显示 2,因为它们具有覆盖状态 WA、CA 和 OR。
我试过
dax = CALCULATE(DISTINCTCOUNT(table1[product],filter(table1,[state] IN {"WA","CA","OR"}))
但它 returns 任何州的不同产品的最大数量。
您可以尝试使用 INTERSECT 函数(从您的示例数据测量 return 一,因为产品第四没有 'OR'):
dax =
var __WA_product = CALCULATETABLE(VALUES(table1[product]), filter(table1,[state] = "WA"))
var __CA_product = CALCULATETABLE(VALUES(table1[product]), filter(table1,[state] = "CA"))
var __OR_product = CALCULATETABLE(VALUES(table1[product]), filter(table1,[state] = "OR"))
return
countrows( INTERSECT(INTERSECT(__WA_product, __CA_product ), __OR_product ))
你可以试试这个
Measure4 =
VAR _0 =
CONCATENATEX ( VALUES ( 'fct'[State] ), fct[State], ",", fct[State], DESC )
VAR _1 =
COUNTX ( VALUES ( 'fct'[State] ), fct[State] )
VAR _2 =
IF ( _1 > 2, _0, BLANK () )
RETURN
_2
Edit
您可以在上述措施之后创建以下措施,以在卡片中获得您想要的结果
newMeasure =
COUNTX (
FILTER (
ADDCOLUMNS (
SUMMARIZE (
fct,
fct[Product],
"test", CONCATENATEX ( VALUES ( fct[State] ), fct[State], ",", fct[State], DESC )
),
"test2", [Measure4]
),
[test2] <> BLANK ()
),
[test2]
)