You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Tableau中多数据源国家名称标准化及跨源匹配的技术咨询

Tableau中多数据源国家名称标准化及跨源匹配的技术咨询

你好呀!看了你遇到的国家名称标准化和跨源匹配问题,我先帮你梳理下当前的情况,再给你一些实用的解决方案~

当前场景梳理

你现在正在计算指标,需要统一不同数据源的国家名称,才能按国家维度汇总计算。目前涉及的数据源和字段情况如下:

  • 两个SQL查询的交易数据:分别包含Country 1 Column(来自第一个SQL)、Country 2 Column(来自第二个SQL)
  • 已通过计算字段生成Country Combined Column,计算逻辑为:
IF [data (TI)] = [data (PI)] THEN
    [hotel_country (TI)]  // 或[hotel_country (PI)],因为二者值相同
ELSEIF NOT ISNULL([data (TI)]) THEN
    [hotel_country (TI)]
ELSE
    [hotel_country (PI)]
END
  • 外部Excel文件:包含Country Excel Column

你的核心需求是:将Country Combined ColumnCountry Excel Column匹配,从而实现国家层面的指标计算。

国家名称匹配示例

解决方案建议

1. 先完成国家名称的标准化清洗

不同数据源的国家名称经常会有格式差异,比如大小写不一致、带空格/特殊字符、别名不同等,这是匹配失败的主要原因,所以第一步要统一格式:

  • 用Tableau的字符串函数清洗字段:
    • Country Combined Column做标准化:
      UPPER(TRIM([Country Combined Column]))
      
    • Country Excel Column做同样的标准化:
      UPPER(TRIM([Country Excel Column]))
      
    这里TRIM()用来去除首尾空格,UPPER()统一转成大写,避免大小写导致的不匹配。
  • 处理别名:比如“UK”和“UNITED KINGDOM”、“CZECHIA”和“CZECH REPUBLIC”这类差异,需要用CASE WHEN做映射,举个例子:
    CASE [标准化后的Country Combined]
        WHEN 'UK' THEN 'UNITED KINGDOM'
        WHEN 'CZECHIA' THEN 'CZECH REPUBLIC'
        // 其他需要映射的别名可以继续补充
        ELSE [标准化后的Country Combined]
    END
    

2. 建立跨数据源的关联关系

当两个字段都标准化后,就可以在Tableau里建立数据源关联:

  • 进入Tableau的「数据」界面,找到你的SQL数据源和Excel数据源
  • 把两边标准化后的国家字段拖到关联区域,建立关联关系
  • 根据你的计算需求选择关联类型:
    • 内连接:只保留两边都存在的国家,适合只计算有匹配数据的国家指标
    • 左连接:保留SQL数据源里的所有国家,即使Excel里没有对应数据,适合需要完整交易数据的场景

3. 验证匹配结果并调整

可以新建一个临时工作表,把标准化后的两个国家字段拖到行功能区,再拖一个计数字段(比如交易数),检查是否存在不匹配的名称:

  • 如果还有不匹配的项,回到标准化步骤补充别名映射
  • 也可以用Tableau的「数据解释」功能,快速识别字段中的差异值

4. 完成国家层面的指标计算

匹配验证无误后,就可以用标准化后的国家字段作为维度,拖拽需要计算的指标(比如交易额、交易次数等)到行/列功能区,轻松实现国家层面的汇总计算啦!

备注:内容来源于stack exchange,提问作者Gordan84

火山引擎 最新活动