答案 0 :(得分:0)
UDF解决方案
使用此简短的用户定义函数从包含该组的行中去除百分比(为两倍)。
Option Explicit
Function getPCT(rng As Range, grp As String)
Dim i As Long, pct As Double, arr As Variant
arr = Split(rng.Value2, Chr(10))
For i = LBound(arr) To UBound(arr)
If CBool(InStr(1, arr(i), grp, vbTextCompare)) Then
On Error GoTo nan
getPCT = CDbl(Split(Split(arr(i), Chr(32))(1), Chr(37))(0)) / 100
Exit Function
End If
Next i
If i > UBound(arr) Then getPCT = CVErr(xlErrNA)
Exit Function
nan:
getPCT = CVErr(xlErrNum)
End Function
按以下方式使用,并将结果格式化为真实百分比。
公式解决方案
在上面的示例图像中,该本机函数公式可以在E2中使用。
=AVERAGE(REPLACE(REPLACE(A$1, 1, SEARCH(D2, A$1)+LEN(D2), TEXT(,)), FIND("%", REPLACE(A$1, 1, SEARCH(D2, A$1)+LEN(D2), TEXT(,))), LEN(A$1), TEXT(,))/100, REPLACE(REPLACE(B$1, 1, SEARCH(D2, B$1)+LEN(D2), TEXT(,)), FIND("%", REPLACE(B$1, 1, SEARCH(D2, B$1)+LEN(D2), TEXT(,))), LEN(B$1), TEXT(,))/100)