Loading...
Loading...
Compare original and translation side by side
// String manipulation
Full Name
UPPER([First Name]) + " " + UPPER([Last Name])
Email Domain
SPLIT([Email], "@", 2)
// Numeric calculations
Profit Margin
[Profit] / [Sales]
Discounted Price
[Price] * (1 - [Discount])
// Date calculations
Days Since Order
DATEDIFF('day', [Order Date], TODAY())
Order Year
YEAR([Order Date])
Order Quarter
"Q" + STR(DATEPART('quarter', [Order Date]))
// Conditional logic
Order Priority
IF [Days Since Order] <= 2 THEN "Urgent"
ELSEIF [Days Since Order] <= 7 THEN "High"
ELSEIF [Days Since Order] <= 14 THEN "Medium"
ELSE "Low"
END
// Case statement
Customer Segment
CASE [Lifetime Value]
WHEN >= 10000 THEN "VIP"
WHEN >= 5000 THEN "High Value"
WHEN >= 1000 THEN "Medium Value"
ELSE "Low Value"
END
// Aggregations
Total Revenue
SUM([Order Amount])
Average Order Value
AVG([Order Amount])
Distinct Customer Count
COUNTD([Customer ID])// Window calculations
Running Total
RUNNING_SUM(SUM([Sales]))
Moving Average (7 days)
WINDOW_AVG(SUM([Sales]), -6, 0)
Percent of Total
SUM([Sales]) / TOTAL(SUM([Sales]))
Rank by Sales
RANK_UNIQUE(SUM([Sales]), 'desc')
Previous Period Sales
LOOKUP(SUM([Sales]), -1)
// Quick table calculations
// Right-click measure -> Quick Table Calculation
// - Running Total
// - Difference
// - Percent Difference
// - Percent of Total
// - Rank
// - Percentile
// - Moving Average
// Year over Year Growth
YoY Growth
(SUM([Sales]) - LOOKUP(SUM([Sales]), -12)) / LOOKUP(SUM([Sales]), -12)
// Compound growth rate
CAGR
POWER(
SUM([Current Year Sales]) / SUM([First Year Sales]),
1 / [Years]
) - 1// 字符串处理
Full Name
UPPER([First Name]) + " " + UPPER([Last Name])
// 邮箱域名
Email Domain
SPLIT([Email], "@", 2)
// 数值计算
Profit Margin
[Profit] / [Sales]
// 折扣后价格
Discounted Price
[Price] * (1 - [Discount])
// 日期计算
// 订单距今天数
Days Since Order
DATEDIFF('day', [Order Date], TODAY())
// 订单年份
Order Year
YEAR([Order Date])
// 订单季度
Order Quarter
"Q" + STR(DATEPART('quarter', [Order Date]))
// 条件逻辑
// 订单优先级
Order Priority
IF [Days Since Order] <= 2 THEN "Urgent"
ELSEIF [Days Since Order] <= 7 THEN "High"
ELSEIF [Days Since Order] <= 14 THEN "Medium"
ELSE "Low"
END
// Case语句
// 客户细分
Customer Segment
CASE [Lifetime Value]
WHEN >= 10000 THEN "VIP"
WHEN >= 5000 THEN "High Value"
WHEN >= 1000 THEN "Medium Value"
ELSE "Low Value"
END
// 聚合计算
// 总营收
Total Revenue
SUM([Order Amount])
// 平均订单价值
Average Order Value
AVG([Order Amount])
// 唯一客户数
Distinct Customer Count
COUNTD([Customer ID])// 窗口计算
// 累计总和
Running Total
RUNNING_SUM(SUM([Sales]))
// 7天移动平均值
Moving Average (7 days)
WINDOW_AVG(SUM([Sales]), -6, 0)
// 占比
Percent of Total
SUM([Sales]) / TOTAL(SUM([Sales]))
// 销售额排名
Rank by Sales
RANK_UNIQUE(SUM([Sales]), 'desc')
// 上期销售额
Previous Period Sales
LOOKUP(SUM([Sales]), -1)
// 快速表计算
// 右键度量 -> 快速表计算
// - 累计总和
// - 差值
// - 百分比差值
// - 占比
// - 排名
// - 百分位数
// - 移动平均值
// 同比增长率
YoY Growth
(SUM([Sales]) - LOOKUP(SUM([Sales]), -12)) / LOOKUP(SUM([Sales]), -12)
// 复合增长率
CAGR
POWER(
SUM([Current Year Sales]) / SUM([First Year Sales]),
1 / [Years]
) - 1// Customer lifetime value (fixed at customer level)
{ FIXED [Customer ID] : SUM([Order Amount]) }
// First order date per customer
{ FIXED [Customer ID] : MIN([Order Date]) }
// Category-level average (ignore other dimensions)
{ FIXED [Category] : AVG([Sales]) }
// Overall average (ignore all dimensions)
{ FIXED : AVG([Sales]) }
// Cohort analysis
Cohort Month
{ FIXED [Customer ID] : MIN(DATETRUNC('month', [Order Date])) }
// Customer acquisition cost per month
{ FIXED [Acquisition Month] : SUM([Marketing Spend]) / COUNTD([Customer ID]) }// Add dimension to aggregation
{ INCLUDE [Region] : SUM([Sales]) }
// Product sales including subcategory
{ INCLUDE [Sub-Category] : SUM([Sales]) }
// Use case: Show product sales with category total
Product Sales
SUM([Sales])
Category Sales
{ INCLUDE [Category] : SUM([Sales]) }
Percent of Category
[Product Sales] / [Category Sales]// Remove dimension from aggregation
{ EXCLUDE [Region] : SUM([Sales]) }
// Total sales excluding customer dimension
{ EXCLUDE [Customer ID] : SUM([Sales]) }
// Use case: Compare individual to group
Individual Sales
SUM([Sales])
Group Average (excluding individual)
{ EXCLUDE [Salesperson] : AVG([Sales]) }
Performance vs Group
[Individual Sales] - [Group Average]// New vs Returning Customers
Is First Order
{ FIXED [Customer ID] : MIN([Order Date]) } = [Order Date]
New Customers
IF [Is First Order] THEN 1 ELSE 0 END
// Customer lifetime metrics
Orders Per Customer
{ FIXED [Customer ID] : COUNTD([Order ID]) }
Days Since First Order
DATEDIFF('day',
{ FIXED [Customer ID] : MIN([Order Date]) },
[Order Date]
)
// Cohort retention
Months Since First Order
DATEDIFF('month',
{ FIXED [Customer ID] : MIN([Order Date]) },
[Order Date]
)
Cohort Size
{ FIXED [Cohort Month] : COUNTD([Customer ID]) }
Retention Rate
COUNTD([Customer ID]) / [Cohort Size]
// Top N with LOD
Top 10 Products by Revenue
{ FIXED [Product] : SUM([Revenue]) }
Is Top 10
RANK_UNIQUE([Top 10 Products by Revenue]) <= 10
// Percentile calculation
Revenue Percentile
{ FIXED [Customer ID] : SUM([Revenue]) }
Customer Percentile
IF PERCENTILE([Revenue Percentile], 0.9) THEN "Top 10%"
ELSEIF PERCENTILE([Revenue Percentile], 0.75) THEN "Top 25%"
ELSE "Other"
END// 客户生命周期价值(基于客户维度固定)
{ FIXED [Customer ID] : SUM([Order Amount]) }
// 客户首次下单日期
{ FIXED [Customer ID] : MIN([Order Date]) }
// 品类级平均值(忽略其他维度)
{ FIXED [Category] : AVG([Sales]) }
// 整体平均值(忽略所有维度)
{ FIXED : AVG([Sales]) }
// 同期群分析
// 同期群月份
Cohort Month
{ FIXED [Customer ID] : MIN(DATETRUNC('month', [Order Date])) }
// 月度客户获取成本
{ FIXED [Acquisition Month] : SUM([Marketing Spend]) / COUNTD([Customer ID]) }// 为聚合添加维度
{ INCLUDE [Region] : SUM([Sales]) }
// 包含子品类的产品销售额
{ INCLUDE [Sub-Category] : SUM([Sales]) }
// 应用场景:展示产品销售额及品类总计
// 产品销售额
Product Sales
SUM([Sales])
// 品类销售额
Category Sales
{ INCLUDE [Category] : SUM([Sales]) }
// 品类占比
Percent of Category
[Product Sales] / [Category Sales]// 从聚合中移除维度
{ EXCLUDE [Region] : SUM([Sales]) }
// 排除客户维度的总销售额
{ EXCLUDE [Customer ID] : SUM([Sales]) }
// 应用场景:对比个体与群体表现
// 个体销售额
Individual Sales
SUM([Sales])
// 群体平均值(排除个体)
Group Average (excluding individual)
{ EXCLUDE [Salesperson] : AVG([Sales]) }
// 与群体的业绩差异
Performance vs Group
[Individual Sales] - [Group Average]// 新客与回头客
// 是否为首次订单
Is First Order
{ FIXED [Customer ID] : MIN([Order Date]) } = [Order Date]
// 新客数
New Customers
IF [Is First Order] THEN 1 ELSE 0 END
// 客户生命周期指标
// 客户订单数
Orders Per Customer
{ FIXED [Customer ID] : COUNTD([Order ID]) }
// 首次订单距今天数
Days Since First Order
DATEDIFF('day',
{ FIXED [Customer ID] : MIN([Order Date]) },
[Order Date]
)
// 同期群留存
// 首次订单距今月数
Months Since First Order
DATEDIFF('month',
{ FIXED [Customer ID] : MIN([Order Date]) },
[Order Date]
)
// 同期群规模
Cohort Size
{ FIXED [Cohort Month] : COUNTD([Customer ID]) }
// 留存率
Retention Rate
COUNTD([Customer ID]) / [Cohort Size]
// 基于LOD的Top N分析
// 营收Top10产品
Top 10 Products by Revenue
{ FIXED [Product] : SUM([Revenue]) }
// 是否为Top10
Is Top 10
RANK_UNIQUE([Top 10 Products by Revenue]) <= 10
// 百分位数计算
// 营收百分位数
Revenue Percentile
{ FIXED [Customer ID] : SUM([Revenue]) }
// 客户层级
Customer Percentile
IF PERCENTILE([Revenue Percentile], 0.9) THEN "Top 10%"
ELSEIF PERCENTILE([Revenue Percentile], 0.75) THEN "Top 25%"
ELSE "Other"
END// Metric selector parameter
Metric Selector (String)
Values: Revenue, Profit, Quantity, Orders
// Dynamic measure based on parameter
Selected Metric
CASE [Metric Selector]
WHEN "Revenue" THEN SUM([Sales])
WHEN "Profit" THEN SUM([Profit])
WHEN "Quantity" THEN SUM([Quantity])
WHEN "Orders" THEN COUNTD([Order ID])
END
// Date range parameter
Number of Days (Integer)
Current value: 30
Range: 7 to 365
// Filter with parameter
Order Date Filter
[Order Date] >= DATEADD('day', -[Number of Days], TODAY())
// Top N parameter
Top N (Integer)
Current value: 10
Range: 5 to 50
// Top N filter
Top N Products
RANK_UNIQUE(SUM([Sales]), 'desc') <= [Top N]
// Timeframe parameter
Time Dimension (String)
Values: Day, Week, Month, Quarter, Year
// Dynamic timeframe
Dynamic Time
CASE [Time Dimension]
WHEN "Day" THEN STR([Order Date])
WHEN "Week" THEN "Week " + STR(DATEPART('week', [Order Date]))
WHEN "Month" THEN DATENAME('month', [Order Date]) + " " + STR(YEAR([Order Date]))
WHEN "Quarter" THEN "Q" + STR(DATEPART('quarter', [Order Date])) + " " + STR(YEAR([Order Date]))
WHEN "Year" THEN STR(YEAR([Order Date]))
END// Comparison period parameter
Compare To (String)
Values: Previous Period, Previous Year, Custom
// Comparison calculation
Previous Period Sales
CASE [Compare To]
WHEN "Previous Period" THEN
LOOKUP(SUM([Sales]), -1)
WHEN "Previous Year" THEN
LOOKUP(SUM([Sales]), -12)
WHEN "Custom" THEN
// Use another parameter for custom offset
LOOKUP(SUM([Sales]), -[Custom Offset])
END
Percent Change
(SUM([Sales]) - [Previous Period Sales]) / [Previous Period Sales]
// Threshold parameter
Sales Threshold (Float)
Current value: 1000
Range: 0 to 10000
// Color coding with parameter
Sales Performance
IF SUM([Sales]) >= [Sales Threshold] THEN "Above Target"
ELSE "Below Target"
END
// Multiple metric comparison
Metric 1 (String)
Metric 2 (String)
Metric 1 Value
CASE [Metric 1]
WHEN "Revenue" THEN SUM([Sales])
WHEN "Profit" THEN SUM([Profit])
WHEN "Orders" THEN COUNTD([Order ID])
END
Metric 2 Value
CASE [Metric 2]
WHEN "Revenue" THEN SUM([Sales])
WHEN "Profit" THEN SUM([Profit])
WHEN "Orders" THEN COUNTD([Order ID])
END// 指标选择器参数
Metric Selector (String)
可选值:Revenue, Profit, Quantity, Orders
// 基于参数的动态度量
Selected Metric
CASE [Metric Selector]
WHEN "Revenue" THEN SUM([Sales])
WHEN "Profit" THEN SUM([Profit])
WHEN "Quantity" THEN SUM([Quantity])
WHEN "Orders" THEN COUNTD([Order ID])
END
// 日期范围参数
Number of Days (Integer)
当前值:30
范围:7至365
// 基于参数的筛选
Order Date Filter
[Order Date] >= DATEADD('day', -[Number of Days], TODAY())
// Top N参数
Top N (Integer)
当前值:10
范围:5至50
// Top N筛选
Top N Products
RANK_UNIQUE(SUM([Sales]), 'desc') <= [Top N]
// 时间维度参数
Time Dimension (String)
可选值:Day, Week, Month, Quarter, Year
// 动态时间维度
Dynamic Time
CASE [Time Dimension]
WHEN "Day" THEN STR([Order Date])
WHEN "Week" THEN "Week " + STR(DATEPART('week', [Order Date]))
WHEN "Month" THEN DATENAME('month', [Order Date]) + " " + STR(YEAR([Order Date]))
WHEN "Quarter" THEN "Q" + STR(DATEPART('quarter', [Order Date])) + " " + STR(YEAR([Order Date]))
WHEN "Year" THEN STR(YEAR([Order Date]))
END// 对比周期参数
Compare To (String)
可选值:Previous Period, Previous Year, Custom
// 对比计算
Previous Period Sales
CASE [Compare To]
WHEN "Previous Period" THEN
LOOKUP(SUM([Sales]), -1)
WHEN "Previous Year" THEN
LOOKUP(SUM([Sales]), -12)
WHEN "Custom" THEN
// 使用另一个参数自定义偏移量
LOOKUP(SUM([Sales]), -[Custom Offset])
END
// 变化百分比
Percent Change
(SUM([Sales]) - [Previous Period Sales]) / [Previous Period Sales]
// 阈值参数
Sales Threshold (Float)
当前值:1000
范围:0至10000
// 基于参数的颜色编码
Sales Performance
IF SUM([Sales]) >= [Sales Threshold] THEN "Above Target"
ELSE "Below Target"
END
// 多指标对比
Metric 1 (String)
Metric 2 (String)
// 指标1数值
Metric 1 Value
CASE [Metric 1]
WHEN "Revenue" THEN SUM([Sales])
WHEN "Profit" THEN SUM([Profit])
WHEN "Orders" THEN COUNTD([Order ID])
END
// 指标2数值
Metric 2 Value
CASE [Metric 2]
WHEN "Revenue" THEN SUM([Sales])
WHEN "Profit" THEN SUM([Profit])
WHEN "Orders" THEN COUNTD([Order ID])
END// Physical layer: Tables joined
Sales (LEFT JOIN) Returns ON Sales.Order ID = Returns.Order ID
// Logical layer: Relationships
Orders -> Order Items (Order ID)
Orders -> Customers (Customer ID)
Products -> Order Items (Product ID)
// Multi-fact analysis with relationships
// Automatically handles different grain levels
Revenue from Orders
SUM([Orders].[Amount])
Return Rate from Returns
COUNTD([Returns].[Return ID]) / COUNTD([Orders].[Order ID])// Primary data source: Sales
// Secondary data source: Targets
// Linked fields (blend on):
- Date (linked)
- Region (linked)
// Blended calculation
Sales vs Target
SUM([Sales].[Revenue]) - SUM([Targets].[Target Amount])
Target Achievement
SUM([Sales].[Revenue]) / SUM([Targets].[Target Amount])
// Handling missing data in blend
Revenue with Default
IFNULL(SUM([Sales].[Revenue]), 0)// Join across different databases
PostgreSQL: Orders
MySQL: Customer Attributes
Snowflake: Product Catalog
// Join conditions
Orders.customer_id = Customer Attributes.id
Orders.product_id = Product Catalog.product_id// 物理层:表关联
Sales (LEFT JOIN) Returns ON Sales.Order ID = Returns.Order ID
// 逻辑层:关系
Orders -> Order Items (Order ID)
Orders -> Customers (Customer ID)
Products -> Order Items (Product ID)
// 基于关系的多事实表分析
// 自动处理不同粒度
// 来自Orders的营收
Revenue from Orders
SUM([Orders].[Amount])
// 来自Returns的退货率
Return Rate from Returns
COUNTD([Returns].[Return ID]) / COUNTD([Orders].[Order ID])// 主数据源:Sales
// 副数据源:Targets
// 关联字段(混合依据):
- Date(已关联)
- Region(已关联)
// 混合计算
// 销售额vs目标
Sales vs Target
SUM([Sales].[Revenue]) - SUM([Targets].[Target Amount])
// 目标完成率
Target Achievement
SUM([Sales].[Revenue]) / SUM([Targets].[Target Amount])
// 处理混合中的缺失数据
// 带默认值的营收
Revenue with Default
IFNULL(SUM([Sales].[Revenue]), 0)// 跨不同数据库关联
PostgreSQL: Orders
MySQL: Customer Attributes
Snowflake: Product Catalog
// 关联条件
Orders.customer_id = Customer Attributes.id
Orders.product_id = Product Catalog.product_id// Layout containers
Horizontal container
- Title (text)
- Filters (vertical container)
Vertical container
- KPI cards (horizontal container)
- Main visualization
- Detail table
// Actions
Filter action:
Source: Map
Target: Detail table
Run on: Select
Clear selection: Show all values
Highlight action:
Source: Bar chart
Target: Line chart
Run on: Hover
Clear selection: Leave highlighted
URL action:
Name: View Customer Details
URL: https://crm.company.com/customer?id=<Customer ID>
Run on: Menu
Set action:
Source: Product list
Target: Set field
Run on: Select
Use: Compare products
// Dashboard sizing
Fixed size: 1200 x 800 (desktop)
Automatic: Responsive
Range: 800-1200 (tablet)
// Device designer
Desktop layout (default)
Tablet layout (hide some filters, stack vertically)
Phone layout (single column, essential metrics only)// KPI cards
Total Revenue
SUM([Sales])
Format: Currency, $#,##0K
YoY Growth
([Current Year Revenue] - [Last Year Revenue]) / [Last Year Revenue]
Format: Percentage, 0.0%
// Trend with reference line
Line chart: Sales by Month
Reference line: Average
Trend line: Linear
// Top performers
Bar chart: Top 10 Products by Revenue
Filter: [Top N Products] = True
Sort: Descending by Revenue
Color: Profit Ratio (diverging)
// Comparison
Butterfly chart: Sales vs Budget by Category
Bars: Positive = Sales, Negative = Budget
Sort: By variance
// Geographic
Map: Sales by State
Color: Sales (gradient)
Size: Profit
Tooltip: State, Sales, Profit, Orders
// Drill-down hierarchy
Category -> Sub-Category -> Product
Action: Drill down on click// 布局容器
水平容器
- 标题(文本)
- 筛选器(垂直容器)
垂直容器
- KPI卡片(水平容器)
- 主可视化图表
- 详情表格
// 交互动作
筛选动作:
源:地图
目标:详情表格
触发:选择
清除选择:显示所有值
高亮动作:
源:条形图
目标:折线图
触发:悬停
清除选择:保持高亮
URL动作:
名称:查看客户详情
URL: https://crm.company.com/customer?id=<Customer ID>
触发:菜单
集动作:
源:产品列表
目标:集字段
触发:选择
用途:产品对比
// 仪表板尺寸
固定尺寸:1200 x 800(桌面端)
自动:响应式
范围:800-1200(平板端)
// 设备设计器
桌面布局(默认)
平板布局(隐藏部分筛选器,垂直堆叠)
手机布局(单列,仅显示核心指标)// KPI卡片
// 总营收
Total Revenue
SUM([Sales])
格式:货币,$#,##0K
// 同比增长率
YoY Growth
([Current Year Revenue] - [Last Year Revenue]) / [Last Year Revenue]
格式:百分比,0.0%
// 带参考线的趋势图
折线图:月度销售额
参考线:平均值
趋势线:线性
// 头部表现
条形图:营收Top10产品
筛选器:[Top N Products] = True
排序:按营收降序
颜色:利润率(发散色)
// 对比分析
蝴蝶图:品类销售额vs预算
条形:正=销售额,负=预算
排序:按差异值
// 地理可视化
地图:各州销售额
颜色:销售额(渐变)
大小:利润
提示框:州名、销售额、利润、订单数
// 下钻层级
品类 -> 子品类 -> 产品
动作:点击下钻// Compute using options:
// - Table (across)
// - Table (down)
// - Pane (across)
// - Pane (down)
// - Cell
// - Specific dimensions
// Running total partitioned by category
Compute using: Category (restart for each category)
// Percent of total within partition
Compute using: Pane (down)
// Rank by region
RANK_UNIQUE(SUM([Sales]))
Compute using: Region
// Window calculation with specific dimensions
Window average
Compute using: Month, Product
Addressing: Month
Partitioning: Product// First/Last in partition
Is First Order
FIRST() = 0
Is Last Order
LAST() = 0
// Index for row numbering
Row Number
INDEX()
// Size of partition
Total Rows
SIZE()
// Cumulative percent
Running Percent
RUNNING_SUM(SUM([Sales])) / TOTAL(SUM([Sales]))
// Period over period percent change
// Compute using: Month
Period Change
(ZN(SUM([Sales])) - LOOKUP(ZN(SUM([Sales])), -1)) /
ABS(LOOKUP(ZN(SUM([Sales])), -1))
// Month over month growth rate
// Partitioned by category
MoM Growth
Compute using: Table (across)
Addressing: Month
Partitioning: Category// 计算依据选项:
// - 表(横向)
// - 表(纵向)
// - 窗格(横向)
// - 窗格(纵向)
// - 单元格
// - 指定维度
// 按品类分区的累计总和
计算依据:品类(每个品类重新开始)
// 分区内占比
计算依据:窗格(纵向)
// 按区域排名
RANK_UNIQUE(SUM([Sales]))
计算依据:区域
// 基于指定维度的窗口计算
窗口平均值
计算依据:月份、产品
寻址:月份
分区:产品// 分区内首个/最后一个
// 是否为首个订单
Is First Order
FIRST() = 0
// 是否为最后一个订单
Is Last Order
LAST() = 0
// 行号索引
Row Number
INDEX()
// 分区大小
Total Rows
SIZE()
// 累计百分比
Running Percent
RUNNING_SUM(SUM([Sales])) / TOTAL(SUM([Sales]))
// 环比变化百分比
// 计算依据:月份
Period Change
(ZN(SUM([Sales])) - LOOKUP(ZN(SUM([Sales])), -1)) /
ABS(LOOKUP(ZN(SUM([Sales])), -1))
// 月度增长率
// 按品类分区
MoM Growth
计算依据:表(横向)
寻址:月份
分区:品类// Extract filters
// Filter 1: Date >= 2020-01-01
// Filter 2: Country IN ['US', 'UK', 'CA']
// Filter 3: Is_Deleted = False
// Aggregation
Aggregate visible dimensions
Roll up dates to: Month
// Extract refresh
Full refresh: Replace all data
Incremental refresh: Add rows where Date > MAX(Date)
// Hyper extract
File format: .hyper (Tableau 10.5+)
Compression: High// Data source filters (apply early)
Data Source Filter:
[Order Date] >= DATE('2020-01-01')
AND [Is_Deleted] = FALSE
// Context filters (create temp table)
Context: [Region] IN ['North', 'South']
// Filter order of operations:
1. Extract filters
2. Data source filters
3. Context filters
4. Dimension filters
5. Measure filters
6. Table calc filters
// Optimize calculations
// Bad: Nested LODs
{ FIXED [Customer] : MAX({ FIXED [Order] : SUM([Sales]) }) }
// Good: Single LOD with nested aggregation
{ FIXED [Customer] : SUM([Sales]) }
// Use boolean instead of string
// Bad:
Status = "Active"
// Good:
Is Active (boolean field)
// Reduce mark count
// Use aggregated data
// Filter to relevant data only
// Use extracts for large datasets
// Optimize dashboard
// Limit number of worksheets
// Use dashboard actions instead of filters
// Hide unused fields
// Reduce number of marks (<1000 ideal)// 提取筛选器
// 筛选器1:日期 >= 2020-01-01
// 筛选器2:国家 IN ['US', 'UK', 'CA']
// 筛选器3:Is_Deleted = False
// 聚合
聚合可见维度
日期向上聚合至:月份
// 提取刷新
完全刷新:替换所有数据
增量刷新:添加日期 > MAX(Date)的行
// Hyper提取
文件格式:.hyper(Tableau 10.5+)
压缩:高// 数据源筛选器(尽早应用)
数据源筛选器:
[Order Date] >= DATE('2020-01-01')
AND [Is_Deleted] = FALSE
// 上下文筛选器(创建临时表)
上下文:[Region] IN ['North', 'South']
// 筛选器执行顺序:
1. 提取筛选器
2. 数据源筛选器
3. 上下文筛选器
4. 维度筛选器
5. 度量筛选器
6. 表计算筛选器
// 优化计算逻辑
// 不良写法:嵌套LOD
{ FIXED [Customer] : MAX({ FIXED [Order] : SUM([Sales]) }) }
// 推荐写法:带嵌套聚合的单LOD
{ FIXED [Customer] : SUM([Sales]) }
// 使用布尔值替代字符串
// 不良写法:
Status = "Active"
// 推荐写法:
Is Active(布尔字段)
// 减少标记数量
// 使用聚合数据
// 仅筛选相关数据
// 大数据集使用提取
// 优化仪表板
// 限制工作表数量
// 使用仪表板动作替代筛选器
// 隐藏未使用字段
// 减少标记数量(理想值<1000)// Static set
Top 10 Customers
Condition: By field, Top 10 by SUM([Sales])
// Dynamic set
High Value Orders
Condition: SUM([Order Amount]) > [Threshold Parameter]
// Combined sets
VIP and Recent
[Top Customers] AND [Recent Purchasers]
// Set action
// Allow users to select items to add to set
Action: Add/Remove from Set
Source: Product list
Target Set: Selected Products
Run on: Select
// Using sets in calculations
Is Top Customer
[Customer] IN [Top 10 Customers]
Customer Type
IF [Customer] IN [VIP Set] THEN "VIP"
ELSEIF [Customer] IN [Top 100 Set] THEN "High Value"
ELSE "Standard"
END// Reference lines
Average line: AVG(SUM([Sales]))
Median line: MEDIAN(SUM([Sales]))
Constant: [Target Parameter]
// Reference bands
Quartiles: 25th to 75th percentile
Custom: [Low Threshold] to [High Threshold]
// Distribution bands
Percentages: 60%, 80%, 95%
Standard deviation: 1, 2, 3 sigma
// Box plot
Whiskers: 1.5 * IQR
Outliers: Points beyond whiskers
// Trend lines
Linear, Logarithmic, Exponential, Polynomial
Show equation
Show R-squared value
Forecast: 12 months forward
Confidence interval: 95%
// Forecast
Automatic: Tableau selects model
Ignore last: N periods (for backtesting)// 静态集
Top10客户
条件:按字段,SUM([Sales])排名Top10
// 动态集
高价值订单
条件:SUM([Order Amount]) > [阈值参数]
// 组合集
VIP且近期下单客户
[Top Customers] AND [Recent Purchasers]
// 集动作
// 允许用户选择项添加到集中
动作:添加/移除集成员
源:产品列表
目标集:已选产品
触发:选择
// 在计算中使用集
是否为Top客户
[Customer] IN [Top 10 Customers]
// 客户类型
Customer Type
IF [Customer] IN [VIP Set] THEN "VIP"
ELSEIF [Customer] IN [Top 100 Set] THEN "High Value"
ELSE "Standard"
END// 参考线
平均线:AVG(SUM([Sales]))
中位数线:MEDIAN(SUM([Sales]))
常量:[目标参数]
// 参考区间
四分位数:25%至75%分位数
自定义:[下限阈值]至[上限阈值]
// 分布区间
百分比:60%, 80%, 95%
标准差:1、2、3 sigma
// 箱线图
须线:1.5 * IQR
异常值:须线外的点
// 趋势线
线性、对数、指数、多项式
显示方程
显示R平方值
预测:未来12个月
置信区间:95%
// 预测
自动:Tableau选择模型
忽略最后N个周期(用于回测)// Bad: Blend when relationship would work
Primary: Sales (blend on Date, Product)
Secondary: Costs (blend on Date, Product)
// Good: Use relationship or join
Sales <- (Product ID) -> Costs// 不良:可使用关系时仍用混合
主数据源:Sales(按日期、产品混合)
副数据源:Costs(按日期、产品混合)
// 推荐:使用关系或关联
Sales <- (Product ID) -> Costs// Bad: Nested LODs
{ FIXED [Customer] :
MAX({ FIXED [Order] : SUM([Amount]) })
}
// Good: Single LOD
{ FIXED [Customer] : SUM([Amount]) }// 不良:嵌套LOD
{ FIXED [Customer] :
MAX({ FIXED [Order] : SUM([Amount]) })
}
// 推荐:单LOD
{ FIXED [Customer] : SUM([Amount]) }// Bad: Scatter plot with 100K points
// Good: Aggregate or filter data
// Use density marks for large datasets// 不良:包含10万个点的散点图
// 推荐:聚合或筛选数据
// 大数据集使用密度标记// Bad: Extract entire table without filters
// Good: Filter to relevant data, aggregate dimensions// 不良:提取整个表而不做筛选
// 推荐:筛选相关数据,聚合维度