Bug 121488 - ERROR.TYPE for "Search out of range" in Excel return 7 but in Calc #N/D
Summary: ERROR.TYPE for "Search out of range" in Excel return 7 but in Calc #N/D
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Calc (show other bugs)
Version:
(earliest affected)
Inherited From OOo
Hardware: All All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: Calc-Function
  Show dependency treegraph
 
Reported: 2018-11-18 07:21 UTC by gmolleda
Modified: 2023-05-11 14:52 UTC (History)
5 users (show)

See Also:
Crash report or crash signature:


Attachments
error.type example (26.97 KB, application/vnd.oasis.opendocument.spreadsheet)
2018-11-18 18:33 UTC, Oliver Brinzing
Details
view error (27.96 KB, application/vnd.oasis.opendocument.spreadsheet)
2019-11-20 07:02 UTC, gmolleda
Details

Note You need to log in before you can comment on or make changes to this bug.
Description gmolleda 2018-11-18 07:21:00 UTC
The return value for function ERROR.TYPE when the search is out of range is #N/D but must to be 7 (as Excel).
Before, the function ERROR.TYPE was different in Calc and Excel, the returned values was 32767, 532, 502 or 504 in Calc while in Excel was 7,2,7,4 in different errors.
Steps:
Create new Calc sheet:
Write in cells:
Column A
Row 1: =VLOOKUP("Don't exist",B129:B131,1,0)
Row 2: =5/0
Row 3: =VLOOKUP("Out of range",B121:B123,2,0)
Row 4: =#REF!
Column B
Row 1: =ERROR.TYPE(A1)
Row 2: =ERROR.TYPE(A2)
Row 3: =ERROR.TYPE(A3)
Row 4: =ERROR.TYPE(A4)

results in B1-B4 in Calc: 7,2,#N/D,4 with ERROR.TYPE, and results in Excel: 7,2,7,4.

Ok, in the help says: "If the ERROR.TYPE function is used as condition of the IF function and the ERROR.TYPE returns #N/A, the IF function returns #N/A as well. Use ISERROR to avoid it as shown in the example above."
But the behaviour is different in Excel-Calc.

The old function is named ERRORTYPE (without dot, in spanish translation is TIPO.DE.ERROR.OOO) and the result is: 32767, 532, 502, 504 for errors A1 until A4.

En la vera internacia lingvo: Esperanto, kiu diskriminacias malpli pro denaska lingvo:
La valorezulto por la funkcio ERARO.TIPO (ERROR.TYPE en la angla) kiam la serĉo estas ekstere de ĉelintervalo estas #N/D sed ĝi devas esti 7 (kiel Excel).
Antaŭe, la funkcio ERARO.TIPO estis malsama en Calc kaj Excel, la valorrezultoj estis 32767, 532, 502 aŭ 504 en Calc kaj en Excel estis 7,2,7,4 en malsamaj eraroj.
Paŝoj:
Kreu novan Calc-folion:
Skribu en ĉeloj: (apartigilo , povas esti ; laŭ lando)
Kolumno A
Vico 1: =VSERĈO("Ne ekzistas",B129:B131,1,0)
Vico 2: =5/0
Vico 3: =VSERĈO("Ekstere de ĉelintervalo",B121:B123,2,0)
Vico 4: =#REF!
Kolumno B
Vico 1: =ERARO.TIPO(A1)
Vico 2: =ERARO.TIPO(A2)
Vico 3: =ERARO.TIPO(A3)
Vico 4: =ERARO.TIPO(A4)

rezultoj en B1-B4 en Calc: 7,2,#N/D,4 kun ERARO.TIPO, kaj rezultoj en Excel: 7,2,7,4.

Bone, en la helpo diras: "If the ERROR.TYPE function is used as condition of the IF function and the ERROR.TYPE returns #N/A, the IF function returns #N/A as well. Use ISERROR to avoid it as shown in the example above."

Sed la konduto estas malsama en Excel-Calc.

La malnova funkcio nun estas nomata ERARTIPO (sen punkto, en la angla ERRORTYPE kaj en la hispana traduko estas TIPO.DE.ERROR.OOO) kaj la valorrezultoj estas: 32767, 532, 502, 504 por eraroj A1 ĝis A4.

Y en español:
El valor de retorno para la función TIPO.DE.ERROR (ERROR.TYPE en inglés) cuando la búsqueda está fuera de rango es #N/D pero debe ser 7 (como en Excel).
Antes, la función TIPO.DE.ERROR era diferente en Calc y Excel, los valores devueltos eran 32767, 532, 502 o 504 en Calc, mientras que en Excel era 7,2,7,4 en diferentes errores.
Pasos:
Crear nueva hoja de cálculo:
Escribir en celdas: (ojo, el separador puede ser , o ; según el país)
Columna A
Fila 1: =BUSCARV("No existe";B129:B131;1;0)
Fila 2: =5/0
Fila 3: =BUSCARV("Fuera de rango";B121:B123;2;0)
Fila 4: =#¡REF!
Columna B
Fila 1: =TIPO.DE.ERROR(A1)
Fila 2: =TIPO.DE.ERROR(A2)
Fila 3: =TIPO.DE.ERROR(A3)
Fila 4: =TIPO.DE.ERROR(A4)

los resultados en B1-B4 en Calc: 7,2,#N/D,4, y los resultados en Excel: 7,2,7,4.
resultados en Calc en versiones anteriores y en Calc ahora con TIPO.DE.ERROR.OOO

Bien, en la ayuda dice: "Si la función TIPO.DE.ERROR se usa como condición de la función IF y TIPO.DE.ERROR devuelve # N / A, la función IF también devuelve # N / A. Use ISERROR para evitarlo como se muestra en el ejemplo de arriba ".
Pero el comportamiento es diferente en Excel-Calc.

La función antigua se denomina TIPO.DE.ERROR.OOO (en inglés ERRORTYPE sin el punto separador) y el resultado es: 32767, 532, 502, 504 para los errores A1 hasta A4.
Comment 1 Oliver Brinzing 2018-11-18 18:33:05 UTC
already reproducible with

Version: 5.4.7.2
Build-ID: c838ef25c16710f8838b1faec480ebba495259d0
CPU-Threads: 4; BS: Windows 6.2; UI-Render: Standard; 
Gebietsschema: de-DE (de_DE); Calc: single
Comment 2 Oliver Brinzing 2018-11-18 18:33:35 UTC
Created attachment 146724 [details]
error.type example
Comment 4 Xisco Faulí 2018-11-19 09:43:00 UTC
Also reproduced in

Version: 5.2.0.0.alpha0+
Build ID: 54862a932fc9ccc1788e91629818ec6666ec1c09
CPU Threads: 4; OS Version: Linux 4.15; UI Render: default; 
Locale: ca-ES (ca_ES.UTF-8)

@Eike, I thought you might be interested in this issue...
Comment 5 Eike Rathke 2018-11-19 12:05:32 UTC
Calc has more detailed errors than Excel. In this case the Err:502 (IllegalArgument) is because the field index to VLOOKUP() is 2 but there is only one field. Calc returns #N/A only if the lookup-value is not found in an otherwise correct context. Excel seems to return #N/A in any error case of VLOOKUP().

Actually ERROR.TYPE() returning #N/A can happen with any of the more detailed Calc error values because there is no defined mapping (and can't be), which exists only for the seven error values Excel knows. Mapping Err:502 to #N/A (=7) is not a solution because in other (or most) context it may be #VALUE! (=3) instead, or something else depending on what Excel returns for some function's error (which in most cases #VALUE! isn't helpful at all).

This isn't really solvable unless we'd transport additional information with each error what it might be in Excel in the given context just in case there would be an ERROR.TYPE() evaluating it. Which I think would be overdone and I'd rather close this as wontfix.
Comment 6 QA Administrators 2019-11-20 03:50:27 UTC Comment hidden (obsolete)
Comment 7 gmolleda 2019-11-20 07:02:00 UTC
Created attachment 155964 [details]
view error

The bug continues in LO 3.3.2