Nov 08 2017
10:31 AM
- last edited on
Jul 25 2018
10:22 AM
by
TechCommunityAP
Nov 08 2017
10:31 AM
- last edited on
Jul 25 2018
10:22 AM
by
TechCommunityAP
The following is a trivial example, which works quite well. I'm actually calculating the row/column based on other values, but this should already show my problem:
=INDIRECT("R2C4";FALSE)
This would result in the value that resides in the cell D2. Perfect.
BUT when my colleague opens the Worksheet in their German locale/language version of Excel, that formula fails because of a reference error.
Instead of "R2C4", the German Excel version needs "Z2S4" (Z = Zeile instead of R=Row, S = Spalte instead of C=Column).
Is there a way to calculate the "R2C4" string or is there another function than INDIRECT to get a value of a cell which works across language versions?
Nov 09 2017 12:14 AM
I used OFFSET(A1;1;3;1;1) for now. I'm still thinking about how fundamentally wrong it is, having to translate functions and coordinates.
Nov 09 2017 12:35 AM - edited Nov 09 2017 12:35 AM
Joern,
the advantage of INDEX() over INDIRECT() and OFFSET() is that it is not volatile.
Nov 09 2017 12:03 PM - edited Nov 10 2017 12:43 AM
@Joern Bernhardt,
It may sound ridiculous but giving it a try would not harm anyone.
Put the following UDF in a VBA Module:
------------------------
Function Laguage_ID()
Laguage_ID = Application.LanguageSettings.LanguageID(msoLanguageIDInstall)
End Function
------------------------
and then use the following formula:
=INDIRECT(IF(Laguage_ID() <> 1031,"R2C4","Z2S4"),0)
Michael (Micky) Avidan
Nov 08 2017 10:49 AM
Solution