【问题标题】:Excel column cell data matchExcel 列单元格数据匹配
【发布时间】:2017-05-07 22:01:08
【问题描述】:

在 Excel 中,如果一个单元格包含某个字符串,我如何比较和替换它。

我在 Excel 文件中有一个名为 第一个联系人 的列,我想要的只是在 第二个联系人 列中是否显示 与第一个联系人相同联系人而不是将姓名替换为正确的姓名,否则什么也不做。

我试过这个查询 --

=IF(EXACT([1st Contact Person], "Same as 1st Contact Person"),[2nd Contact Person],"")

Excel文件---

1st Contact Person   2nd Contact Person
Chris Johnsson       Same as 1st Contact Person
Henrik Johnsson      Same as 1st Contact Person
Johanna Nilsson      Christofer Hanssen

我的查询不走运!

谁能告诉我哪里做错了。

【问题讨论】:

    标签: excel excel-formula excel-2010 excel-2007 vba


    【解决方案1】:

    您可以通过 Vba 执行此操作,例如: 假设第一个联系人在 E 列,第二个联系人在 F 列 然后用vba:

    Sub sample()
    
        Dim TotalRows As Integer
    
        TotalRows = Range("E" & Rows.count).End(xlUp).Row
    
        For i = 1 To TotalRows
    
        If Range("F" & i).Value = "Same as 1st Contact Person" Then
    
        Range("F" & i).Value = Range("E" & i).Value
    
        End If
        Next i
    End Sub
    

    这将遍历 F 列并查找文本“与第一个联系人相同”,如果找到,它将用 E 列中的人名替换文本

    希望对你有帮助

    【讨论】:

    • 由于 Range.Value 是一个数组,您可以在其上转换 Match 或另一个(更好的是因为 FindNext 并且因为返回了一个范围)选项转换 Find 方法。顺便提一下。
    【解决方案2】:

    B2 单元格中试试这个公式

    =IF($A2="","",IF($C2="Same as 1st Contact Person",$A2,IF(LEN($C2)>0,$C2,"")))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-20
      • 1970-01-01
      相关资源
      最近更新 更多