如何计算excel中两个文本值之间的差值?

如何计算excel中两个文本值之间的差值?,excel,excel-formula,Excel,Excel Formula,如何在excel中计算两个值之间的差值,有公式吗 90123567.....90123569......difference=(1) 901123567....90123567......diffidence=(1) 谢谢。以下公式就是您想要的: =SUBSTITUTE(B1,A1,"") 参考资料:也许您要查找的是Levenshtein距离——两个单词之间的Levenshtein距离是将一个单词更改为另一个单词所需的最小单字符编辑次数(即插入、删除或替换) 下面的UDF可以计算出这一点,但

如何在excel中计算两个值之间的差值,有公式吗

90123567.....90123569......difference=(1)
901123567....90123567......diffidence=(1)

谢谢。

以下公式就是您想要的:

=SUBSTITUTE(B1,A1,"")

参考资料:

也许您要查找的是Levenshtein距离——两个单词之间的Levenshtein距离是将一个单词更改为另一个单词所需的最小单字符编辑次数(即插入、删除或替换)

下面的UDF可以计算出这一点,但我还没有对其进行广泛的测试。我找到它的网址现在已经失效了。它确实给出了您提供的数字字符串的答案


选项显式
'********************************
'***计算Levenshtein距离
'********************************
公共函数LD(ByVal s作为字符串,ByVal t作为字符串)的长度
Dim d()作为长矩阵
尺寸m等于长度t
尺寸n等于s的长度
Dim i As Long’在s中迭代
当Long'在t中迭代时,Dim j
Dim s_i作为字符串,字符为s
将t_j作为字符串的第j个字符
长期成本
"第一步,
n=长(s)
m=Len(t)
如果n=0,则
LD=m
退出功能
如果结束
如果m=0,则
LD=n
退出功能
如果结束
重拨d(0到n,0到m)的长度
"第二步,
对于i=0到n
d(i,0)=i
接下来我
对于j=0到m
d(0,j)=j
下一个j
"第三步,
对于i=1到n
s_i=中间美元(s,i,1)
"第4步,
对于j=1到m
t_j=Mid$(t,j,1)
"第五步,
如果s_i=t_j,那么
成本=0
其他的
成本=1
如果结束
"第六步,
d(i,j)=最小值(d(i-1,j)+1,d(i,j-1)+1,d(i-1,j-1)+成本)
下一个j
接下来我
"第七步,
LD=d(n,m)
删除d
端函数
'*******************************
'***至少获取三个值
'*******************************
最小专用功能(ByVal a,长度为_
拜瓦尔b只要_
ByVal c As Long)As Long
暗米一样长
mi=a
如果b


更新的support.office文档位于。感谢您指出这一点,我不知道链接已更改,只是从某处复制粘贴!谢谢,但是,这不是给我这两个之间的区别,我想得到两个之间的区别,例如ID,在每个数字的位置方面,我想在这里得到1。也许这个链接会有帮助。1来自哪里?这不是差异的位置,也不是差异本身(在第一个示例中)。也许是有多少不同。。。?如果您希望反复比较两个数字或字符串,看看每个数字或字符是否相同,那么最好使用VBA。在第二个例子中,不是每个数字在第一个rogue 1之后都是“不一样”的吗?还是您希望每个“未找到”的数字的比较位置都会发生变化?
Option Explicit

'********************************
'*** Compute Levenshtein Distance
'********************************

Public Function LD(ByVal s As String, ByVal t As String) As Long
Dim d() As Long ' matrix
Dim m As Long ' length of t
Dim n As Long ' length of s
Dim i As Long ' iterates through s
Dim j As Long ' iterates through t
Dim s_i As String ' ith character of s
Dim t_j As String ' jth character of t
Dim cost As Long ' cost

  ' Step 1
  n = Len(s)
  m = Len(t)
  If n = 0 Then
    LD = m
    Exit Function
  End If
  If m = 0 Then
    LD = n
    Exit Function
  End If
  ReDim d(0 To n, 0 To m) As Long

  ' Step 2
  For i = 0 To n
    d(i, 0) = i
  Next i

  For j = 0 To m
    d(0, j) = j
  Next j

  ' Step 3
  For i = 1 To n
    s_i = Mid$(s, i, 1)

    ' Step 4
    For j = 1 To m
      t_j = Mid$(t, j, 1)

      ' Step 5
      If s_i = t_j Then
        cost = 0
      Else
        cost = 1
      End If

      ' Step 6
      d(i, j) = Minimum(d(i - 1, j) + 1, d(i, j - 1) + 1, d(i - 1, j - 1) + cost)

    Next j
  Next i

  ' Step 7
  LD = d(n, m)
  Erase d
End Function

'*******************************
'*** Get minimum of three values
'*******************************

Private Function Minimum(ByVal a As Long, _
                         ByVal b As Long, _
                         ByVal c As Long) As Long
Dim mi As Long

  mi = a
  If b < mi Then
    mi = b
  End If
  If c < mi Then
    mi = c
  End If

  Minimum = mi

End Function