Excel 中获取单元格宽度的可疑行为

Excel 中获取单元格宽度的可疑行为

据我所知,在 Excel 中获取单元格宽度的方法是将公式输入=CELL("width")到相关单元格中。这种方法一次只能处理一个单元格,但当我将公式复制到第二个单元格时,第一个单元格中显示的值将显示第二个单元格的宽度。如果我将公式粘贴到第三个单元格中,所有三个单元格现在都将显示最后一个单元格的宽度。这是怎么回事?

答案1

找出单元格宽度的最简单方法是右键单击列字母/行号并选择“列宽...”或“行宽...”。

这将弹出一个窗口显示宽度。(同一列中的所有单元格都将相同,但是同一行中的所有单元格不会相同。

=CELL("WIDTH",$A1)

尝试上述公式(这只有在向下粘贴时才有效。如果您想在电子表格中复制公式,请尝试此

 =CEL("WIDTH",A$1)

答案2

此行为是因为公式(没有单元格地址参数)在强制计算时显示当前选定单元格的宽度(通常是近似宽度)。

因此,当您将其输入到 A1 中时,就会发生计算,并且这是当前选定的单元格,因此它会显示 A 列的宽度。

例如,当您在 B1 中输入公式时,B1 是当前选定的单元格,因此其列(B 列)是公式返回的值。公式的所有实例,无论其位置如何。

这就是为什么使用单元格地址参数的原因......

address您可以通过选择`CELL() 要查找的项目来利用此效果:

=CELL("address")

在您想知道当前选定的单元格地址的地方输入它,然后,每当您发现自己想知道当前选定的单元格是什么时,按F9强制计算,您放置公式的单元格将显示当前单元格的地址。

您甚至可以用它来包装它,INDIRECT()以便获取当前选定单元格中的值。

请注意,当您拥有将出现信息的单元格并输入公式时,Excel 通常会担心循环引用,但这是意料之中的事,对吧?当您选择其他单元格并强制计算时,这种情况不会发生,因为选定的单元格不再是包含公式的单元格,因此不存在循环。

这可能用处有限,因为您知道值,因为您“在那里”,但您也可以将该步骤作为更大公式的一部分,而不是独立公式。或者作为触发其他公式元素的独立公式。因此,您可以安排某人在列表/表格中选择带有公司名称的单元格,这种效果可能允许计算信用条款和限制报价的公式起作用。所有这些都无需在某个单元格中输入信息。因此,工作簿及其所有页面/数据可以得到完全保护,但有人仍然可以生成结果,所有这些都无需任何编程(VBA 等)或表单控件。

但同样,要避免您在问题中提到的情况,需要在函数中使用单元格地址作为第二个参数。然后它就像任何其他函数一样,与它引用的内容一样。

答案3

我认为这会对您有所帮助,您可以使用索引函数来获取第一个或第二个参数。 https://stackoverflow.com/questions/59869908/why-does-cellwidth-a1-fill-the-cell-to-the-right-with-false

相关内容