在Excel中复制记录

时间:2011-10-28 07:50:02

标签: excel excel-vba vba

我在Excel中有一组行,其中包含特定月份的数据。该月份由名为“月”的列标识,此列中的数据采用mm/yyyy格式。

现在,我想在接下来的11个月中垂直复制这些记录,每次重复时,月份行应该在该月更改(例如,第二次重复,月份行应该显示2月,然后是3月的下一次等。)。

除了复制和粘贴11次以及手动更改月份之外,最好的方法是什么?

2 个答案:

答案 0 :(得分:1)

OFFSET方法只需要将两个公式复制到新工作表以设置扩展数据集

此示例假设

  • 您当前的工作表名为sheet1
  • 您的月份数据mm / yyyy从第2行开始,位于A列

如果您要提取的数据在第3行而不是第2行开始,然后将所有ROW()-2)更改为ROW()-3)等,则更改以下两个公式中的工作表名称和列很容易

虽然第一个看起来比它实际上更加混乱(增加1个月),但这个概念很简单。 OFFSET方法每12行从Sheet 1向下移动一个单元格,每个单元调整每个单元格

  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 put中,=OFFSET(Sheet1!B$2,INT((ROW()-2)/12),0)并复制到你有字段
  3. enter image description here

答案 1 :(得分:0)

令人惊讶的是,Excel 2007 (我只有一个)将mm / yyyy理解为日期,因此公式=TEXT(DATE(YEAR(A2),MONTH(A2)+1,1),"mm/yyyy")创建下一个日期,并可以向下复制。<登记/> 复制其他数据只是将值设为=B2等等