MS Excel:如果 B 列为空,则将 A 列的内容添加到单元格 B

MS Excel:如果 B 列为空,则将 A 列的内容添加到单元格 B

如果 MS Excel 2010 中单元格 B 为空,如何将单元格 A 的内容添加到单元格 B?

我的具体情况:

  • A 列(包含一些空值和一些非空值的列):AD
  • B 列(此处没有空值):I

现在,如果 AD 列中的值缺失,我需要 Excel 使用 I 列中的值填充 AD 列。否则,AD 列中的原始值应保留。

注意:所有列均包含文本数据(没有数字、货币等)

我的方法:

=IF((AD3)="";I3;AD3)

但这不能按预期工作:它只是抛出一个循环引用错误,并且不管其他值如何,都用“0”填充 AD3 列。

有人有想法吗?谢谢。

答案1

您得到的是循环引用,因为单元格仅包含一条信息。目前,以第 3 行为例,AD3 包含一个值(假设为“Hello”)。一旦您尝试放入一个函数,AD3 现在就包含该函数,而“Hello”则完全消失了。现在它会继续尝试无限地提取引用 AD3 的函数。

如果您想使用公式,最好为此使用辅助列,否则您需要对其进行硬编码。就我个人而言,我会添加一个新列 AE,隐藏列 AD,然后使用您在 AE 中使用的公式。

您可以使用的其他选项是在其上运行 VBA 宏,如下所示:

Sub FillBlanksFromI()
    Dim j
    For j = 1 To FindLastRow("AD")
        If IsEmpty(Range("AD" & j).Value) Then
            Range("AD" & j).Value = Range("I" & j).Value
        End If
    Next j
End Sub

Function FindLastRow(col As String) As Long

    Dim lastRow As Long
    lastRow = ActiveSheet.Range(col & Rows.Count).End(xlUp).Row
    FindLastRow = lastRow

End Function

...它将使用 I 中的值填充所有空白字段。这将不会自动更新,并且只能工作一次。

或者,您需要将每个单元格中的每个函数硬编码为值,或者=I3

相关内容