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

在Power BI中创建仅含当年新增基金的虚拟表技术需求

在Power BI中创建仅包含新增基金的虚拟表

嘿,我来帮你搞定这个需求!核心思路很简单:我们需要筛选出仅在当前年份出现、从未在任何过往年份露过面的基金,用DAX就能轻松实现虚拟表。

前提假设

假设你的基础表命名为基础表,包含两个关键字段:

  • 基金名称:存储基金的唯一标识
  • 年份:存储基金记录对应的年份(如果是日期列,我们可以用YEAR()函数提取年份)

方法1:仅提取新增基金名称

下面的DAX代码会生成一个只包含新增基金名称的虚拟表:

新增基金名称表 = 
VAR 当前年份 = YEAR(TODAY())  // 自动获取当前年份,若需指定年份直接替换为数字(比如2024)
VAR 过往年份基金池 = 
    CALCULATETABLE(
        DISTINCT('基础表'[基金名称]),
        '基础表'[年份] < 当前年份
    )
RETURN
    CALCULATETABLE(
        DISTINCT('基础表'[基金名称]),
        '基础表'[年份] = 当前年份,
        NOT('基础表'[基金名称] IN 过往年份基金池)
    )

代码逻辑拆解

  • 当前年份:用YEAR(TODAY())自动获取系统当前年份,如果你是针对特定年份分析,直接改成固定数字即可(比如VAR 当前年份 = 2024)
  • 过往年份基金池:提取所有在当前年份之前出现过的唯一基金名称,相当于我们的“排除清单”
  • 最后一步:筛选出当前年份的基金名称,同时排除掉“排除清单”里的旧基金,剩下的就是纯新增的基金

方法2:包含新增基金的完整记录

如果需要保留基础表中新增基金的所有关联字段(比如规模、成立日期等),可以用这段代码:

新增基金详细表 = 
VAR 当前年份 = YEAR(TODAY())
VAR 过往年份基金池 = 
    CALCULATETABLE(
        DISTINCT('基础表'[基金名称]),
        '基础表'[年份] < 当前年份
    )
RETURN
    CALCULATETABLE(
        '基础表',
        '基础表'[年份] = 当前年份,
        NOT('基础表'[基金名称] IN 过往年份基金池)
    )

注意事项

  • 确保基金名称列数据干净:比如没有多余空格、大小写不一致的情况(比如"XX成长基金"和"xx成长基金"会被误判为不同基金),可以提前用TRIM('基础表'[基金名称])清洗数据
  • 如果你的基础表用的是日期列而非单独的年份列,只需把代码里的'基础表'[年份]替换为YEAR('基础表'[日期])即可

内容的提问来源于stack exchange,提问作者sumantth pendemssai

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:50:37