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

在一个单元格中,我用逗号分隔数字。 我想有这些数字的最大值。

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

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

假设A1包含一个1999之间的正整数列表,用逗号分隔,但没有空格,可以使用这个公式来找出存在的最大数字

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

search1到999之间的所有数字, MATCHfind最后一个(MAX)的“位置”,因为我们从1开始,与数字本身相同

这适用于A1中任何数量的数字,只要它们是指定的格式

你可以在这里使用VBAfunction:

 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 

与任何数量的值和任何分隔符一起使用。 用法(您指定值和分隔符的string):

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

你可能会用逗号作为分隔符来parsing数据,然后取出所得到的单元格对的最大值,或者应用一个公式如:

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

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

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

这可以在Excel公式中使用。 请注意,它返回一个string数组; 为了最大化,首先需要使用VALUE函数将这些stringparsing为数字。 这给出了MAX可以操作的一系列数字。

你可以使用这个数组公式得到你想要的结果

 =MAX(VALUE(SplitXL(A1,","))) 

和其他数组公式一样,必须使用Ctrl Shift Enter来input

在这里输入图像说明