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

如何在Tableau中匹配客户色卡与后续购买商品的颜色关联

在Tableau中实现色卡与后续商品的颜色匹配并生成Conversion字段

嘿,我来帮你搞定这个Tableau的匹配问题!咱们一步步来,确保能得到你想要的Conversion字段结果:

步骤1:提取商品记录中的颜色信息

首先,咱们得把商品名称里的颜色单独拆出来——毕竟商品记录的Swatch Name是Null,颜色藏在Item Name里。创建一个计算字段,命名为商品颜色:

IF [Swatch Name] = 'Null' THEN
  RIGHT([Item Name], LEN([Item Name]) - FIND([Item Name], '- ') - 1)
END

这个公式的逻辑很简单:当这条记录是商品(Swatch Name为Null)时,找到- 的位置,把后面的颜色字符串提取出来,比如Ottoman - Charcoal会被提取成Charcoal。

步骤2:获取客户购买商品前的所有色卡颜色

接下来,要为每条记录(尤其是商品记录)找到同一个客户在当前购买日期之前买过的所有色卡颜色。创建第二个计算字段,命名为客户历史色卡列表:

{FIXED [ID]: 
  STRING_AGG(
    IF [Item Name] = 'Null' AND [Date] < ATTR([Date]) THEN [Swatch Name] END,
    ','
  )
}

这里用了Tableau的LOD表达式(固定级别表达式):

  • FIXED [ID]:以客户ID为分组单位
  • STRING_AGG:把符合条件的色卡颜色拼接成逗号分隔的字符串
  • 筛选条件:只取该客户在当前记录日期之前购买的色卡([Item Name] = 'Null'标识色卡记录)

步骤3:生成Conversion判断字段

现在就可以做匹配判断了!创建第三个计算字段,命名为Conversion:

IF [Swatch Name] = 'Null' THEN
  IF CONTAINS([客户历史色卡列表], [商品颜色]) THEN 'Yes'
  ELSE 'No'
END

逻辑说明:

  • 只有商品记录(Swatch Name为Null)才会生成Yes/No结果
  • 如果商品的颜色出现在客户之前买的色卡列表里,就标记Yes,否则标记No
  • 色卡记录(Item Name为Null)的Conversion字段会自动留空,和你给出的示例结果一致

额外注意事项

  • 确保你的Date字段是Tableau能识别的日期格式,不然日期比较会出错
  • 如果你的数据里Null是真正的空值而不是字符串'Null',记得把公式里的'Null'改成NULL(去掉引号)

这样处理之后,你就能得到和示例完全一致的结果啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 08:52:36