如果 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