如何自動刪除行考慮以下(部分)Excel工作表:在Excel
A | B | C | D
---+-------------+-------+-------
id | date | var_a | var_b
1 | 2011-03-12 | 200 | 34.22
1 | 2011-03-13 | 203 | 35.13
1 | 2011-03-14 | 205 | 34.14
1 | 2011-03-15 | 207 | 54.88
1 | 2011-03-16 | 208 | 12.01
1 | 2011-03-18 | 203 | 76.10
1 | 2011-03-19 | 210 | 14.86
1 | 2011-03-20 | 200 | 25.45
. | . | . | .
. | . | . | .
2 | 2011-03-12 | 200 | 34.22
2 | 2011-03-13 | 203 | 35.13
2 | 2011-03-14 | 205 | 34.14
2 | 2011-03-15 | 207 | 54.88
2 | 2011-03-16 | 208 | 12.01
2 | 2011-03-18 | 203 | 76.10
2 | 2011-03-19 | 210 | 14.86
2 | 2011-03-20 | 200 | 25.45
. | . | . | .
. | . | . | .
在現實中,有超過5.000的行。我需要刪除所有日期在星期六或星期日落下的行。在這個例子中,3月12日和13日(2011-03-12/13)
和3月19日和20日是星期六和星期天。我不能只刪除第n行,因爲列表中可能會有幾天缺失(如2011-03-17
)。
這可能與公式或VBScript有關嗎?我從來沒有寫過一個VBScript宏(我從來沒有用過它),所以我會很感激一些幫助。
你沒有提到你想要的自動化程度如何。您可以添加公式= WEEKDAY($ B1,2)的列,然後在該列上添加一個過濾器(6 =星期六,7 =星期日),以便交互式過濾並刪除。當然,如果你最終得到一個宏,WEEKDAY仍然是關鍵。 – 2012-08-04 17:49:30
@ JimO'Neil我不知道如何做到這一點,除此之外,我認爲最好不用排序來刪除行。我已經更新了這個例子。請注意,實際上該工作表包含paneldata。我有100家公司(由'id'標識),每個公司都有(相同的)500個日期。我不知道如果在刪除星期六和星期日的行後我將能夠將它重新排序...您的洞察力請:-) – Pr0no 2012-08-04 18:09:57
您沒有排序,您正在過濾,訂單將被保留。如果您使用WEEKDAY公式添加該列,然後打開過濾器以僅顯示值6和7,則可以刪除這些行,其餘部分將保留(在刪除過濾器後)。 – 2012-08-04 18:26:35