首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Google公式有时不适用于合并的单元格

Google公式有时不适用于合并的单元格
EN

Stack Overflow用户
提问于 2020-11-19 12:35:12
回答 2查看 871关注 0票数 3

因此,我已经在Google中创建了一个发票电子表格,并广泛地使用了合并的单元格,以便为发票创建一个更干净的外观。

这是我遇到的问题:有时,我的简单减法公式不能给我一个正确的结果。该公式应从初始余额(单元格V27)中减去未售出余额(单元R27)。

同样,公式本身没有什么问题,因为它在99%的时间里正确工作,但它不时地给我一个与开始平衡相匹配的答案。

这也是一个链接到一个电子表格的副本,任何人都愿意看看。https://docs.google.com/spreadsheets/d/1bf_QE-u36mo4AKyqg7Dk11gwoR0p5g0qveIazR83Xbk/edit?usp=sharing

还有其他人遇到过这种情况吗?是什么导致了它,更重要的是,如何才能使它变得更可靠?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-19 13:39:13

我们中那些从事专业开发工作表解决方案的人,有一些我们遵循的基本规则,并鼓励其他人不要破坏。其中之一是“永远不要将计算或比较将执行或评估的任何地方合并。”

虽然你看到的可能是个小故障,但我不会这么说。合并后的单元格并不能真正摆脱你看不到的单元格。例如,您的单元格R27不“摆脱”单元格S27、T27和U27。它只是把它们保存在记忆中,大概是空的。但是请记住,在床单的“记忆”中,它不会“看到”一个网格。只有1和0。当网格是新的,没有单元格被合并时,工作表会“找到”每个单元格(用我所能给出的最好的类比),按1和0计数,这些单元格非常小,而且非常紧凑。保持这种想法..。

还要注意的是,当许多人正在进行多个复杂的计算,并得到一个返回的答案时,他们会感到惊讶,这与他们在计算链更远的单元格中所期望的结果是不同的。这是因为工作表使用浮点小数点。例如,“一除以三”大约是0.333。但在现实中,这是远远不够的: 0.33333333333333333333。但这不可能永远持续下去,否则床单就跑不了了。所以在某个时候它会被截断。最终,这些额外的十进制加成将开始加起来,并将数字向上(或向下)小幅度增加。所有这些都是由运行其他一切的相同的1和0处理的。

回到合并的单元格。发现并准确地“读取”合并后的单元格越不准确,因为该过程相对于内存中的其他单元格位置。过了一段时间,工作表的“浮动小数点”特性开始失去跟踪,特别是(我已经观察到),如果您使用的是与您使用的相同类型的相对公式引用(例如,您的许多叠加合并单元格引用了另一个合并单元格: BB2 ),则尤其如此。因此(再一次类比),Sheet试图“通过使用线索来猜测它在哪里。”也许它在合并的细胞Z-AA-AB-AB 23中找到了一些参考合并细胞BB2-BB3-BC2-BC3的正确发现;但在那次,你要求它添加合并的细胞R-S-T-U23和V-W-X-Y23,减去合并的细胞V-W-X-Y24 .在下面一组合并的细胞,Z-AA-AB-AA 24中,你仍然要求BB2-BB3-BC2-BC3参考,而不是V-W-X-Y24减法。等等..。

更重要的是,你已经改变了整个地方的行高。有些被设置为特定高度,而另一些则适合于数据。

你能拍到照片。

如果床单试图通过从单元格A1来回移动来寻找东西,但没有规律,有时,它只是把手举起来,然后说:“h-双曲棍球棒在哪里?”当您重新加载工作表或删除并替换公式时,它再次从A1开始,并在破碎的板子上播放滑道和梯子,并可能将一个“浮动的”微小的1或0移动到与上次不同的方式.再找到你想要的东西。

此外,还会得到一张56列的工作表,而您可能只需要12或15列。同样,您已经将行数扩展到了所需的范围之外。所以你的处理速度慢了很多。

短版:

虽然合并的单元可能看起来很好,但它们是计算的噩梦。自从电子表格被发明以来,我就一直在使用它们,实际上我从来不需要合并的单元格(虽然我偶尔会在纯粹美观的领域中使用它们)。

的解决方案:

1.)在没有合并单元格的情况下重新制作工作表。

-或者-

2.)尝试在计算中包含所有合并但隐藏的单元格。这至少给了床单一个更大的网可投。例如,在上面的示例中,您引用了以下公式:

代码语言:javascript
复制
=IF($BB$2<>"Rental","",R27-V27)

尝试(在可能的情况下)包括您合并的整个范围:

代码语言:javascript
复制
=IF($BB$2<>"Rental", "", SUM(R27:U27) - SUM(V27:Y27) )

从技术上讲,您还可以在BB2-BB3-BC2-BC3合并中包括所有单元格:

代码语言:javascript
复制
=IF(AND($BB$2<>"Rental", $BB$3<>"Rental", $BC$2<>"Rental", $BC$3<>"Rental"), "", SUM(R27:U27) - SUM(V27:Y27) )

但是,尝试使用仅使用SUMmed合并范围的较短的路由,并查看它是否有效。如果是这样的话,就坚持下去。如果不是,请引用合并范围内的每个单元格。

很明显,你在这张纸上做了很多工作。所以我相信这不是你希望听到的简单答案。但我希望它能给你提供一些下一步的方向。

票数 6
EN

Stack Overflow用户

发布于 2021-10-18 09:22:55

对我来说,最简单的解决方案是锁定-引用合并单元格中最上面的单元格。不要将顶部公式中的引用引用为B2,引用为$B$2。这样,您在其他单元格中的公式将引用所需的相同值。

使用锁引用:

$B$2

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64911773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档