2017-04-12 24 views
0

在工作中,我們有一個工作表,包含多個工作表(40-50)。每個工作表都代表一項特定的研究。每個表上有幾個人名字,姓氏,學習開始(日期),生日等等。我們有一張工作表,裏面有一個概述。 (工作表研究1,工作表研究2,工作表研究3)。從其他工作表中獲得特定年份

有沒有什麼辦法,我可以在總覽上放置一列,並過濾已加入研究的人員。 (所有在2016年加入研究的人,但不是那些沒有加入的研究)。我有一個研究開始日期的專欄,但是人們可以在研究開始後加入研究。

我已經試過使用一個過濾器,並嘗試了一些與數據驗證的東西,但我無處可去接近一個解決方案。有沒有人能讓我走上正軌?

+3

我不是Excel大師,但50個工作表聽起來像是處於不可維護的邊緣,並且容易出錯。如果我是你,我會把這些數據放到一個數據庫中,在那裏很容易回答你的問題。 –

+0

我意識到這一點,並且我總是推薦DB(爲sql,access或filemaker),但這是一個在「早期」中由某人做出的excel:D。看來,我將不得不向他們介紹這些解決方案之一。 無論如何謝謝你看看。 –

回答

1

我在這裏做一些假設:

  • 我假設每個工作表的研究是在相同的格式在一項研究中(你想要的數據)
  • 的人是在在每張紙上的標準化位置

一個解決方案是在VBA中做一些代碼。你可以遍歷每一個表格(顯然不稱爲'Overview'),並將一個變量指定給你想要檢查的細節的範圍,然後迭代該範圍中的每個單元格,並在數組中記錄名稱任何符合條件的人。

例如,如果每個研究板具有這樣的與會者名單: Participant List

您需要定義範圍變量[工作表] .Range(「A5:A12」),並說:

For Each <cell> in <range>.Cells 
If Year(<Worksheet>.Cells(<cell>.Row, <cell>.column + 1).Value) = 2017 Then 
<assign the contents of <cell> to an Array> 
Next <cell> 

一旦您完成了每個工作表,數組的內容可以輸出到任何所需的位置,無論是在Overview表或其他地方。 這將是一種實現方法的基本思路。我會強調,儘管您的數據聽起來像是MS Access數據庫的理想之處(但我從個人經驗中知道,有些公司/部門害怕任何不是Excel的東西,所以我感覺到你的痛苦!)

相關問題