如何编写自定义公式,以便Drag选项不会将单元格公式串联起来?

时间:2013-09-16 12:16:39

标签: excel excel-formula

我有一张excel表,每天都有收入。对于星期六,星期日和其他公众假期,小区将是空的。

在另一张表中,我需要生成每周报告,我只需要显示该周的最后一次生成收入。例如,一周从星期一开始,到星期日结束。 Satruday和星期日的细胞将是空的。因此,在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公式是什么?

提前致谢

2 个答案:

答案 0 :(得分:1)

Microsoft提供this公式以确定哪个是填充数据的最后一个单元格:

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

使用OFFSET获取要检查的范围,使用ROW()确定哪个区域,我们可以创建起始单元格OFFSET($A$1,(ROW()-1)*7,0)(假设您在第1行中有这个,否则改变 -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

答案 1 :(得分:0)

执行此操作的任何更简单的方法可能是拥有一个隐藏的行,以查看单元格A1,B1等是否有值,并查看下一个是否为空。当该陈述为真时返回1,因为那将是最后一个。

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

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