我有一组数据,在另一张表上我计算了整行的最小值和最大值。
数据从 D4 开始,每行都是另一个数据集。问题是,当我为新数据添加新列时,Excel 不会更新公式以自动扩展范围。我必须手动浏览每个错误消息并“更新以包含单元格”。
公式示例:
=MIN(Historian!$D4:$AR4)
答案1
我假设你的意思是你开始使用你之前的列右边的一列,在你的公式中为“AS”,因为在你的范围内插入就可以实现你想要的。
传统方法有以下几种:
您可以使用一个互联网网站所称的“灰条”方法。这可能是最古老的想法(系统地解决这个问题的想法……请参阅 #5 了解可能最古老的想法)。您的公式单元格左侧有一个空列(在您的例子中,但如果上下则改为“行”),右侧也有一个空列。因此,如果您想对某个范围求和,
D4:AR4
您会使用该范围C4:AS4
并始终在右侧插入一列,而不仅仅是开始使用列 AS。这会让 Excel 为您调整公式。通常,唯一真正的缺点是它感觉古老而笨拙。不过效果很好。使用生成范围的公式
dynamic
。当您开始更多地使用行或列时,此范围会自动扩展。如何实现?嗯,这就是问题所在,不是吗?您必须找到一些巧妙的方法告诉 Excel 如何实现这一点。实际上,这通常不需要超级聪明,但它可能会导致难以察觉的错误。我还要说的是,当您对 Excel 函数的经验很少时,您可能甚至无法想象某些函数可以为您做到这一点。但是有很多网站可以为您提供很多想法,而且这真的非常简单,同时又是一套很好的课程,可帮助您提高 Excel 水平。使用上述想法,但将公式应用于命名范围。就像 Rajesh S 建议的那样。当然,会出现一些困难。一旦你想出一个好的方法来为每一行做这件事,你就可以开始创建你需要的每个命名范围了……你有 42,000 行?那么,现在就开始创建这 42,000 个命名范围吧,因为它们不会自己创建……但是学习,以及许多想要传授它的网站,都在你这边,你可以改变你的动态范围制作公式,使其使用的单元格地址基于它所在的行(或列),或其单元格相对于源数据的相对位置,或两者,以及一些其他想法。你有第二层“动态”,你可以将其应用于公式,然后你只需要为所有这些单元格创建一个命名范围,如果你能找到一种方法将它可靠地与你进行求和的公式的位置联系起来,或者其他什么。这也可以在很多网站上找到,而且一旦你有了正确的心态,就很容易做到。
使用 VBA。VBA 是许多事物的黄金标准,也是易于描述、重复性事物的金矿。简单的事情并不难学,因为您通常可以使用宏记录器来完成它们,然后查看生成的 VBA 并“啊哈!”并根据需要进行扩展。虽然 VBA 通常不会在互联网上免费教授,但您仍然可以找到许多更简单的东西。VBA 确实需要时间来“做它的事情”,但它根本不在乎您是否让它检查行中的 1,000 个单元格,丢弃所有空白,并找到具有实际条目的单元格的最小值。还有其他简单的方法可以忽略每行右侧的未使用单元格。在这个范围内,做它的事情的时间与现代计算机上的时间加起来并不多。不再有“下午 5 点离开之前不要对数据库进行排序”(因为排序需要 4-10 小时)规则,因为计算机速度很快。 (此外,使用一些 VBA 可能会帮助您克服困难,可以这么说,让您愿意学习更多,而不是把那个可怕的时刻留到“某一天”......只是一个想法。)
最简单的方法是,如果它不会引起其他问题:只需编写公式以包含 50 个额外的列。或者 52:
D4:CR4
每年一次或任何其他时间,重新访问并进一步扩展它们(如果您添加了很多列),或者每十年一次(如果您添加的速度不是那么快)。