如果旁边的单元格已经为空,Excel 公式将单元格变为空单元格
Posted
技术标签:
【中文标题】如果旁边的单元格已经为空,Excel 公式将单元格变为空单元格【英文标题】:Excel formula that turns cells into empty cells if the cell next to it is already empty 【发布时间】:2017-09-28 08:01:23 【问题描述】:如果 C 列中的相应单元格(即在同一行上)已经为空,我需要一个 Excel 公式将 D 列中的单元格变为空。
详细来说,这是我的 excel 表中的一个示例:
C D
1 0,5 500
2 0.3 400
3 600
4 700
5 3.1 400
6 350
7 1.1 400
我希望它变成这样:
C D
1 0,5 500
2 0.3 400
3
4
5 3.1 400
6
7 1.1 400
所有值都是硬编码的。我想要的可能吗?
【问题讨论】:
您可以将它们放在一个新的工作表(或不同的列)中,并将单元格设为空,然后如果需要,将它们复制回原始数据。否则,要直接执行此操作,您将需要 VBA。 @TomSharpe 如何通过将单元格放在新的工作表/不同的列中来使单元格为空? 您可以使用公式=IF(C1="","",D1)
在其他一些未使用的列中,然后将值复制粘贴到Column D
中,否则您必须使用VBA。
太好了,使用 if 公式复制单元格有效。非常感谢!
【参考方案1】:
不确定你在 D1 中有什么已经创造价值等。
但是试试:
=IF(C1="","", Your original value/formula here )
【讨论】:
两列中的所有值都是硬编码的。如果旁边的单元格(在 C 列中)已经为空,我想将 D 列中的硬编码单元格变成空白/空 我不完全确定你的意思,但工作表是从 R 中的数据框中导出的,因此没有单元格包含公式 - 只是值。【参考方案2】:很确定在这种情况下您不能使用公式。你需要的是一个宏
Sub EmptyCells()
For Counter = 1 To 20
Set cell = Worksheets("Sheet1").Cells(Counter, 2)
If IsEmpty(cell.Value) = True Then
Worksheets("Sheet1").Cells(Counter, 3).Value = ""
End If
Next
End Sub
您可以使用 alt+F11 调用 vba 编辑器。右键单击您的工作表并选择“插入”->“模块”。将代码粘贴到那里并将 excel 保存为 .xlsm 文件。 使用 alt+F8 打开宏视图并运行您的宏。
在您运行宏后,D 列中 C 列中具有空值的所有值也将为空。
【讨论】:
以上是关于如果旁边的单元格已经为空,Excel 公式将单元格变为空单元格的主要内容,如果未能解决你的问题,请参考以下文章