2016-09-27 412 views
0

我有几个月的零售数据价值,我希望对任何潜在的销售增长进行一般分析。Tableau - 将数据分为3个部分

如何对数据进行分组或分段,使目标日期范围更容易。

例如,如果我有3个月的数据并且想要在他们自己的部分中对每个月进行分组,那么我该怎么做?

感谢, 咖啡

回答

0

我的建议是创建一个计算字段,这是否分组为你。我已经用一个例子使用包含日期的任意数据集来模仿OP中提到的场景。

+-----------+-------------+-------+ 
| Date | Hour of Day | Count | 
+-----------+-------------+-------+ 
| 9/20/2016 |   6 | 100 | 
| 9/21/2016 |   7 | 23 | 
| 9/22/2016 |   15 | 58 | 
| 9/23/2016 |   13 | 78 | 
| 9/24/2016 |   3 | 32 | 
| 9/25/2016 |   12 | 54 | 
| 9/26/2016 |   0 | 32 | 
| 9/27/2016 |   23 | 11 | 
| 9/28/2016 |   11 | 10 | 
+-----------+-------------+-------+ 

我将此数据集加载到Tableau中。我使用以下公式创建了一个名为“日期分组”的计算字段。此公式中的[日期]是我的数据集中的日期。您可以将其与任何您的日期字段被调用切换出来。

IF DATEDIFF('day', DATEPARSE("MM-dd-yyyy",'09-22-2016'), [Date]) < 1 THEN 'Before 9/22' 
ELSE (IF DATEDIFF('day', DATEPARSE("MM-dd-yyyy",'09-25-2016'), [Date]) < 1 THEN '9/22 - 9/25' 
ELSE 'After 9/25' 
END) 
END 

这产生如下所示(我复制这从在的Tableau数据源)

+-----------+---------------+-------+-------------+-------------------+ 
| Date | Date Grouping | Count | Hour of Day | Number of Records | 
+-----------+---------------+-------+-------------+-------------------+ 
| 9/20/2016 | Before 9/22 | 100 |   6 |     1 | 
| 9/21/2016 | Before 9/22 | 23 |   7 |     1 | 
| 9/22/2016 | Before 9/22 | 58 |   15 |     1 | 
| 9/23/2016 | 9/22 - 9/25 | 78 |   13 |     1 | 
| 9/24/2016 | 9/22 - 9/25 | 32 |   3 |     1 | 
| 9/25/2016 | 9/22 - 9/25 | 54 |   12 |     1 | 
| 9/26/2016 | After 9/25 | 32 |   0 |     1 | 
| 9/27/2016 | After 9/25 | 11 |   23 |     1 | 
| 9/28/2016 | After 9/25 | 10 |   11 |     1 | 
+-----------+---------------+-------+-------------+-------------------+ 

此计算字段现在可以添加到彩色一个新的列/大小来创建内的一个分组如下图所示 enter image description here

紧界上的范围图表

正如你在评论中提到你的范围,我编辑了计算的字段查询来创建一个紧密的界限,而不是一个开放的界限。此公式中的[日期]是我的数据集中的日期。您可以将其与任何您的日期字段被调用切换出来。

IF (DATEDIFF('day', DATEPARSE("MM-dd-yyyy",'05-08-2016'), [Date]) > 0 AND DATEDIFF('day', DATEPARSE("MM-dd-yyyy",'06-13-2016'), [Date]) < 0) THEN '5/9 - 6/12' 
ELSE (IF (DATEDIFF('day', DATEPARSE("MM-dd-yyyy",'06-12-2016'), [Date]) > 0 AND DATEDIFF('day', DATEPARSE("MM-dd-yyyy",'07-18-2016'), [Date]) < 0) THEN '6/13 - 7/17' 
ELSE (IF (DATEDIFF('day', DATEPARSE("MM-dd-yyyy",'07-17-2016'), [Date]) > 0 AND DATEDIFF('day', DATEPARSE("MM-dd-yyyy",'08-22-2016'), [Date]) < 0) THEN '7/18 - 8/21' 
ELSE 'Out of Range' END) END) END 

输入表(日期已被修改,以适应所提到的日期范围)

+-----------+-------------+-------+ 
| Date | Hour of Day | Count | 
+-----------+-------------+-------+ 
| 5/9/2016 |   6 | 100 | 
| 5/10/2016 |   7 | 23 | 
| 5/11/2016 |   15 | 58 | 
| 6/12/2016 |   13 | 78 | 
| 6/13/2016 |   3 | 32 | 
| 6/14/2016 |   12 | 54 | 
| 7/17/2016 |   0 | 32 | 
| 7/18/2016 |   23 | 11 | 
| 7/19/2016 |   11 | 10 | 
| 8/21/2016 |   23 | 11 | 
| 4/9/2016 |   15 | 58 | 
| 8/22/2016 |   13 | 78 | 
+-----------+-------------+-------+ 

添加计算字段 '范围'

enter image description here

+0

@CafeRacer我建议创建一个分配这些组的计算字段。我编辑了我的答案来适应这个。 – woodhead92

+0

感谢您发表本文。 – CafeRacer

+0

感谢您发布此信息。只要我明白你的意见,你可以让我知道,如果这是正确的。对于我以上的日期范围,代码将以这种方式运行。 'code' IF DATEDIFF('day',DATEPARSE(“MM-dd-yyyy”,'06-13-2016'),[Date])<1 THEN'Before 6/13' ELSE(IF DATEDIFF('day ',DATEPARSE(“MM-dd-yyyy”,'07-18-2016'),[Date])<1 THEN'6/13 - 7/17' ELSE'7/17后' END) END另外 - 你能解释代码中的[Date]吗? – CafeRacer

1

你可以使用任何日期后/日期时间尺寸有两种方式:

  • 截断日期(蓝色)
  • 日期部件(绿色的)如何设置它,你会发现here

更多信息。 如果您将在月份级别使用日期部分,则所有数据将被分割为仅由来自该特定月份的条目组成的组。这使您可以在月份之后添加另一个维度,以便更深入地进行分析。

如果您想创建相当自定义的日期范围(例如03.09 - 23.09),则可以使用Sets。只需要深入了解日期,选择您感兴趣的范围并创建一个新的集合。如果您想比较几个不同的集合,请使用计算字段创建单个维度,该维度将根据单个数据条目所属的信息对数据进行分组。

IF [Set 1] THEN 'Name of first set' 
ELSEIF [Set 2] THEN 'Name of second set' 
ELSE 'Other' 
END 
+0

好的。由于它是每个..的自定义日期范围..我相信制作集是理想的。我会试试这个。谢谢。 – CafeRacer