如何使用其他公式(无 VB)将 Excel 中的 R1C1 字符串转换为 A1 字符串?

如何使用其他公式(无 VB)将 Excel 中的 R1C1 字符串转换为 A1 字符串?

因此,我用来评估 excel 文件的东西叫做 Apache POI,它不知道如何使用 R1C1 公式。我得到了一个包含如下公式的文档:

=INDIRECT(B$1&"!R"&ROW()&"C"&($W$1+1);0)*$F$4

我可以将每个INDIRECT字符串内容(含义B$1&"!R"&ROW()&"C"&($W$1+1);0)包装成类似另一个 Excel 公式或表达式的东西。

我想知道如何编写类似FORMULA_R_to_A(ScarryR1C1Expression) 这样的代码,仅使用 Excel 公式将 R1C1 字符串转换为 A1 字符串格式?

关于如何将 R1C1 转换为 A1,有很多种方法。但在这里,我们得到的不是纯 R1C1 作为精确路径,而是一个复杂公式,它本身首先计算为表示 R1C1 的字符串。

答案1

改进的答案:

=ADDRESS(ROW(),$W$1+1,1,1,B$1)

这就是如何“将 R1C1 字符串转换为 A1 字符串格式”。(:


先前的答案(用于记录):

假设您只使用 AZ 列,

=INDIRECT(B$1&"!R"&ROW()&"C"&($W$1+1);0)*$F$4

应该相当于

=INDIRECT(B$1&"!"&CHAR(64+($W$1+1))&ROW();1)*$F$4 (感谢@mark fitzpatrick 的修改建议)

想法:用于CHAR()'生成A1字符串格式。

如果有效/无效,请分享。(:

答案2

您还可以使用索引:

=INDEX(INDIRECT(B$1&"!A:ZZ"),ROW(),$W$1+1)

相关内容