ssas - 将一列中一定百分比的值替换为另一列中的值

标签 ssas powerbi dax powerquery

我有一个棘手的问题,也许你们中的一个可以帮忙。

我有一列包含几个不同的值,其中一个是“不可用”。我想通过用 4 个新值替换这些“不可用”值来创建一个计算列,例如“值 1”、“值 2”等。平均分配,即 25% 将是“值 1”,25% 将是“值 1”。是“Value 2”等。我真的很感谢我能得到的任何帮助。我应该提到,我的数据位于 SSAS TDM 中,因此我无法使用查询编辑器。

谢谢!

下面您将找到一些测试数据以及我想要的结果。

Example = 
DATATABLE (
    "Value", STRING,
    {
        { "Not Available" },
        { "Not Available" },
        { "Not Available" },
        { "Not Available" },
        { "Not Available" },
        { "Not Available" },
        { "Not Available" },
        { "Not Available" },
        { "Not Available" },
        { "Not Available" },
        { "Not Available" },
        { "Not Available" },
        { "Bike" },
        { "Bike" },
        { "Bike" },
        { "Bike" },
        { "Skateboard" },
        { "Skateboard" },
        { "Skateboard" },
        { "Skateboard" },
        { "Skateboard" },
        { "Skateboard" },
        { "Snowboard" },
        { "Snowboard" },
        { "Snowboard" },
        { "Snowboard" },
        { "Snowboard" },
        { "Snowboard" },
        { "Penny Board" },
        { "Penny Board" },
        { "Penny Board" },
        { "BMX" },
        { "BMX" },
        { "BMX" }
    }
)

期望的结果:

enter image description here

最佳答案

与其他答案一样,我假设您有一个索引替换表。我还假设您可以为 Example 表创建一个唯一索引(这是一个单独的问题)。

逻辑是相同的,但现在作为 DAX 计算列:

Value2 =
IF (
    Example[Value] = "Not Available",
    LOOKUPVALUE (
        'Replace'[Value],
        'Replace'[Index], MOD ( Example[Index], COUNTROWS ( 'Replace' ) )
    ),
    Example[Value]
)

关于ssas - 将一列中一定百分比的值替换为另一列中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54929822/

相关文章:

PowerBI:列中的最后 3 个非空白值

powerbi - 使用 PowerBI 确定机器的风格转换

c# - SSAS ADOMD 连接强制关闭

ssas - 计算成员中的 WHERE 子句

ssas - "Duplicate attribute key"当属性不是键时出错

c# - 尝试引用 Azure Analysis Service 表格模型 C# 时出现异常

powerbi - 维度建模 - 模棱两可的关系

excel - 按分隔符幂查询的 X 实例拆分行

powerbi - 如何将来自两个查询的汇总数据加入 DAX Power BI 中的新表

concatenation - 连接三列的 DAX 公式