VBA가 필요합니다. 다음 함수는 동일한 위치에서 일치하는 0-1 (즉, 백분율)의 값을 반환합니다 . 내장 기능을 사용할 때와 동일하게 사용하십시오. 그런 다음 일반 조건부 서식을이 값에 적용 할 수 있습니다.
대소 문자를 구분해야하는지 여부에 대한 선택적 True / False (기본값은 false)입니다.
"밥 먹은 저녁 식사"vs "밥 먹은 저녁 식사" 구두점을 무시하지 않으므로 0.66이됩니다.
"Bob Bob Bob Bob"대 "Bob Bob"= 2/4 = 0.5-- 문자열에 다른 수의 단어가 포함 된 경우 두 개 중 큰 숫자가 분모이지만 분자는 두 개 중 작은 것에서 최대가됩니다.
Function ScorePair(stringInput As String, stringTarget As String, Optional caseSensitive As Boolean = False) As Double
Dim scoreNum As Integer
Dim scoreDen As Integer
Dim splitInput As Variant
Dim splitTarget As Variant
Dim theScore As Double
Dim sizeTarget As Integer
Dim sizeInput As Integer
Dim loopSize As Integer
'Initialize
scoreNum = 0
i = 0
'Extract strings into arrays of words
splitInput = Split(stringInput, " ")
splitTarget = Split(stringTarget, " ")
'Get sizes of arrays to know how much to loop (smaller of two) and what to set denominator at (bigger of two)
sizeInput = UBound(splitInput, 1)
sizeTarget = UBound(splitTarget, 1)
scoreDen = WorksheetFunction.Max(sizeTarget, sizeInput) + 1
loopSize = WorksheetFunction.Min(sizeTarget, sizeInput)
'Loop through arrays comparing them by matching position
For i = i To loopSize
If caseSensitive Then
If splitInput(i) = splitTarget(i) Then
scoreNum = scoreNum + 1
End If
ElseIf LCase(splitInput(i)) = LCase(splitTarget(i)) Then
scoreNum = scoreNum + 1
End If
Next
'Calculate the score as percentage
theScore = scoreNum / scoreDen
ScorePair = theScore
End Function
B2
에서 찾을 수있는 단어의 수 / 백분율입니다A2
.