2011-10-28 67 views
1

我在Excel中有一組包含特定月份數據的行。該月份由名爲「月」的列標識,此列中的數據格式爲mm/yyyy在Excel中複製記錄

現在,我想爲這11個月的每個月垂直複製這些記錄,並且每次複製時,月份行應該在該月份發生變化(例如,第二次複製時,月份行應該顯示二月,然後是三月下一次,等等)。

除了複製和粘貼11次以及手動更改月份之外,最好的方法是什麼?

+0

有一對夫婦的非手動複製/粘貼的解決方案的情況。 (1)如果您有偏好,則可以編寫23的代碼(2)在單獨的工作表上使用OFFSET公式,並進行一些操作以在日期列中添加月份。你有偏好嗎? – brettdj

+0

我會複製11次,而不是寫宏... 11是不是很難重複(如果這是像300 ID認爲別的東西)來處理月份問題,我會首先分開月份和年份,手動或by = year()和= month()函數。爲了爭論而說,你有36條記錄。所以你的原始數據在第37行結束(假設第一行是標題)。然後在第38行中,放入像= a2 + 1這樣的公式,以便我得到下一個月。把它複製下來,這樣你就得到了36行相同的數字,增加了1,然後又增加了36行,依此類推。你複製這個東西 – yosukesabai

回答

1

的偏移方法只需要兩個公式複製到一個新的工作表設置擴展數據集

此樣本假定

  • 當前的表稱爲Sheet1中
  • 您月份的數據毫米/ yyyy從第2行開始,並且在列A中

更改下面兩個公式中的工作表名稱和列很容易,如果您的數據要提取s在第3排不是第2排,然後將所有ROW()-2)改爲ROW()-3)

儘管第一個看起來比實際更加混亂(要添加1個月),但這個概念很簡單。該OFFSET方法從表1只,每12行向下移動一個單元格,當月被調整了每個單元

  1. 在A2放,=DATE(YEAR(OFFSET(Sheet1!A$2,INT((ROW()-2)/12),0)),MONTH(OFFSET(Sheet1!A$2,INT((ROW()-2)/12),0))+MOD(ROW()-2,12),DAY(OFFSET(Sheet1!A$2,INT((ROW()-2)/12),0)))
  2. 在B2放,=OFFSET(Sheet1!B$2,INT((ROW()-2)/12),0)和複製至於你有場

enter image description here

+0

看起來我誤解了OP的問題。你的似乎更可能需要完成的任務.... – yosukesabai

0

令人驚訝的是,Excel 2007中(只有一個我有可用的)理解月/年爲日期,所以式=TEXT(DATE(YEAR(A2),MONTH(A2)+1,1),"mm/yyyy")創建下一個日期,並可以複製下來。
複製其他數據,簡直是把值=B2等等