目标是创建一个视觉,显示一年中每个月的预算与保费; 这样的事情:
所以我有两张表BudgetData和Premiums。 如何将这两个表连接到两列:
`BudgetData.InsurenceType = Premiums.Division
and
BudgetData .MonthYear = Premiums.MonthYear`
BudgetDate表:
InsurType Amount MonthYear
Commercial Auto 1000 Jan 2017
Commercial Auto 22000 Feb 2017
Commercial Auto 3000 Mar 2017
Specialty Casualty 4000 Jan 2017
Specialty Casualty 5000 Feb 2017
Specialty Casualty 35000 Mar 2017
保费表:
Division Premium MonthYear
Commercial Auto 2500 Jan 2017
Commercial Auto 1800 Feb 2017
Commercial Auto 3365 Mar 2017
Specialty Casualty 14528 Jan 2017
Specialty Casualty 3323 Feb 2017
Specialty Casualty 1825 Mar 2017
在Power BI中,我只能加入单一关系,我不明白为什么会这样做。
那么最有效的方法是什么呢?在表现方面。
更新:
乔,非常感谢你。 我能加入。 但是,当我尝试进行视觉效果时,它会给我预算金额count
或sum
我设置Don't summarize
并确保数据类型与Premium值(十进制数)相同但仍然存在此问题。
是否与加入有关?
UPDATE2:
.pibx文件可通过Dropbox获取: https://www.dropbox.com/s/mcj1gtonttjtz6y/PremiumByDivisions.pbix?dl=0
更新3
Joe,如果我使用列Premiums
,BudgetData
,Premium
和{{1}从现有表BudgetAmount
和Division
创建单独的计算表,该怎么办? }}。
有点像这样:
然后在我的图表中使用它。如果我点击圆环图,你认为它会按部门过滤吗?
问题是我知道如何在SQL中创建这样的表,但不知道如何在DAX中这样做。 下面是t-sql代码:
MonthYear
答案 0 :(得分:4)
简短的回答是,Power BI并不支持加入两个专栏......但我不认为这是你需要解决的问题。
在不知道您的完整数据模型的情况下,我会做出一些猜测,但我希望这能为您解决问题。
我从这样的BudgetData表开始:
和这样的Premiums表:
我使用Power BI创建了一个带有以下DAX公式的日期表。
Dates = CALENDAR(DATE(2017, 1, 1), DATE(2017, 12, 31))
我还使用Power BI使用以下DAX公式为InsurType / Division创建维度表。
InsurTypes = DISTINCT(
UNION(
SELECTCOLUMNS(BudgetData, "InsurType", BudgetData[InsurType]),
SELECTCOLUMNS(Premiums, "InsurType", Premiums[Division])
)
)
然后我创建了四个表之间的关系,如下所示。
由于您使用的是我不具备的MonthInCalendar
列,因此我使用以下公式创建它和排序列。
MonthInCalendar = LEFT(Dates[Date].[Month], 3) & " " & Dates[Date].[Year]
MonthInCalendarSort = Dates[Date].[Year] & Dates[Date].[MonthNo]
然后我创建了一个如下图所示配置的图形,它显示正确的信息。需要BudgetData和Premiums表之间的关系。
答案 1 :(得分:1)
“创建关系”对话框不允许选择多个列 所以有2个解决方法 1.使用串联InsurType&amp ;;在两个表上创建一个新列。 MonthYear
答案 2 :(得分:1)
您可以为合并选择多个列。
首先将两个表(BudgetDate和Premiums)加载到Power Query中。
然后点击首页 - >合并查询 - >将查询合并为新:
然后,在Merge窗口的顶部,选择'Premiums'(在下拉选择器中),然后单击'Division'列标题,然后按住Ctrl键和< / strong>点击'MonthYear'列标题。 (您会在每个列标题旁边看到“1”和“2”...确保它们以正确的顺序出现,即“Division 1”和“MonthYear 2”。)
然后,在Merge窗口的下一部分中,选择BudgetDate(在下拉选择器中),然后单击'InsurType'列标题,然后按
您的合并窗口如下:
当你点击OK时,你会得到这个:
当你在'NewColumn'的标题中点击这个... 时......你会得到这个:
清除“使用原始列名称作为前缀”旁边的复选标记,然后单击“确定”以获取此信息: