获取单元格中最大的逗号分隔值

时间:2015-03-12 09:27:05

标签: excel excel-formula

在一个单元格中,我有逗号分隔的数字。我希望得到这些数字的最大值。

例如:A1 =“2,5,1,4”

B1中的公式应该返回值5?

5 个答案:

答案 0 :(得分:7)

假设A1包含1999之间的正整数列表,以逗号分隔但没有空格,您可以使用此公式查找最高数字

=MATCH(1000,INDEX(FIND(","&ROW(INDIRECT("1:999"))&",",","&A1&","),0))

搜索1到999之间的所有数字,MATCH找到"位置"因为我们从1开始,它们的最后一个(MAX)与数字本身相同

这适用于A1中任何顺序的任意数字,只要它们采用指定的格式

答案 1 :(得分:1)

您可以在此处使用VBA功能:

Public Function MAXSPLIT(ByVal Text As String, ByVal Delimiter As String) As Double
    Dim TextArray() As String
    TextArray = Split(Text, Delimiter)
    Dim ValueArray() As Double
    ReDim Preserve ValueArray(UBound(TextArray))
    For I = LBound(TextArray) To UBound(TextArray)
        ValueArray(I) = CDbl(TextArray(I))
    Next
    ' You can use any other function here: Average, Min etc.
    MAXSPLIT = WorksheetFunction.Max(ValueArray)
End Function

适用于任意数量的值和任何分隔符。用法(指定值字符串和分隔符):

=MAXSPLIT("2,5,6,7,8.1,3.254",",")

答案 2 :(得分:0)

您可以使用逗号作为分隔符来解析数据,然后获取结果单元格对的最大值,或者您可以应用以下公式:

=MAX(1*LEFT(A1,FIND(",",A1)-1),1*MID(A1,FIND(",",A1)+1,LEN(A1)))

答案 3 :(得分:0)

不幸的是,Excel中没有内置SPLIT函数来使用给定的分隔符分割字符串,但您可以为VBA的Split函数编写快速包装器:

Public Function SplitXL(ByVal s As String, Optional delim As String = " ") As String()
    SplitXL = Split(s, delim)
End Function

然后可以在Excel公式中使用它。请注意,它返回一个字符串数组;为了达到最大值,首先需要使用VALUE函数将这些字符串解析为数字。这给出了MAX可以操作的数字数组。

您可以使用此数组公式

获得所需的结果
=MAX(VALUE(SplitXL(A1,",")))

,与任何其他数组公式一样,必须使用 Ctrl Shift Enter 输入。

enter image description here

答案 4 :(得分:0)

= MAX(SPLIT(A1,“,”))

csv字符串中的最大值:

Max value from a csv string