2012-11-01 97 views
2

enter image description here在Microsoft Excel 2007

我與Microsoft Excel 2010工作,我有不同的日期柱狀E1查找和排序個月的名稱相同單:E19不在特定的時間間隔。我想幫助找到僅開始月份日期並將其粘貼到G列中,如圖所示。

+0

whathaveyoutried.com G2的公式,你現在參考EOMONTH(G2),應在 – ApplePie

回答

4

首先,是說 - 兩者K_B和易卜拉欣奧德具有有效和良好的attemps。我只是想添加另一個選項,因爲這些選項使用額外的行或手動工具。

這裏是我來解決這個想出瞭如在屏幕截圖的公式 - 只要一列,只是行與起始日期:

G1=SUBTOTAL(5,E$1:E$19) 

G2=SUBTOTAL(5,OFFSET(E$1:E$19,MATCH(EOMONTH(G1,0),E$1:E$19,1),0,ROWS(E$1:E$19)-MATCH(EOMONTH(G1,0),E$1:E$19,1))) 

有可能使用這個整個列,像這樣:

G1=SUBTOTAL(5,E:E) 

G2=SUBTOTAL(5,OFFSET(E:E,MATCH(EOMONTH(G1,0),E:E,1),0,ROWS(E:E)-MATCH(EOMONTH(G1,0),E:E,1))) 

而現在,一些解釋:

首先,你需要一個起點G1 - 所以我們使用SUBTOTAL使用MIN(它是5)得到列E中的最早日期。

現在我們從這裏開始工作,通過抵消我們用來計算我們的SUBTOTAL的範圍,仍然使用MIN(5)來獲得每月的開始。

訣竅是OFFSET。第一個參數是超出基本範圍,我們將抵消,然後我們必須確定要抵消多少行,並且不會出現錯誤,我們使用ROWS(basicRange) - rowOffset始終保持在超出範圍。

MATCH用於確定了必要的補償,通過使用EOMONTHG1尋找月份的最後日期上市的行。

希望這可以清除任何問題。

編輯:

因爲我有翻譯這個,原來這裏是:

=TEILERGEBNIS(5;E:E) 

=TEILERGEBNIS(5;BEREICH.VERSCHIEBEN(E:E;VERGLEICH(MONATSENDE(G1;0);E:E;1);0;ZEILEN(E:E)-VERGLEICH(MONATSENDE(G1;0);E:E;1))) 
+0

G1代替G2。確實很好的方法,不需要額外的列,非常乾淨! –

+0

@K_B當然!感謝您的更正! – Jook

+0

謝謝@Jook這個方法非常有用。 – mumair

1

只要你的日期列進行排序,因爲它看起來在這個例子中,然後執行以下操作:

插入一列1行(使用公式) 輸入A列的公式中的所有行你的桌子有。其計算公式如下:

=If(NOT(YEAR($E2)&MONTH($E2)=YEAR($E1)&MONTH($E1), MAX($F$1:$F1)+1, "")

這將從1添加越來越多至數月的僅次於第一次約會涉及您的表,以月數。

然後在G列的表放:

=VLOOKUP(ROW(), A:E, 5)

您可以向下至於你要拖到這個公式。該公式找到A:E中與G中的行號匹配的第一條記錄(G1中的ROW()返回1),則VLOOKUP()將返回A:E中的第5列中的值(即E列中的日期)。

A列中的公式應該在VLOOKUP()公式的日期左側工作。

或者你可以把它放在一列的權利,但隨後使用的VLOOKUP()代替另一個公式列G:

=SUMIF(F:F,ROW(),E:E)

此總結了E的所有值的行,其中在F的值匹配的細胞在G行號