1

我有一个每天产生收入的 Excel 表。周六、周日和其他公共假期,牢房将是空的。

在另一张表中,我需要生成每周报告,我只需要显示该周最后产生的收入。例如,一周从星期一开始,到星期日结束。周六和周日的单元格将是空的。所以在 Sheet2 A1 中我应该显示周五的收入。或者如果当天是星期二,它应该显示星期二的收入。我使用下面的公式来填充值。

=IF('Sheet1'!A1<>"",IF('Sheet1'!B1<>"",IF('Sheet1'!C1<>"",IF('Sheet1'!D1<>"",IF('Sheet1'!E1<>"",IF('Sheet1'!F1<>"",IF('Sheet1'!G1<>"",'Sheet1'!G1,'Sheet1'!F1),'Sheet1'!E1),'Sheet1'!D1),'Sheet1'!C1),'Sheet1'!B1),'Sheet1'!A1),"")

但是,如果我在工作表 2 中从单元格 A1 拖动到 B1,它应该考虑第 2 周,即第 8 列到第 14 列等等,而不是第 2 到 8 列。

那么我应该使用的 excel 公式是什么?

提前致谢

4

2 回答 2

1

微软给出这个公式来确定哪个是最后一个填充数据的单元格:

=OFFSET(<StartCell>,0,MATCH(MAX(Range)+1,<Range>,1)-1)

使用 OFFSET 获取要检查的范围,并使用 ROW() 确定哪个区域,我们可以制作起始单元格OFFSET($A$1,(ROW()-1)*7,0)(假设您在第一行有这个,否则更改公式中的-1)。范围变得几乎相同,但我们告诉OFFSET返回 7 个单元格:OFFSET($A$1,(ROW()-1)*7,0,7)。我们使用$来修复单元格,因为我们不想计算与可变位置的偏移量。这给出了完整的公式:

=OFFSET(OFFSET(Sheet1!$A$1,(ROW()-1)*7,0),MATCH(MAX(OFFSET(Sheet1!$A$1,(ROW()-1)*7,0,7))+1,OFFSET(Sheet1!$A$1,(ROW()-1)*7,0,7),1)-1,0)

并且可以根据需要将其复制下来-当公式用完要查看的数据时,您将开始得到#N/A 。

于 2013-09-16T13:02:31.917 回答
0

任何更简单的方法可能是有一个隐藏行来查看单元格 A1、B1 等是否有值,并查看下一个是否为空白。当该语句为真时返回 1,因为那将是最后一个。

然后,您只需使用 V 或 HLOOKUP 查找其中包含 1 的列。

它更易于阅读,您可以在更多列中使用它,而无需使公式变大。

于 2013-09-16T12:34:38.633 回答