Excel - 将单元格的文本溢出到包含公式的相邻单元格

Excel - 将单元格的文本溢出到包含公式的相邻单元格

我有一个表格,里面充满了来自其他表格的数据。我的表格单元格中的公式非常简单(引用另一个工作表中的单元格)。

表格示例

在我的表中,我有“标题”行(在这种情况下为第 57 行和第 64 行),其中仅包含一个文本值,我希望该文本值溢出到相邻单元格,因为这些行中的相邻单元格始终为空。

如果表中的值是手动输入的,则不会有问题,并且单元格看起来就像我想要的那样,如下图所示。

如果数据是手动输入的话,表格中会有我想要的数据

第 57 行中第一个单元格的值不会溢出,因为相邻的单元格包含一个公式(该公式基本上是“=OtherCell”,其中 OtherCell 不包含任何值(更具体地说,是“”)的值)

值得注意的是,由于数据是从数据库自动提取的,所以“标题”行的位置会发生变化,并且会出现在表的许多行中。

我怎样才能实现这个目标......

  • 无需人工干预(这些是自动报告,我无法删除公式,因为下一份生成的报告将是错误的)
  • 可以使用 VBA,但不能以“不可逆”的方式修改表格(使得下次计算工作表时数据有误),原因与手动干预相同。

我使用 Excel 2013,但我相信这个问题适用于 2007+ 版本的 Excel。

答案1

简短的回答是:你不能。

长答案是,只有真正空的单元格才会允许左侧下一个单元格的文本溢出并显示在该单元格中。

这就是 Excel 的工作方式。

如果你特别排除手动干预、删除公式以及 VBA,除了接受默认设置之外实际上没有别的选择,即右侧单元格中的公式将阻止文本溢出到右侧。

不要迁怒于信使。

答案2

如果您真的想这样做,您可以为最左边的单元格创建一个复杂的公式来处理它。它不会让表格的数据直接用于进一步的计算,并且第二列和第三列实际上不会被使用,这可能会打扰用户。但它可以显示第一列中的数据和完整条目。可以删除它们,这可能会让用户更容易接受。

由于第一列中明确包含数字条目和字母条目,但没有字母数字条目,因此可以先用ISTEXT(). If NOT, then one has the current formula for that column AND the formulas for the second and third columns. One would need toTEXT() 对其进行测试,包装每个条目并根据外观要求添加空格,但可以实现外观,尽管需要做大量工作。

如果测试成功,那么单元格仅具有现在的文本结果,而无需读取第二列和第三列,因为据我所知,它们什么都没有。

如果在第一列/第二列之间使用给定数量的空格,并在第二列/第三列之间使用不同的数字,那么这可以作为从表中提取数据以供其他地方使用的可靠基础。

但是,如果在其他地方使用,也可以直接使用用于填充此表的公式,而不是在表中查找某些内容,而是在源数据中进行第一级查找。因此,直接查找而不是在已查找的材料中查找。在某种程度上,这有点“干净”。

答案3

使用 VBA,您可以使包含不产生任何结果的公式的单元格无效:

Private Sub CommandButton21_Click()
    For Each c In Worksheets("yourworksheet").Range("yourrange")
        If c.Text = "" Then c.Select: Selection.ClearContents
    Next
End Sub

因此,相邻的单元格可以延伸到空单元格之上。

答案4

要获得所需的外观,您需要重新构造源数据。不要像这样设置节标题,而是获取这些节标题的值并将其放入与该节相关的每一行的新列中。它看起来会像这样:

在此处输入图片描述

如果您无法以本机方式布局源数据,您可以自己创造性地使用 VLOOKUP 和/或 INDEX/MATCH 来查找源数据中 B 列为空的行。

然后,您可以获取这些数据并创建一个汇总数据的数据透视表,可以将其调整为您最初想要的布局。下面是它的模型(我将页面、修订和说明字段设置为使用表格布局,关闭所有总计,并关闭展开/折叠按钮的显示):

在此处输入图片描述

相关内容