我有幾個月的零售數據價值,我希望對任何潛在的銷售增長進行一般分析。Tableau - 將數據分爲3個部分
如何對數據進行分組或分段,使目標日期範圍更容易。
例如,如果我有3個月的數據並且想要在他們自己的部分中對每個月進行分組,那麼我該怎麼做?
感謝, 咖啡
我有幾個月的零售數據價值,我希望對任何潛在的銷售增長進行一般分析。Tableau - 將數據分爲3個部分
如何對數據進行分組或分段,使目標日期範圍更容易。
例如,如果我有3個月的數據並且想要在他們自己的部分中對每個月進行分組,那麼我該怎麼做?
感謝, 咖啡
我的建議是創建一個計算字段,這是否分組爲你。我已經用一個例子使用包含日期的任意數據集來模仿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 |
+-----------+---------------+-------+-------------+-------------------+
此計算字段現在可以添加到彩色一個新的列/大小來創建內的一個分組如下圖所示
緊界上的範圍圖表
正如你在評論中提到你的範圍,我編輯了計算的字段查詢來創建一個緊密的界限,而不是一個開放的界限。此公式中的[日期]是我的數據集中的日期。您可以將其與任何您的日期字段被調用切換出來。
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 |
+-----------+-------------+-------+
添加計算字段 '範圍'
你可以使用任何日期後/日期時間尺寸有兩種方式:
更多信息。 如果您將在月份級別使用日期部分,則所有數據將被分割爲僅由來自該特定月份的條目組成的組。這使您可以在月份之後添加另一個維度,以便更深入地進行分析。
如果您想創建相當自定義的日期範圍(例如03.09 - 23.09),則可以使用Sets。只需要深入瞭解日期,選擇您感興趣的範圍並創建一個新的集合。如果您想比較幾個不同的集合,請使用計算字段創建單個維度,該維度將根據單個數據條目所屬的信息對數據進行分組。
IF [Set 1] THEN 'Name of first set'
ELSEIF [Set 2] THEN 'Name of second set'
ELSE 'Other'
END
好的。由於它是每個..的自定義日期範圍..我相信製作集是理想的。我會試試這個。謝謝。 – CafeRacer
@CafeRacer我建議創建一個分配這些組的計算字段。我編輯了我的答案來適應這個。 – woodhead92
感謝您發表本文。 – CafeRacer
感謝您發佈此信息。只要我明白你的意見,你可以讓我知道,如果這是正確的。對於我以上的日期範圍,代碼將以這種方式運行。 '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