2014-07-07 121 views
-1

我有包含500,000個數據單元(從A到M)的報告。EXCEL VBA:從範圍獲取數據

我需要總結這些數據。

示例FROM:

no。日期行動

112256 07/Jul/2014 Done 1:00:00 AM 
112256 07/Jul/2014 Done 1:15:00 AM 
112256 07/Jul/2014 Done 1:18:00 AM 
112256 07/Jul/2014 Adjusted 1:35:00 AM 
112256 07/Jul/2014 Adjusted 1:39:00 AM 
112256 07/Jul/2014 Finished 1:57:00 AM 
112387 07/Jul/2014 Done 3:01:00 AM 
112387 07/Jul/2014 Adjusted 3:33:00 AM 
112387 07/Jul/2014 Adjusted 3:45:00 AM 
112387 07/Jul/2014 Finished 4:57:00 AM 

沒有時間:

112256 07/Jul/2014 1:00:00 AM 1:39:00 AM 1:57:00 AM 
112387 07/Jul/2014 3:01:00 AM 3:45:00 AM 4:57:00 AM 

問題進行日期來調整成品:

當你看到 「不」。是上升的,而每一個「不」。可以有1到50個值(採取的行動)。當需要sumarizing我只需要1個「不」。 (確定零件已被製造),1「日期」(何時)以及3次行動次數「第一次完成時,最後一次被調整,並且 - 唯一 - 完成」

我得到了趕上了這一點,我想如何選擇範圍與「不」。然後在該範圍內搜索首先完成,最後調整並完成,但我無法在一個範圍內正常工作。我目前沒有任何東西,這只是一小部分,但我認爲這是一個取得巨大成功的正確途徑。 謝謝你的回答。

+0

你這是什麼想總結一下?我知道這些數據,但是你想要計算完成,調整還是完成?我不確定你想要做什麼。 此外,您還沒有包含任何您可能或可能沒有嘗試過的代碼?你有沒有試過自己編寫代碼? – tannman357

+1

堆棧溢出不是「請求」代碼的正確位置。 –

+0

@ tannman357你好,因爲每個動作都有一條額外的行加起來到報告中,所以我需要總結一下,通過獲取第一次完成的時間調整並完成操作。 可以說它被調整了34次,同樣沒有。部分,所以我總結時只需要最後調整(這可以節省34行!),因爲每一行都包含相同的數據,只是在我調整時的不同時間。 最後: 沒有。 - 當完成 完成日期 - - 時間時首先進行 調整 - 時間時最後調整 完成 - 一個詳細數目 日期完成 – user3812753

回答

0

數據透視表是答案,但您需要先添加一個幫助列。

假設您的數據在列A:D中,在E2中輸入以下公式並抄下(此方法的下邊是重新計算可能非常慢)。我把Combined作爲列標題在E1。您可以根據需要重新命名。

=IF($C2="Finished","Keep",IF(AND($C2="Done",$D2=MIN(IF(A:A=$A2,IF(C:C=$C2,D:D)))),"Keep",IF(AND($C2="Adjusted",$D2=MAX(IF(A:A=$A2,IF(C:C=$C2,D:D)))),"Keep","No"))) 

這是數組公式所以你需要按CTRL + SHIFT + ENTER得到它才能正常工作。

這樣做是什麼節目保留所有Finished項目,所有第一Done項目,併爲每個No.

所有最後Adjusted項目然後創建一個數據透視表,你會放在以下項目數據透視表方面:

  1. 報告過濾器:新Combined
  2. 列標籤:Action
  3. 個標籤:No.柱上,然後Date
  4. 值:Time

現在格式化數據透視表。

  1. 透視表的值區域,改變Value Field SettingsSum
  2. 濾波器Combined報告過濾器,只包括具有Keep
  3. 在功能區選擇分類彙總的數據透視表設計選項卡和項目Do Not Show Subtotals
  4. 在帶的透視表設計選項卡選擇的總計和 Off for Rows and Columns
  5. 在透視表設計選項卡ö F中的色帶選擇報表佈局和Show in Tabular Form
  6. 在功能區中選擇報表佈局和Repeat All Item Labels

你的最終結果應該是這樣的數據透視表設計選項卡:

enter image description here

+0

你好!總結這些數據只是十步之內的第一步!在這一步之後,我將能夠採取行動 - 我需要檢查有多少項目沒有按時完成,原因是什麼,我沒有粘貼完整的excel數據,因爲真的很多(A到M列)。 我需要了解我需要如何獲取數據範圍,例如 - 我找到相同的詳細數字,我需要獲取範圍,例如詳細信息編號157722範圍19457 - 19467(數據包含超過500k行) - 這樣okey就有10行和用這個細節做出的動作。 – user3812753

+0

因此,對於i = 1到n,當第一個數字顯示並最後顯示時,我需要找到該行,然後再添加另一個,我將通過這10行查找第一個完成,最後一個調整完成並將它們一行輸出到其他工作表。 – user3812753

+0

嘿,這很好,但爲了幫助他人,我會解析你的步驟到不同的問題。如果你知道你的出發點和終點,找出你需要做的事情,然後在卡住的地方發表不同的問題。在評論中擴展您的問題不會幫助您或其他人獲得您的解決方案。 – guitarthrower