【问题标题】:Excel: is there a way to replace a peculiar part of a cell string?Excel:有没有办法替换单元格字符串的特殊部分?
【发布时间】:2019-06-28 08:05:40
【问题描述】:

我有一个 Excel 导出,其中有一列包含员工以前的培训课程。 例子: First Name|Last Name|Training title|January 2018 to February 2018

由于收集数据的非强制性表单字段,许多字符串没有结束月份值,例如January 2018 to 我正在尝试找到一个公式来查找所有带有to 的字符串结尾(因此后面没有其他内容)并删除该字符串的孤立部分,使其看起来像January 2018

查找和替换是无用的,因为它还会在有结束月份/年份时替换值。替代似乎是一个不错的方法,但我未能尝试找到公式的正确结构。

【问题讨论】:

  • 你可以使用 find() 如果你确定它只用最后两个字符开始搜索...

标签: excel string findandmodify


【解决方案1】:

测试是否以to结尾有right,如果是则用left省略:

=IF(RIGHT(A1,2) = "to",LEFT(A1,LEN(A1)-2),A1)

【讨论】:

  • 对我的法语版 Excel 进行了一些调整,这完美无瑕。谢谢斯科特。万一法棍面包朋友遇到同样的问题:=SI(DROITE(A1;2)="to";GAUCHE(A1;NBCAR(A1)-2);A1)
【解决方案2】:

这适用于 VBA。不要忘记检查最后是否有多余的空格。如果有任何使用TRIM。

Option Explicit

Sub Remove()

    Dim Lastrow As Long, i As Long

    'Change Sheet if needed
    With ThisWorkbook.Worksheets("Sheet1")

        Lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row

        For i = 1 To Lastrow

            If Right(.Range("A" & i).Value, 2) = "to" Then
                .Range("A" & i).Value = Left(.Range("A" & i).Value, Len(.Range("A" & i).Value) - 3)
            End If
        Next i


    End With

End Sub

【讨论】:

  • 我也会试试这个。我的 VBA 技能需要一些培训 :)
猜你喜欢
  • 2020-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-18
  • 1970-01-01
  • 2020-07-12
  • 1970-01-01
  • 2020-11-04
相关资源
最近更新 更多