Excel:文本和空白的最小值和最大值
Excel: Min and max of text and blanks
Excel 2019 函数 min()
、max()
、MinA()
和 MaxA()
不适用于非数字参数。 A 给出了对文本值执行最大和最小操作的公式:
{=index(A2:A6, match(0, CountIf(A2:A6, ">" & A2:A6), 0))}
为max,min同“>”改为“<”,其中{...}
表示用Ctrl-Shft-Enter
.
输入的数组公式
这很好用,但我发现其中有一个奇怪的行为。如果给定范围在范围末尾或范围内包含空白单元格(即空,即不包含任何内容),则它工作正常,但如果它在范围开头包含空白,则公式 returns 0
:
更复杂的是,如果空白单元格被替换为空字符串,=""
,那么上面的行为是相同的,除了开头为空字符串的那个变成空而不是0
.
这是怎么回事?为什么此公式适用于范围末尾或范围内的空格或空字符串,但不适用于开头?
这是COUNTIF
的缺点。虽然 =A1>B1
将得到 FALSE
而 =B1>A1
将得到 TRUE
因为空单元格不大于 A
但 A
大于空,在 COUNTIF
中,空白 (""
) 或空白永远不会被计算在内。如果你这样做 =COUNTIF(A1:H1,">"&A1)
,你会得到 0
。因此,没有什么比空单元格 A1
.
更大
这是因为 COUNTIF
中使用了文本连接。 =COUNTIF(A1:H1,">"&A1)
将变为 =COUNTIF(A1:H1,">")
,它计算有多少值总比没有大。这算 0
.
在数组上下文中,COUNTIF(A1:H1,">"&A1:H1)
得到 {0,5,0,4,3,2,0,1}
,因此 MATCH(0;{0,5,0,4,3,2,0,1},0)
得到 1
。然后 INDEX(A1:H1,1)
得到 A1
是空的。所以公式显示 0
就像 =A1
一样。
在 Excel.
中使用 Evaluate Formula 时你会看到这个
可以在 COUNTIF
中的搜索条件后面附加一个 space。因此,空或空白将像 space 一样处理。对于每个其他单元格值,只需附加一个 space,这里应该不会有问题。
{=INDEX(A1:H1,MATCH(0,COUNTIF(A1:H1,">"&A1:H1&" "),0))}
应该可以。
由于 COUNTIF
可以使用星号 (*
) 作为通配符来匹配任何字符,我们也可以附加 *
而不是 space。
{=INDEX(A1:H1,MATCH(0,COUNTIF(A1:H1,">"&A1:H1&"*"),0))}
只需尝试更合适的即可。
Excel 2019 函数 min()
、max()
、MinA()
和 MaxA()
不适用于非数字参数。 A
{=index(A2:A6, match(0, CountIf(A2:A6, ">" & A2:A6), 0))}
为max,min同“>”改为“<”,其中{...}
表示用Ctrl-Shft-Enter
.
这很好用,但我发现其中有一个奇怪的行为。如果给定范围在范围末尾或范围内包含空白单元格(即空,即不包含任何内容),则它工作正常,但如果它在范围开头包含空白,则公式 returns 0
:
更复杂的是,如果空白单元格被替换为空字符串,=""
,那么上面的行为是相同的,除了开头为空字符串的那个变成空而不是0
.
这是怎么回事?为什么此公式适用于范围末尾或范围内的空格或空字符串,但不适用于开头?
这是COUNTIF
的缺点。虽然 =A1>B1
将得到 FALSE
而 =B1>A1
将得到 TRUE
因为空单元格不大于 A
但 A
大于空,在 COUNTIF
中,空白 (""
) 或空白永远不会被计算在内。如果你这样做 =COUNTIF(A1:H1,">"&A1)
,你会得到 0
。因此,没有什么比空单元格 A1
.
这是因为 COUNTIF
中使用了文本连接。 =COUNTIF(A1:H1,">"&A1)
将变为 =COUNTIF(A1:H1,">")
,它计算有多少值总比没有大。这算 0
.
在数组上下文中,COUNTIF(A1:H1,">"&A1:H1)
得到 {0,5,0,4,3,2,0,1}
,因此 MATCH(0;{0,5,0,4,3,2,0,1},0)
得到 1
。然后 INDEX(A1:H1,1)
得到 A1
是空的。所以公式显示 0
就像 =A1
一样。
在 Excel.
中使用 Evaluate Formula 时你会看到这个可以在 COUNTIF
中的搜索条件后面附加一个 space。因此,空或空白将像 space 一样处理。对于每个其他单元格值,只需附加一个 space,这里应该不会有问题。
{=INDEX(A1:H1,MATCH(0,COUNTIF(A1:H1,">"&A1:H1&" "),0))}
应该可以。
由于 COUNTIF
可以使用星号 (*
) 作为通配符来匹配任何字符,我们也可以附加 *
而不是 space。
{=INDEX(A1:H1,MATCH(0,COUNTIF(A1:H1,">"&A1:H1&"*"),0))}
只需尝试更合适的即可。