Excel 2007:如何根据一个函数中使用的范围推断另一个函数中使用的范围

Excel 2007:如何根据一个函数中使用的范围推断另一个函数中使用的范围

我的文档有两个相关的列,我经常对其进行计算:小时数 (B) 和客户数 (D)。我使用 函数创建每周小时数总计=SUM(B15:B40)。但是,我还会使用 函数在另一个单元格中评估客户列,从而计算某个特定客户的总小时数=SUMIF(D15:D40, ("<>Example"), B15:B40)

下周,当我想再次执行此操作时,我会复制并粘贴这些求和单元格,然后更新范围。(给定一周的行数是不可预测的。)但是,我必须更新两个函数的范围。

在 Excel 2007 中,有没有办法让一个函数从另一个函数推断出它应该评估的范围?

这是 Excel 2007 中从函数的另一部分推断范围的一种方法吗?(那么,在示例中=SUMIF(D15:D40, ("<>Example"), B15:B40),有没有办法只指定15一次40?)

答案1

哦是的。

使用INDIRECT()函数。假设您在单元格 A1 和 A2 中输入1540,然后在某个单元格中输入公式。它会像这样:

=SUMIF(INDIRECT("D" & A1 & ":D" & A2), ("<>6"), INDIRECT("B" & A1 & ":B" & A2))

您在括号内构建字符串D15:D40,然后它会获取该有效地址并将其转换为实际引用。因此,您只需转到 A1 和 A2 即可更改当前范围的开始和结束。这比每周编辑公式或 60 个公式要容易得多。

对于不太直接的情况,还有其他方法。FORMULATEXT()例如,使用,您可以将不同单元格的公式读取为字符串(包括前导=),并删除其中某个范围内的前导字符,以及该范围之后的所有滞后字符,仅留下单元格使用的范围。INDIRECT()然后让您将其转换为第二个单元格使用的真实引用。这样,就可以保证两个单元格都使用该精确范围。听起来很深奥,但我有几个地方最适合它。通常,您会构建两者并以此方式进行匹配,但有时很难构建一个,所以......

不幸的是,没有办法将字符串转换为真正的公式。没有某种宏,即使是旧版 Excel 4 宏命令(Excel 现在更全面地将其视为宏),也不会随意处理它们并让漏洞存在。唉……

相关内容