【问题标题】:Excel formula that turns cells into empty cells if the cell next to it is already empty如果旁边的单元格已经为空,Excel 公式将单元格变为空单元格
【发布时间】: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 公式复制单元格有效。非常感谢!

标签: excel if-statement is-empty


【解决方案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 列中具有空值的所有值也将为空。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-22
    • 2018-05-14
    • 2012-01-10
    • 1970-01-01
    相关资源
    最近更新 更多