2012-03-09 54 views
0

我有這種非常格式不正確的數據,我必須每週工作。這裏有一個例子:試圖通過使用excel的relavence做一場比賽

 
Code:  To:  Total:  Description:  
------------------------------------------------------------- 
FD987  00001 5   Food/Snack/M&M
FD987 00001 5 Food/Snack/Pretzels
NA654 00001 5 Non-Alc/Soda/Sprite
NA654 00002 2 Non-Alc/Soda/Sprite
NA987 00002 2 Non-Alc/Soda/Lemonde

我要結束了該數據由「要」代碼排序,各種數據總結了在每個類別分類彙總和分類彙總爲整體「到」條目。像這樣:

 
To:  Total:  Description:  
--------------------------------------------------- 
00001 10   Food Subtotal
00001 5 Non-Alc Subtotal
00001 15 Grand total
00002 0 Food Subtotal
00002 4 Non-Alc Subtotal
00002 4 Grand total

我已經編寫了獲取「00001」和「00002」的代碼。但我不知道該怎麼做。我是否應該循環使用if和for的組合?

例如:

pseudo code: 

for all i in UniqueToCodes 
    if (cell.value = i) then 
     Descriptions = {"Food", "Non-Alc"} 
     tempsum = 0 
     for all j in Descriptions 
      q = total for item j belonging to Descriptions belonging to UniqueToCodes 
      tempSum = tempSum + q 
     next j 
    end if 
next i 

或將向後循環更有效率?

例如,作爲這樣的:

pseudo-code: 

for i = lastOccurenceOf(ToCode) to firstOccurenceOf(ToCode) -1 
    Descriptions = {"Food", "Non-Alc"} 
    for all j in Descriptions 
     q = total for item j belonging to Descriptions belonging to UniqueToCodes 
     tempSum = tempSum + q 
    next j 
next i 

(我知道「到」代碼始終顯示爲塊,且從未被其他代碼感嘆詞即 總是像這樣的:

 
00001 
00001 
00002 

從未因爲這個:

 
00001 
00001 
00003 
00001

也我如何存儲所有這些臨時款項?即「To」代碼爲「00001」的「Food」的tempSum和「Non-Alc」的tempSum?我知道字典對象只將一個屬性映射到一個鍵。但是我需要將小計與Description和Grand Total合計到「To」代碼中。你會說什麼是解決這個問題的最好方法?任何幫助將不勝感激!謝謝!

+2

你有沒有考慮過使用數據透視表? – assylias 2012-03-09 18:24:16

+0

同意,根據您的示例數據,關鍵點幾乎肯定會更容易。 [良好的資源開始](http://www.ozgrid.com/Excel/excel-pivot-tables.htm) – Gaffi 2012-03-09 18:25:49

+0

我第三個數據透視表的建議。你的數據非常完美。 – 2012-03-09 18:39:17

回答

2

就像人們在評論中所說的那樣,數據透視表可能是總結數據的最簡單方法。但是,爲了小計你想要的方式,你需要分解描述列。

在Excel 2007中,您可以使用Text to Columns如下:

  1. 選擇您的描述列。
  2. 點擊Data - >Text to Columns
  3. Convert Text to Columns Wizard確保原始數據類型設置爲Delimited並單擊Next
  4. 選擇DelimitersOther並輸入/,然後點擊Finish
  5. 無論你想要什麼,重新命名新的列。

Using Text to Columns Wizard Renamed Columns

如果文本分列不可用,只是創建一個公式來拉第一食品類了說明。例如,使用上面的第一張圖片,將此公式放在單元格E2中。 =LEFT(D2,FIND("/",D2)-1)

現在您可以創建數據透視表。

  1. 確保活動單元格數據表中,然後點擊Insert - >PivotTable。當顯示Create PivotTable對話框時,單擊OK
  2. 拖動ToTypeRow Lables區域和TotalValues區域。
  3. 完成。有你的基本數據透視表。您可以通過數據透視表選項和字段設置更改基本格式。

basic pivot table