IfError,保留公式/不做任何事情?

时间:2017-03-11 12:23:57

标签: excel vba excel-vba

我有一个电子表格,我想在其中拖拽一个特定的索引/匹配公式,但是在公式没有返回值的情况下,我希望它保留已经到位的公式(总和它下面的一些项目)。

我知道你可以只使用公式的if_error部分的单元格引用,但是这将返回现在的单元格的值,并且不会使用当前公式来生成基于的新值索引匹配公式返回的值。

我在下面附上了照片。基本上,我想保留总和公式,但只能拖下第一个索引公式(我正在处理的实际电子表格有很多不同的空格,而且很长,否则我只是复制公式手动地)。

如果无法做到这一点,还有其他解决方案吗?我尝试的另一件事是每个没有返回值的索引/匹配,我让它将公式作为字符串返回,然后我使用值复制/粘贴特殊值,替换公式中的字符串中的列到我正在寻找的列,然后它将评估之前的字符串的公式。但是你失去了所有其他细胞的公式。

所以问题是有些单元格用于求和,我不想在这些单元格上拖动公式,但同时,我确实需要在整个范围内使用公式,否则它会只是花了太长时间。

Image 1

Image 2

3 个答案:

答案 0 :(得分:1)

将公式放入G1后,该单元格中的上一个公式将不再可用,因此在新公式中引用G1只会生成循环引用。

而是考虑将两个公式合并为一个公式:它应该检测它在哪种情况下然后执行适当的计算。

在你的情况下,我认为这个公式会做你想要的:

=IFERROR(INDEX($M$3:$M$9, MATCH(F1,$L$3:$L$9)), IF(E1="", "", SUM(G2:G4)))

将其放入单元格G1并将其复制下来。

注意它如何查看E列以决定是否应该进行总和。我还调整了一些你已经拥有的部分,通过使一些引用绝对(添加一些$),因为L和M列中的区域位于固定的行。

答案 1 :(得分:0)

在行H中为索引匹配公式添加辅助列,并将其一直复制下来。然后,在行中我做一个if语句。如果行H符合您想要的标准,请执行此操作,否则使用行G。

答案 2 :(得分:0)

所以我认为我找到了一个很好的解决方案,特别是在您要反复使用电子表格的情况下,格式不会发生太大变化。这可能对任何人来说都太具体了,但是发布它以防万一有人使用它。

首先我创建了两个宏,一个用于隐藏总和行,另一个用于取消隐藏所有求和行。通过将所有公式复制到我正在查看的新列中,我从另一列获得了总和行。数字当然是错误的,但总和公式将是我们想要保留的。您可以通过查找" sum"来加快速度。在公式中然后选择所有结果。

接下来,使用隐藏所有总和行的宏。

接下来,在第一行中创建索引公式。控制向下移动以选择下方的所有行。然后,"找到","去特别"然后选择"只有可见的单元格",然后点击F2,然后控制输入,这将公式复制到所有可见单元格,即非和格单元格。

然后使用你的取消隐藏宏,它应该是金色的!

您可以将此技术用于源数据格式与目标不同的任何电子表格,以及您始终需要的目标中已修复公式的位置。