[Libreoffice-bugs] [Bug 154125] INDEX() does not return a vector of an array if that is only a vector, but only the first element

2023-03-11 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=154125

Eike Rathke  changed:

   What|Removed |Added

   Assignee|libreoffice-b...@lists.free |er...@redhat.com
   |desktop.org |

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-bugs] [Bug 154125] INDEX() does not return a vector of an array if that is only a vector, but only the first element

2023-03-11 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=154125

Eike Rathke  changed:

   What|Removed |Added

 CC||mikekagan...@hotmail.com

--- Comment #5 from Eike Rathke  ---
@Mike:
Does full (non-online) Excel do vector replication in INDEX()? i.e. with
array-row separator ; semicolon does

=INDEX({1;2};0;2)

return error, or does it return column vector {1;2}? (transform separators to
whatever is correct for your Excel..)

Similar, does

=INDEX({1;2};2;2)

return error, or 2?

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-bugs] [Bug 154125] INDEX() does not return a vector of an array if that is only a vector, but only the first element

2023-03-11 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=154125

--- Comment #4 from Eike Rathke  ---
You are complicating things and just repeating what I gave..

=INDEX({11;21};0;1)
CSE is exactly the column vector case I said is not working as it should.

=INDEX({11|12};1;0)
CSE the same but for row vector.

Fwiw, you can see in the Function Wizard what actually is returned for the
examples; whether the formula is entered as CSE-array or normal only affects
how the final result is displayed, either as full array result (CSE) or just
the single top left element's value (normal).


> in Excel I believe that =INDEX({1,2};2) should had been #REF!

But it isn't, is it?

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-bugs] [Bug 154125] INDEX() does not return a vector of an array if that is only a vector, but only the first element

2023-03-11 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=154125

--- Comment #3 from ady  ---
Using LO 7.4.5, here is what I have tested ("|" is column separator, ";" as
both row and argument separators).

In a pre-dynamic formula context, with INDEX() in array form *by itself*:


A_
{ =INDEX({11|12;21|22};0;1) } (with CSE)
=11 (1st row, 1st col)
=21 (2nd row, 1st col)

OK.


B_
=INDEX({11|12;21|22};0;1) (_no_ CSE)
=11 (1st row only)

OK.


C_
{ =INDEX({11;21};0;1) } (with CSE)
=11 (1st row)

NOT OK. We should also get:
=21 (2nd row)

D_
=INDEX({11;21};0;1) (_no_ CSE)
=11 (1st row)

OK, but expected considering result "C" above.


E_
{ =INDEX({11|12};1;0) } (with CSE)
=11 (1st col)
NOT OK. We should also get:
=12 (2nd col)

F_
=INDEX({11|12};1;0) (_no_ CSE)
=11 (1st col)

OK, but expected considering result "E" above.


Considering that those are wrong results already, I have not tested additional
possibilities such as default values when arguments are omitted, or
out-of-scope arguments, or wrong-type arguments.


Please note that these are examples of INDEX() by itself. When INDEX() is used
as lookup_array for MATCH() (as in the example in comment 0), then CSE should
not be required in order to obtain the array to be fed for MATCH().

Once the above examples get to work, I should be able to test them in
combination with MATCH() as in the example in comment 0.

PS: FWIW, in Excel I believe that =INDEX({1,2};2) should had been #REF!, IIUC
(whether with CSE or not).

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-bugs] [Bug 154125] INDEX() does not return a vector of an array if that is only a vector, but only the first element

2023-03-11 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=154125

--- Comment #2 from Eike Rathke  ---
Note that in Excel the cases

=INDEX({1;2};0;0)
=INDEX({1,2};0;0)
=INDEX({1,2;3,4};0;0)

with both row_num=0 and column_num=0 that they document to not work at all and
return error. There is no compelling reason though why it shouldn't and it
works in Calc.

Additionally there is a working case that they do not document, if the array is
a one-dimensional row vector then if column_num is not given then the row_num
argument acts as a column index. E.g.

=INDEX({1,2};2)
returns 2, as does
=INDEX({1,2};0;2)

That is specified by ODFF v1.3 in 6.14.6 INDEX
https://docs.oasis-open.org/office/OpenDocument/v1.3/os/part4-formula/OpenDocument-v1.3-os-part4-formula.html#INDEX

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-bugs] [Bug 154125] INDEX() does not return a vector of an array if that is only a vector, but only the first element

2023-03-10 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=154125

Eike Rathke  changed:

   What|Removed |Added

 Ever confirmed|0   |1
 Status|UNCONFIRMED |ASSIGNED
Summary|[ FILEOPEN ] [ FILESAVE ]   |INDEX() does not return a
   |Behavior of Calc function   |vector of an array if that
   |INDEX() in array-like cases |is only a vector, but only
   ||the first element

--- Comment #1 from Eike Rathke  ---
This is not a matter of load/save (adjusting summary).
Also, it's not about array formula vs non-array formula. The formulas in the
example document are explicitly stored as array formulas by Excel, hence Calc
correctly displays them in {} curly braces. It's also not that in Calc one
would have to enter an array formula for this MATCH() case to get a result if
INDEX() worked correctly.

It's simply that INDEX() does not return a column or row vector of an array
that is already a single column or row vector. E.g. with , comma as
array-column separator and ; semicolon as array-row separator:

=INDEX({1;2};0;1)
(all rows, column 1) should return {1;2} but returns 1

=INDEX({1,2};1;0)
(row 1, all columns) should return {1,2} but returns 1

=INDEX({1;2};0;0)
(all rows, all columns) correctly returns {1;2}

=INDEX({1,2};0;0)
(all rows, all columns) correctly returns {1,2}

=INDEX({1;2};1;0)
(row 1, all columns) correctly returns 1

=INDEX({1,2};0;1)
(all rows, column 1) correctly returns 1

=INDEX({1,2;3,4};0;0)
correctly returns {0,1;2,3}

=INDEX({1,2;3,4};0;1)
correctly returns {1;3}

=INDEX({1,2;3,4};1;0)
correctly returns {1,2}

-- 
You are receiving this mail because:
You are the assignee for the bug.