获取单元格中逗号分隔值的最大值
Get maximum of comma-separated values in a cell
我在一个单元格中使用逗号分隔的数字。我想要这些数字的最大值。
例如:A1 = "2,5,1,4"
B1 中的公式应该是 return 值 5?
您可以使用逗号作为分隔符解析数据,然后取结果单元格对的最大值,或者您可以应用如下公式:
=MAX(1*LEFT(A1,FIND(",",A1)-1),1*MID(A1,FIND(",",A1)+1,LEN(A1)))
您可以在此处使用 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",",")
不幸的是,Excel 中没有内置的 SPLIT
函数来使用给定的分隔符拆分字符串,但是您可以为 VBA 的 Split
函数:
Public Function SplitXL(ByVal s As String, Optional delim As String = " ") As String()
SplitXL = Split(s, delim)
End Function
然后可以在 Excel 公式中使用。请注意,它 returns 一个字符串数组;为了最大化,首先需要使用 VALUE
函数将这些字符串解析为数字。这给出了一个数字数组,MAX
可以对其进行运算。
你可以使用这个数组公式得到你想要的结果
=MAX(VALUE(SplitXL(A1,",")))
与任何其他数组公式一样,必须使用 Ctrl Shift Enter 输入.
假设 A1
包含 1
和 999
之间的正整数列表,以逗号分隔但没有空格,您可以使用此公式找到存在的最大数字
=MATCH(1000,INDEX(FIND(","&ROW(INDIRECT("1:999"))&",",","&A1&","),0))
搜索 1 到 999 之间的所有数字,MATCH
找到最后一个 (MAX) 的 "position",因为我们从 1 开始,所以与数字本身相同
这适用于 A1 中的 任何 数量的数字,任何顺序,只要它们是指定的格式
=MAX(SPLIT(A1, ","))
csv 字符串的最大值:
我在一个单元格中使用逗号分隔的数字。我想要这些数字的最大值。
例如:A1 = "2,5,1,4"
B1 中的公式应该是 return 值 5?
您可以使用逗号作为分隔符解析数据,然后取结果单元格对的最大值,或者您可以应用如下公式:
=MAX(1*LEFT(A1,FIND(",",A1)-1),1*MID(A1,FIND(",",A1)+1,LEN(A1)))
您可以在此处使用 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",",")
不幸的是,Excel 中没有内置的 SPLIT
函数来使用给定的分隔符拆分字符串,但是您可以为 VBA 的 Split
函数:
Public Function SplitXL(ByVal s As String, Optional delim As String = " ") As String()
SplitXL = Split(s, delim)
End Function
然后可以在 Excel 公式中使用。请注意,它 returns 一个字符串数组;为了最大化,首先需要使用 VALUE
函数将这些字符串解析为数字。这给出了一个数字数组,MAX
可以对其进行运算。
你可以使用这个数组公式得到你想要的结果
=MAX(VALUE(SplitXL(A1,",")))
与任何其他数组公式一样,必须使用 Ctrl Shift Enter 输入.
假设 A1
包含 1
和 999
之间的正整数列表,以逗号分隔但没有空格,您可以使用此公式找到存在的最大数字
=MATCH(1000,INDEX(FIND(","&ROW(INDIRECT("1:999"))&",",","&A1&","),0))
搜索 1 到 999 之间的所有数字,MATCH
找到最后一个 (MAX) 的 "position",因为我们从 1 开始,所以与数字本身相同
这适用于 A1 中的 任何 数量的数字,任何顺序,只要它们是指定的格式
=MAX(SPLIT(A1, ","))
csv 字符串的最大值: