簡體   English   中英

如何將40個工作簿中的Excel數據與每個工作簿中的25個工作表合並?

[英]How to combine Excel data from 40 Workbooks with 25 Worksheets in each?

我有40個Excel工作簿,每個工作簿都有25個工作表,其中包含A:Q列中的數據和可變的行數(少於5000行)。

40本工作簿中的每本都代表1個團隊。 25個工作表中的每個工作表都是1個月的數據,工作表的名稱為'Jan-15','Feb-15'等...至'Dec-16',因此到目前為止,顯然只有5個工作表具有數據( (因為現在是5月15日)。 每個工作簿都是為將來的數據而設置的。

我需要將所有數據放在一個地方,我認為最好使用數據透視表。 到目前為止,我已經建立了一個額外的工作簿,其中包含VBA代碼,可以將所需的數據提取到一個數據透視表中。 它通過在每個工作表的工作表上具有復選框,每個月具有更多復選框來實現此目的。 如果選中此復選框(= TRUE),那么將提取該團隊和月份的數據。

例如,如果選擇“ Team 1”和“ Jan-15”,則數據透視表將顯示Team 1的一月數據。 如果選擇了“ Team 5”和“ Mar-15”,則將提取Team 1和Team 5的1月和3月數據。

在VBA中通過編譯所需數據的SQL字符串來做到這一點(我的SQL知識僅限於研究2天!),例如:

SELECT * 
  FROM `Team 13.xlsx`.[JAN-15$] 
UNION ALL 
SELECT * 
  FROM `Team 13.xlsx`.[FEB-15$] 
UNION ALL 
SELECT * 
  FROM `Team 13.xlsx`.[MAR-15$] 
UNION ALL 
SELECT * 
  FROM `Team 15.xlsx`.[JAN-15$] 
UNION ALL 
SELECT * 
  FROM `Team 15.xlsx`.[FEB-15$] 
UNION ALL 
SELECT * 
  FROM `Team 15.xlsx`.[MAR-15$]"  
   etc....

有時候,我只需要查看例如3月1日和2月15日的團隊數據,有時我需要3月15日的1至10團隊的數據,有時我需要查看整個30天的40個團隊的數據。過去12個月。

但是,我現在很努力,因為這僅適用於一定數量的選擇。 我一次最多只需要選擇12個月,因此我可以選擇的“月”復選框數量受到限制,但是當收到錯誤消息時,我無法選擇全部40個團隊和全部12個月說的是

運行時錯誤'1004':[Microsoft] [ODBC Excel驅動程序]查詢太復雜。

如果我只選擇10個團隊和5個月,或者40個團隊和1個月,則查詢運行良好,但我需要更多。

我的SQL代碼是否錯誤,還是有更好的編寫方法?

還是我可以結合所有這些數據的另一種方法? (我只能使用Excel,而不能使用Access!)

正如錯誤所指出的那樣,您的查詢很好,您只是創建了一個過於復雜的查詢,差勁的Jet * Engine無法處理。 我建議您將其分解為一個簡單的循環,在該循環中,您將每個團隊/月復選框組合作為一個單獨的查詢來處理,每個將數據拉入主表並將其附加到數據集的末尾,即數據透視表是建立。

通過一些測試,您可以確定可以組建一個團隊而不會使數據庫引擎不知所措,並編寫代碼以這種方式工作(例如,最多12個Union ),但這會使您的代碼更加復雜。 您可能會發現,由於不必進行太多SQL查詢,它的執行速度會更快一些,但是由於它們更復雜,因此執行速度可能會變慢。

*是的,我知道它不再被稱為“ Jet”,但我選擇讓Wiki鏈接處理細線,盡管微軟希望我們這樣做,但大多數人可能仍將其稱為“ Jet”。

謝謝回答這個問題的人。 非常感謝您的幫助和經驗:-)

今天,我已經使用所發布的評論設法解決了這個問題; 使用VBA在工作簿和工作表中循環,使用復選框將數據從每個工作表復制到另一個(報告)工作簿中的主表中,然后使用VBA從主數據創建數據透視表。

感謝FreeMan發布答案,但是很遺憾,我的SQL和Query技能非常有限,我不了解或不知道如何實施您的建議! 因此,我認為我的VBA解決方案對我而言將是最簡單且可行的。

我認為起初我在嘗試使用Query / SQL時使問題變得過於復雜,但是我發現這是基於我之前對網進行的研究而采取的方法。 我認為跨所有數據復制可能會非常耗時且困難,但事實並非如此。

我可以發布用於檢查復選框,打開文件,選擇工作表,復制數據並創建數據透視表(如果有人需要這樣做)的代碼。

希望這可以在將來幫助某人!

NGH

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM