如何在Excel的多行单元格中提取数字

时间:2018-06-28 02:55:06

标签: excel

我的excel文件中有两个单元格,每个单元格包含多行文本。 如何提取每个多行单元格中的每个数字值。

enter image description here

我想计算来自单元格A和B的每个组的平均值。

1 个答案:

答案 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

按以下方式使用,并将结果格式化为真实百分比。

enter image description here

公式解决方案

在上面的示例图像中,该本机函数公式可以在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)