Excel If/Then/Replace公式

Excel If/Then/Replace公式,excel,replace,formula,Excel,Replace,Formula,我知道VBA可能是一种方法,但我相信这可以通过使用一些基本公式来实现 我需要将“E2”替换为“A3”中的内容(剪切/复制),但前提是“D2”=“状态:活动”…依此类推 黄色和蓝色编码仅用于此示例,并不代表整个图纸 这是一个7000行的电子表格,它是由一些旧系统生成的报告,我正在尽力整理和格式化。在F列中尝试,从cellF2开始 =if(和(E2=”“,D2=“状态:活动”),A2,E2) 这将测试D2是否具有“状态:活动”,如果有,它将从A2中提取值。如果不是,则将使用E2中已有的地址 正如您

我知道VBA可能是一种方法,但我相信这可以通过使用一些基本公式来实现

我需要将“E2”替换为“A3”中的内容(剪切/复制),但前提是“D2”=“状态:活动”…依此类推

黄色和蓝色编码仅用于此示例,并不代表整个图纸


这是一个7000行的电子表格,它是由一些旧系统生成的报告,我正在尽力整理和格式化。

F
列中尝试,从cell
F2开始

=if(和(E2=”“,D2=“状态:活动”),A2,E2)

这将测试
D2
是否具有“状态:活动”,如果有,它将从
A2
中提取值。如果不是,则将使用E2中已有的地址

正如您在评论中所解释的,当F接受某个值时,您希望A为空(剪切/粘贴)。。。公式无法影响另一个单元格,但是。。。您可以在
a
之后添加插入的新列
B
,并将以下公式放入其中:
=if(A2G2,“,A2)
。然后隐藏列
A
。然后,新的
B
列将仅显示
A列的值,如果该列不在
G
列中(在插入新列之前,以前称为
F


您也可以通过VBA完成所有这一切,但当一些简单的公式将您带到那里时,这似乎比它的价值更大。

鉴于您希望A列为空,您可以尝试执行以下宏:

Option Explicit

Sub SwapCols()
    Dim oWs As Worksheet
    Dim lRowNum As Long
    Dim i As Long

    Set oWs = ActiveWorkbook.Worksheets("Sheet1")

    lRowNum = oWs.Range("A2").End(xlDown).Row

    For i = 2 To lRowNum

        If oWs.Range("D" & CStr(i)).Value = "Status:ACTIVE" Then

            oWs.Range("E" & CStr(i)).Value = oWs.Range("A" & CStr(i)).Value
            oWs.Range("A" & CStr(i)).Value = Null

        End If

    Next i
End Sub
确保用工作表的名称替换
“Sheet1”
。宏基本上检查D列中的单元格是否具有值
“Status:ACTIVE”
,如果有,则将a列中的相应单元格复制到E列


只要确保您确实运行了此操作,并且您不希望结果不保存。

E
中是否有数据将被替换,或者当
D
处于“活动”状态时,数据是否为空,等待填充大多数数据为空,但有些数据包含其他“地址”信息。EX:“单位^ 2”,但我们可以离开这些,我可以手动处理,因为它大概只有大约5%的细胞可能,然后,考虑做一个公式在<代码> f <代码>使用值从代码> E < /代码>当<代码> d>代码>不是“活动”。当
D
处于“活动”状态时,它将从
A
中提取。这有意义吗?是的,这就是我一直在尝试的…我想我只是因为感到沮丧才发了帖子,但我应该能够弄明白。谢谢你有理由用一行来抵消吗?这似乎是一个不必要的复杂问题。这是可行的,但我想将A2中的内容剪切/粘贴到E2中…而不是复制/粘贴实际上我们需要添加一个“ISBLANK”说明,因为我们并不总是希望A2中的内容进入E2中…只有在E2为空白且D2=“Status:Active”…这就是我遇到的问题