2010-01-18 51 views
3

我已經列出了交易日期以及在該日期進行交易的人的用戶標識(僅允許1天/天)。例如:使用Excel顯示日期範圍內發生的次數

我想創建一個矩陣表示,因爲每個日期的,誰取得了1個交易,2-10交易,10-20交易等的用戶數例如(注意,下面的數據不對應於上述的交易數據):

是一個透視表在這裏我最好的機制是什麼?如果是(或不),我會如何處理?

回答

2

我的投票使用樞軸 如果你有2007這樣的事情

1)選擇您有以上 2)不要插入樞軸 3)將日期排Loabel 4)將用戶ID數據列=>你會得到每個用戶ID 5)一列值yoiu應該有用戶 6的計數),然後你需要添加計算,在段1-10等

+0

感謝您的快速答覆。你能否澄清爲什麼我要將用戶ID拖到列中?我最終會有成千上萬的專欄。我遇到的另一個問題是如何創建段列公式來計算該範圍內出現的次數。 – Howiecamp 2010-01-18 00:21:57

+0

也許這是一個壞方法,如果你有成千上萬的用戶...... 我想過使用頻率函數,如http://www.meadinkent.co.uk/xlfreq.htm – salgo60 2010-01-18 03:19:34

1

我的用戶數新列知道我要說的是有點「超出範圍」,但我有這樣的問題,我用R來解決它。 (如果我沒有使用R,我想我會嘗試SQL但絕不會選擇Excel)

我也有一個名爲「trans_data」的2列表,就像你的。列名稱是「trans_date」和「user_id」。我還希望在特定交易限制範圍內的像用戶數量那樣的應急表。

下面是代碼

library(plyr) 
adply(table(trans_date),1,function(x) { 
    d = NULL 
    d["1"] <- sum(x==1) 
    d["2_to_5"] <- sum(x > 1 & x <= 5) 
    d["6_to_27"] <- sum(x > 5 & x <= 27) 
    d["28_to_120"] <- sum(x > 27 & x <= 120) 
    d["121_to_398"] <- sum(x > 120 & x <= 398) 
    d[">_398"] <- sum(x > 398) 
    return(d) 
    } 
) 

和部分結果

trans_date 1 2_to_5 6_to_27 28_to_120 121_to_398 >_398 
1 2009-01-25 257 169  61   7   1  0 
2 2009-01-26 145 125  53   3   1  0 
3 2009-01-27 175 117  44  12   0  0 
4 2009-01-28 171 138  49   7   4  0 
5 2009-01-29 756 217  71   5   3  0