Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi 如何获取Power BI桌面度量中空格的deafult字符串值_Powerbi_Dax - Fatal编程技术网

Powerbi 如何获取Power BI桌面度量中空格的deafult字符串值

Powerbi 如何获取Power BI桌面度量中空格的deafult字符串值,powerbi,dax,Powerbi,Dax,我有两个表(Sales[OrderNumer,Price,ItemId,…]和Item[Id,Name,Type]),我有一个返回如下字符串的度量值: ItemsType1 = CALCULATE( CONCATENATEX('Sales', RELATED('Item'[Name]), ","), 'Item'[Type] = "type1" 我在Power BI Desktop中有一个订单级别的表,带有度量项Stype1[OrderNumer,ItemsType1]。我想将I

我有两个表(Sales[OrderNumer,Price,ItemId,…]和Item[Id,Name,Type]),我有一个返回如下字符串的度量值:

 ItemsType1 = CALCULATE(
     CONCATENATEX('Sales', RELATED('Item'[Name]), ","), 'Item'[Type] = "type1" 
我在Power BI Desktop中有一个订单级别的表,带有度量项Stype1[OrderNumer,ItemsType1]。我想将ItemType1列的空白值更改为默认值,如“n/a”,并将度量值改写为:

 ItemsType1 = VAR x = CALCULATE(
     CONCATENATEX('Sales', RELATED('Item'[Name]), ","), 'Item'[Type] = "type1") 
 RETURN IF( ISBLANK(x), "n/a", x )
度量值返回预期值,但这样,对于
Sales
表中的600000行,内存突然增长,视觉崩溃。我有16GB的内存。我认为问题在于IF语句,但我不知道为什么。我想了解为什么在性能上存在这种差异,以及最好的方法是什么


我很确定它爆炸的原因是因为您编写它的方式,它将返回
“n/a”
,用于表中所有可能的事情,而不仅仅是您正在筛选的
类型1

解决方案是将
IF
移动到串联内部。试着这样做:

ItemsType1 =
CALCULATE (
    CONCATENATEX ( 'Sales',
        IF(ISBLANK( RELATED ( 'Item'[Name] ) )
            "n/a",
            RELATED ( 'Item'[Name] )
        ),
    "," ),
    'Item'[Type] = "type1"
)

上面的工作并不像我预期的那样。尝试将
返回
行改为:

RETURN
    IF(
        COUNTROWS( RELATEDTABLE( 'Item' ) ) = 0,
        BLANK(),
        IF( ISBLANK( x ), "n/a", x )
    )

这将在执行任何较重的计算之前检查任何空的相关表。

您好,我尝试了您的建议,但没有
type1
相关项的行仍为空。这就像只对那些具有相关
type1
项的行计算
catenatex
表达式,因此其余行的度量值为空。我还尝试了
IF
语句中的其他条件。您是正确的。它不会返回除
type1
之外的任何内容。我以为这就是你想要的。您能否准确地指定要显示的
n/a
级别以及留空的级别?你的视频截图会有帮助的。当然,我更新了一个链接到示例图像的问题。对于订单1003,我需要一个
n/a
,该订单没有
type1
的相关项目。我的销售表大约有600000行。您好,我尝试了您的解决方案,但内存性能相同。我认为,
COUNTROWS(RELATEDTABLE('Item'))=0
对于我的情况总是
false
。Hmmm。如果将其包装在
计算中会怎么样<代码>计算(COUNTROWS(RELATEDTABLE('Item')),'Item'[Type]=“type1”)=0