I am running Libreoffice on Ubuntu 24.04.01 LTS and Windows 11 Pro on different machines with the LibreOffice versions 24.2.7.2 and 24.8.3.2.
Since Libreoffice version 24.8 in Calc the LET() function is introduced.
To check if I can use the sheet in the used LibreOffice version I wanted to check the version inside the sheet by using the formula “=INFO(“version”)”
This returns “420(Build 2)” in version 24.2.7.2.
And returns “bb3cfa12c7b1bf994ecc5649a80400d06cd71002” in version 24.8.3.2.
Is this newly returned hexadecimal number the way it will be represented from this version 24.8 on?
And can I take into account that this number will rise with every update so that I can check if the right version is used by the formula:
=IF(ISERROR(VALUE(INFO(“version”)));“Wrong version”;IF(VALUE(INFO(“version”))>=VALUE(“bb3cfa12c7b1bf994ecc5649a80400d06cd71002”);"";“Wrong version”)
?
Additional information;
The sheet where I use the LET() function in a formula like =LET(nWeeks;DAY($B$3)/7;nBudget;nWeeks*$Budget.$E$52;nSpend;SUMIFS($H$66:$H$104;$I$66:$I104;“Groceries”);nRemainder;nBudget-nSpend;“Groceries”&CHR(10)&“Difference:”&CHR(10)&nRemainder)
No, the "version"
undocumented input to the INFO
function returns the same as "release"
, i.e., an identifier defined by the vendor of the build. For all packages provided by TDF, it has always been the hash of the last commit in the branch that the release was built from (in the form of bb3cfa12c7b1bf994ecc5649a80400d06cd71002
); other vendors - like Ubuntu - use other forms of identifiers, like 420(Build 2)
. If you only ever saw the latter form, it means that you only ever used Ubuntu releases.
And no, the identifier returned by "release"
is never guaranteed to be monotonically incrementing. And never was.
If you need to do some decision based on if a function is supported or not, then use a cell to have a calculation involving that function, and check its error status using functions like IFERROR
.
Thanks for this prompt reply and clarifying the issue.
This is the first time I thought I had to do this version check and therefor never encountered the differences between the output of the INFO(“version”) between vendors.
I treid =IFERROR( LET(a,1,b,2,a-b+1);“Libreoffice version must be at least 24.8”) but this returned “Libreoffice version must be at least 24.8” even in LibreOffice 24.8 Calc on both Windows 11 and Ubuntu 24.04.01 LTS.
Did I use IFERROR() correctly this way to check the availability of LET() ?
Did you check the simple =LET(a;1;b;2;a-b+1)
in a separate cell before using it in the condition?
Yes I checked =LET(a;1;b;2;a-b+1)
in a different cell before using it in the condition.
I now also treid =LET(airsda;1;boxsdae;2;airsda-boxsdae+(airsda*boxsdae))
which worked and returned 1
and
=IFERROR( LET(airsda;1;boxsdae;2;airsda-boxsdae+(airsda*boxsdae));“Libreoffice version must be at least 24.8”)
which returned “Libreoffice version must be at least 24.8”
again
I see the problem.
And the most interesting is, that sometimes I see the error even in the LET formula (which is why I asked first, assuming incorrect variable naming).
Looks like a bug.
Thanks for the quick response again. And excuse for the ; in the formula’s.
I use LibreOffice in Dutch versions at the moment.
Two questions:
-This function ISERR()
results in the same bug:
=IF(ISERR(LET(airsda;1;boxsdae;2;airsda-boxsdae+(airsda*boxsdae)));“Libreoffice version must be at least 24.8”;“Correct version of LirbreOffice”)
who could report this bug?
Can I do that as new member or can you do that?
- Which other function could I try to check on the correct version?
For me it looks like »LET is some kind of Top-level function wich doesnt allow to be encapsulated ´below’ other functions«
=LET(a;2;b;3;a*b)+5 ⇒ 11
=SUM(LET(a;2;b;3;a*b);5) ⇒ #NULL!
Thanks for this.
I sounds like a logic analysis.
And may be this line within the “Technical information part” of the LET() function might be another?
"This function is not part of the Open Document Format for Office Applications (OpenDocument) Version 1.3. Part 4: Recalculated Formula (OpenFormula) Format standard. The name space is
COM.MICROSOFT.LET"
Thats seems just the state of »Standard«-isation and how to translate into a valid FQN ( FullQualifiedName) meanwhile export to excel, but not about its Implementation in Sourcecode ?!
That is a bug. There should be no such limitations.
A workaround could be using a separate cell for the LET formula, and another cell for an IFERROR referencing that cell.
disclaimer:
I have only described a possible explanation for the behavior, not an assumption about whether this is intentional or a bug
Thankx for that additional comments. I will look to the workaround and may be using Basic coding for it since I dislike creating ‘unsolvable errors’ in my sheets by the =LET()
in older versions of LibreOffice
tdf#164997
Tnkx for reporting.