如果旁边的单元格已经为空,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 公式将单元格变为空单元格的主要内容,如果未能解决你的问题,请参考以下文章

基于背景颜色的Excel公式单元格

有条件地显示具有匹配值的单元格的行中的值

excel 表格中,一个单元格中如果有数据,那么另一个单元格显示“1”,如果设置公式,多谢。

excel中的单元格引用有哪几种方式?

使用 VBA 将 Excel 公式写入单元格

对于 IF Else 循环在单元格为空时不会停止