假设我在一张工作表上有多个表格。每个表格代表一年中的一个月。我想在下一张工作表上显示其中一个表格,即当前月份的表格。
我怎样才能实现这个目标?
答案1
假设:
Sheet1 包含如下表格:
日期......第一列...... 2012-01-01 一些文本... ... 2012-01-02 ... ....
然后在 Sheet2 中输入以下内容:
A1:基础 B1:2012-02-01 C1: =MATCH(B1;Sheet1!A2:A9999) A2:结束 B2:=B1+(DATE(YEAR(B1);MONTH(B1)+1;DAY(B1))-B1)-1,=B2-B1 A3:=Sheet1!A1 B3:=Sheet1!B1 A4:=IF(ROWS($A$4:A4)<=($C$2);OFFSET(Sheet1!$A$2;$C$1+ROWS($A$4:A4)-2;COLUMNS($A$4:A4)-1);"")
... 将显示类似于(例如第二列作为第一列的长版本日期):
基数 2012-02-12 43 < 开始行 结束。2012-03-11 28 < 计数 日期 dText 2012-02-12 2012 年 2 月 12 日 2012-02-13 2012 年 2 月 13 日 2012-02-14 2012 年 2 月 14 日 2012-02-15 2012 年 2 月 15 日 2012-02-16 2012 年 2 月 16 日 2012-02-17 2012 年 2 月 17 日 2012-02-18 2012 年 2 月 18 日 2012-02-19 2012 年 2 月 19 日 2012-02-20 2012 年 2 月 20 日 2012-02-21 2012 年 2 月 21 日 2012-02-22 2012 年 2 月 22 日 2012-02-23 2012 年 2 月 23 日 2012-02-24 2012 年 2 月 24 日 2012-02-25 2012 年 2 月 25 日 2012-02-26 2012 年 2 月 26 日 2012-02-27 2012 年 2 月 27 日 2012-02-28 2012 年 2 月 28 日 2012-02-29 2012 年 2 月 29 日 2012-03-01 2012 年 3 月 1 日 2012-03-02 2012 年 3 月 2 日 2012-03-03 2012 年 3 月 3 日 2012-03-04 2012 年 3 月 4 日 2012-03-05 2012 年 3 月 5 日 2012-03-06 2012 年 3 月 6 日 2012-03-07 2012 年 3 月 7 日 2012-03-08 2012 年 3 月 8 日 2012-03-09 2012 年 3 月 9 日 2012-03-10 2012 年 3 月 10 日
...假设你把A4的内容填入前两列(例子中,随意扩展),并且在Sheet1中有显示的数据。
更改“基准”日期,显示将会适应,使用基准日期月份的天数作为行数。
“起始行”是 match() 使用基准日期作为参数在第一张工作表上找到的行。
“count” 是该月中的天数。
然后在 A4 中的公式中使用这些值,通过 OFFSET()、计算 ROWS() 和 COLUMNS() 来挑选出数据的相关部分。
尝试将其保存为“Test.csv”并在 Excel 中打开,以获取输入的公式:
base,2012-02-02,=MATCH(B1;Sheet1!A2:A9999),"=""< 起始行""" 结束,=B1+(DATE(YEAR(B1);MONTH(B1)+1;DAY(B1))-B1)-1,=B2-B1,"=""< count""" =工作表 1!A1,=工作表 1!B1,, "=IF(ROWS($A$4:A4)<=($C$2);OFFSET(Sheet1!$A$2;$C$1+ROWS($A$4:A4)-2;COLUMNS($A$4:A4)-1);"""")","=IF(ROWS($A$4:B4)<=($C$2);OFFSET(Sheet1!$A$2;$C$1+ROWS($A$4:B4)-2;COLUMNS($A$4:B4)-1);"""")",,