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