使用不同语言的R1C1表示法

我已经构build了一个电子表格,在公式本身中使用了R1C1表示法。 我已经成功地完成了所有需要做的事情,而不必求助于macros或VBA(这需要不同的文件格式,并且在打开文件时用户“启用macros”等)。

唯一的问题是,我现在已经注意到,虽然Excel将其所有function翻译成本地语言(我必须处理英语,葡萄牙语和西class牙语),但它不处理用于R1C1表示法的string文字。 例如, INDIRECT("R[1]C[1]")用葡萄牙语翻译为INDIRETO("R[1]C[1]") ,如果葡萄牙语R1C1实际上不是L1C1 。

我假设我是使用VBA,这不会是一个问题,因为VBA没有被翻译,我认为R1C1实际上是R1C1,不pipe客户端语言如何。 但有没有可能做到这一点,而不必诉诸于VBA?

我遇到了同样的问题,这里是我如何解决它

在一个单独的隐藏表格中,我在两个单元格中input这个公式:

 =LEFT(ADDRESS(1;1;1;0);1) =MID(ADDRESS(1;1;1;0);3;1) 

这给了我用于R1C1风格参考的两个字符,这里是“R”和“C”。 在法语中,它给了我“L”和“C”。

然后我使用这些字符重新组合间接地址,例如CONCATENATE

老线程,但我遇到了同样的问题。 Excel中公式的另一个缺点是,特别是考虑到“Rangée”是法语中“Ligne”的完全可接受的同义词,并且可以完全避免这个小问题。

我认为更明智的做法是尽量避免使用R1C1符号。 一种方式,如果你正在尝试使用ROW()&COLUMN()(这是我的情况)获得相对位置:

代替:

 OFFSET(INDIRECT("R"&ROW()&"C"&COLUMN()),-2,-2) 

这将在法语(并不怀疑其他语言)失败,请尝试:

 OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),-2,-2) 

当然,这可能是更多的工作,取决于你的工作簿中有多less(如果你知道他们在哪里)。 但是这比基于单独的表IMO的匹配更可靠。