You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用DAX在PowerBI中整理数据以制作韦恩图?

用DAX把用户-平台数据转成PowerBI韦恩图适配格式

第一步:先做去重,提取唯一的用户-平台组合

原始数据里有大量重复记录,先生成一张只保留唯一组合的表:

唯一用户平台表 = 
DISTINCT(
    SELECTCOLUMNS(
        '你的原始数据表',
        "用户名", '你的原始数据表'[用户名],
        "平台", '你的原始数据表'[平台]
    )
)

把你的原始数据表替换成你实际的表名即可。

第二步:生成用户的平台归属宽表

基于去重后的表,生成每个用户一行、每个平台作为列的结构,用1标记用户使用过该平台,0标记未使用:

韦恩图专用数据源 = 
VAR 所有用户 = DISTINCT('唯一用户平台表'[用户名])
RETURN
ADDCOLUMNS(
    所有用户,
    "Instagram", IF(COUNTROWS(FILTER('唯一用户平台表', '唯一用户平台表'[用户名] = EARLIER('唯一用户平台表'[用户名]) && '唯一用户平台表'[平台] = "Instagram")) > 0, 1, 0),
    "Facebook", IF(COUNTROWS(FILTER('唯一用户平台表', '唯一用户平台表'[用户名] = EARLIER('唯一用户平台表'[用户名]) && '唯一用户平台表'[平台] = "Facebook")) > 0, 1, 0),
    "YouTube", IF(COUNTROWS(FILTER('唯一用户平台表', '唯一用户平台表'[用户名] = EARLIER('唯一用户平台表'[用户名]) && '唯一用户平台表'[平台] = "YouTube")) > 0, 1, 0),
    "Twitter", IF(COUNTROWS(FILTER('唯一用户平台表', '唯一用户平台表'[用户名] = EARLIER('唯一用户平台表'[用户名]) && '唯一用户平台表'[平台] = "Twitter")) > 0, 1, 0)
)

如果你的平台不止这四个,照着现有格式新增对应列就行。

可选:动态适配新增平台(进阶)

要是后续平台会新增,不想每次手动加列,可以这么操作:

  1. 先建一张「平台维度表」,把所有唯一平台列出来;
  2. 用PIVOT函数动态转置(需要PowerBI 2023及以上版本支持):
动态韦恩图数据源 = 
PIVOT(
    '唯一用户平台表',
    VALUES('平台维度表'[平台]),
    '平台维度表'[平台],
    COUNT('唯一用户平台表'[平台]),
    0
)

记得给「平台维度表」和「唯一用户平台表」建立关联关系。

转换后的效果

最终表结构大概是这样,直接就能拿去制作韦恩图:

用户名InstagramFacebookYouTubeTwitter
User 11011
User 20010
User 30111
User 40100

内容的提问来源于stack exchange,提问作者Anurag Yadav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 17:17:33