Power BI中用JavaScript实现slicer默认选中累计至当前月的所有月份
Power BI Slicer默认选中当年截止当前月的实现方法
JS生成当年1月到当前月的完整列表
你之前用getMonth()只能拿到单个月份的原因是该方法本身仅返回当前日期对应的0-11区间的月份数值,你可以通过数组生成方法批量生成目标区间的月份列表:
const now = new Date(); // getMonth返回值范围为0(1月)到11(12月),加1后得到当前自然月份数字 const curMonth = now.getMonth() + 1; // 生成数字形式的月份列表:[1,2,...,当前月] const monthNumList = Array.from({length: curMonth}, (_, index) => index + 1); // 如果需要带“月”后缀的文本列表:["1月","2月",...,"当前月"] const monthTextList = monthNumList.map(item => `${item}月`);
拿到上述列表后直接绑定到Power Slicer的默认选中项配置即可生效。
补充:无需JS的DAX实现方案(更适配Power BI原生逻辑)
不需要自定义视觉对象的话,推荐直接在日期表新建计算列即可实现相同效果,不需要写JS代码:
- 打开Power BI日期表新建计算列,输入如下DAX公式:
是否当年截止当前月 = IF(MONTH('日期表'[日期]) <= MONTH(TODAY()) && YEAR('日期表'[日期]) = YEAR(TODAY()), TRUE(), FALSE())
- 将该计算列添加到Power Slicer的筛选条件中,默认勾选
TRUE即可自动筛选出当年截止到当前月的所有数据。
内容的提问来源于stack exchange,提问作者Barbara Jacqueline
相关产品推荐
相关产品推荐

