【发布时间】:2015-05-27 23:29:55
【问题描述】:
我不知道如何描述这个问题,但举个例子应该可以清楚地说明:
"A"&COUNT(A1:A10000)
给出 A10000。那么为什么我不能这样做:
SUM(A1:"A"&COUNT(A1:A10000))
应该和SUM(A1:A10000)一样?
【问题讨论】:
我不知道如何描述这个问题,但举个例子应该可以清楚地说明:
"A"&COUNT(A1:A10000)
给出 A10000。那么为什么我不能这样做:
SUM(A1:"A"&COUNT(A1:A10000))
应该和SUM(A1:A10000)一样?
【问题讨论】:
当然可以:
=SUM(INDIRECT("A1:A"&COUNT(A1:A10000)))
【讨论】:
使用间接函数将单元格地址转换为范围引用:
=sum(indirect("A1:A"&COUNT(A1:A10000)))
【讨论】:
INDIRECT function 被视为 volatile 函数。您可以使用非易失性 INDEX function 完成相同的操作,使用 MATCH function 查找列中的最后一个数字(在中间空白或穿插文本的情况下),而不是计算列中的数字。
=sum(A1:INDEX(A:A, MATCH(1e99, A:A)))
结果应该类似于以下。
【讨论】:
1E+99 是一个 1 后跟 99 个零,更准确地描述为 永远不会到达的数字。 MATCH 函数(默认为 match_type)不断尝试使用它在列中找到的每个数字来访问它,直到它放弃并返回最后一个数字的行号。
因为你把int和string结合起来,结果变成了string,它不能作为一个单元格。
详细介绍
"A"&COUNT(A1:A10000) gives A10000
COUNT(A1:10000) = 计算所有有值的单元格,假设 A 列中的所有单元格都有值,那么结果将显示为 '10,000'
您尝试将 String 'A' 和 int '10,000' 组合起来,使其变为 String 'A10000'
String 'A10000' 不再与 int 相同,它不能用于求和、除法或乘法,因为它变成了 String。
(ex1. "A"&10000 = 字符串 "A10000" 与 CELL A10000 不同)
(ex2.int 5 = number 5, String '5' = word 'FIVE')
SUM(A1:"A"&COUNT(A1:A10000))
接下来,您尝试将第二行用作单元格行号。
因为是String,不是单元格行号,所以不能为你求和为CELL A1,A10000。
【讨论】: