Tableau使用FIXED LOD取每月最新登记日期异常及月度去重ID折线图制作咨询
问题原因
你使用的LOD表达式仅以id_constructionbuilding和MONTH([date_registered])作为分组维度,MONTH()函数仅返回日期的月份数值(1-12),不会区分年份,因此2020年10月和2021年10月的数据会被分到同一组计算最大值,最终返回多个跨年份的最大日期。
你当前的错误效果如下图:
修正方案
1. 调整LOD计算字段
在分组维度中增加年份维度,确保按「项目ID+年份+月份」的粒度计算单月最新登记日期,两种写法均可:
- 写法1:显式拆分年、月维度
{FIXED [id_constructionbuilding], YEAR([date_registered]), MONTH([date_registered]): MAX([date_registered])}
- 写法2:使用
DATETRUNC函数直接截断到月份维度,写法更简洁
{FIXED [id_constructionbuilding], DATETRUNC('month', [date_registered]): MAX([date_registered])}
2. 修正日期排序异常
西语格式日期排序错误是因为日期字段被识别为字符串或者排序规则配置错误,做如下调整即可:
- 右键
date_registered字段,确认字段数据类型为「日期」,而非字符串 - 如需保留西语显示格式,右键字段→「默认属性」→「日期格式」,自定义为符合西语习惯的展示格式,排序规则选择按「日期顺序」,不要使用字母排序。
3. 折线图配置
要实现月度distinct ID的趋势展示,按如下步骤配置功能区:
- 列功能区:拖入
DATETRUNC('month', [date_registered]),选择「连续 月份」,会自动按年+月的时间顺序排列,避免跨年月合并 - 行功能区:拖入
id_constructionbuilding,右键选择「度量」→「计数不同(Count Distinct)」 - 标记卡选择「折线」类型即可得到目标趋势图。
内容的提问来源于stack exchange,提问作者Guido Camors
相关产品推荐
相关产品推荐

