【发布时间】:2018-05-23 05:21:25
【问题描述】:
如何将任意大小的范围转换为字符串表示形式,以供以后使用 INDIRECT 使用?
ADDRESS 仅适用于单个单元格。
请不要编写脚本 :)
只有公式。
编辑 1 ; 还假设范围是通过复杂的公式计算的。所以没有可用的单元格地址。
编辑 2 ;
=ArrayFormula(IF((OFFSET(INDIRECT(PayStaff),0,10)>PayrollStart)*(OFFSET(INDIRECT(PayStaff),0,10)<=PayrollEnd),(OFFSET(INDIRECT(PayStaff),0,10)-PayrollStart),0)+IF((OFFSET(INDIRECT(PayStaff),0,11)>=PayrollStart)*(OFFSET(INDIRECT(PayStaff),0,11)<PayrollEnd),(PayrollEnd-OFFSET(INDIRECT(PayStaff),0,11)),0))
没有样本表,因为这是一个假设类型的问题。
以上是我正在使用的实际公式,是我为实现完全自动化所做的众多努力之一。在任何时候,“PayStaff”中的范围字符串都可能发生变化,再加上重复但相同的 OFFSET 调用,很快就会使公式变得不可读。我解决可读性的一个想法是获取(例如:OFFSET(INDIRECT(PayStaff),0,10))的范围字符串并重用它,缩短公式并提高可读性。另请注意,该示例没有我要求的范围大小增加。
但是让我们假设 PayStaff = "A1:A10",其中行数可以变化。考虑到 OFFSET 有 4 个参数,如何将结果范围作为字符串获取?这可能吗?
【问题讨论】:
-
这是不可能的,因为范围是通过复杂的公式计算的(列/行数可变的偏移量)。所以没有可用的单元格地址。更新了 OP 以表明这一点。
-
我认为您想要的函数是 CELL("ADDRESS"...),但我们确实需要查看公式才能回答问题。此外,如果您要求将范围作为字符串,您可能会问错问题。
-
根据要求更新了更多信息。
标签: google-sheets