【问题标题】:Excel formula compare two stringsExcel公式比较两个字符串
【发布时间】:2018-05-06 20:04:07
【问题描述】:

我需要将交易文件中的产品与查找工作表中的产品进行比较。这些值似乎相等,但评估结果不相等。一直在尝试 VBA(StrComp、CStr、Trim()、在字符串的开头和结尾添加一个字母以进行比较)和 Excel 公式中的不同方法来尝试解决这个问题。

在照片中, 单元格 C4 是从事务工作簿复制的,单元格 D4 是从查找工作簿复制的。该公式的计算结果为 False。如果我只是将此字符串值键入两个不同的单元格并应用公式,它的计算结果为 True,但是当我从其他工作簿(事务工作表和查找工作表)复制这两个单元格时,公式的计算结果为 false。

有什么想法吗?

Excel 公式:=IF(TRIM(UPPER(C4))=TRIM(UPPER(D4)),TRUE, FALSE)

A5314A A5314A

【问题讨论】:

  • 如果复制Cele并粘贴AS值,是真是假?会不会是Celle内部没有明显的标志?
  • Max,当我粘贴值时它仍然评估为 False。
  • 你能复制粘贴单元格值到问题中吗?
  • 会有一些隐藏/不可见等标志。我明天可以发布代码来消除 Thema。
  • 尝试将Clean 添加到您的函数中。 TRIM(UPPER(CLEAN(C4)))

标签: string vba excel text


【解决方案1】:

在 Excel 中使用像 Chris Neilsen 建议的 CLEAN 函数就是答案:

=IF(TRIM(UPPER(CLEAN(C4)))=TRIM(UPPER(CLEAN(D4))),TRUE, FALSE)

正如 Sam 在 VBA 中建议的那样,使用此函数也有效,并且 StrComp 方法评估为 0:

a = "A" & Application.WorksheetFunction.Clean(Trim(CStr(Sheet1.Cells(i, 1).Value2))) & "A"`
b = "A" & Application.WorksheetFunction.Clean(Trim(CStr(Sheet2.Cells(i2, 1).Value2))) & "A"
If StrComp(a, b) = 0 Then

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-05
    • 2017-07-18
    • 1970-01-01
    相关资源
    最近更新 更多