Lox365 is a LibreOffice Calc extension that adds modern spreadsheet functions like XLOOKUP, FILTER, and more.
Do you like using Lox365? Let me know in the Discussions. Maybe buy me a coffee.
- Download the extension
Lox365.oxt
from Releases. - Start LibreOffice > Tools > Extension Manager > Add > Select the oxt file > restart LibreOffice.
Use the function like you would any other function in LibreOffice Calc.
To output results in multiple cells, enter your formula with Ctrl + Shift + Enter.
This is because Lox365 functions are array functions. LibreOffice Calc does not support Excel's dynamic arrays.
Filters an array.
Similar to Excel's FILTER.
=FILTER(array, include, [if_empty])
array
: The array to filter.include
: An array of booleans where TRUE represents a row or column to retain.[if_empty]
: Returned if no items are retained. Optional.
Returns an image from a given source.
The source can be a local image file or a web URL. You can use a web URL of a third-party service to generate, for example, a QR code, equation, or diagram.
Similar to Excel's IMAGE.
=IMAGE(out_cell, source)
out_cell
: Reference to the cell where the image is to be placed.source
: The path of the source that points to the image.
Sorts an array.
Similar to Excel's SORT.
=SORT(array, [sort_index], [sort_order])
array
: The array to sort.[sort_index]
: A number indicating the row or column to sort by. Optional.[sort_order]
: A number indicating the desired sort order; 1 for ascending order (default), -1 for descending order. Optional.- Not supported:
by_col
.
Splits text into columns using delimiters.
Similar to Excel's TEXTSPLIT.
=TEXTSPLIT(text, col_delimiter)
text
: The text you want to split.col_delimiter
: The text that marks the point where to split the text across columns.- Not supported:
row_delimiter
,ignore_empty
,match_mode
,pad_with
.
Returns the array as one column.
Similar to Excel's TOCOL.
=TOCOL(array)
array
: The array to return as a column.- Not supported:
ignore
,scan_by_column
.
Returns the unique values from a range or array.
Similar to Excel's UNIQUE.
=UNIQUE(array)
array
: The array from which to return unique rows.- Not supported:
by_col
,exactly_once
.
Searches an array for a match and returns the corresponding item from a second array.
Similar to Excel's XLOOKUP.
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found])
lookup_value
: The value to search for.lookup_array
: The array to search.return_array
: The array to return.[if_not_found]
: Where a valid match is not found, return the [if_not_found] text you supply. Optional.- Not supported:
match_mode
,search_mode
.
I use these functions quite often in Excel and wanted to use them in LibreOffice too, so I made this.
Here are what others are saying about this project:
Thanks for this; great idea!
— u/timespreader
Great work, goose! 😊
— Mike Saunders
Really nice idea.
— Behzat Yildirim
Very well done to the creator of the extension.
— Jimmy
Oh, wonderful!
😀 Thanks for implementing this!
— Arne
The support of XLOOKUP is a great addition.
— Marius Spix
Dobre rozszerzenie, bardzo przydatne funkcje.
— Piotr Osada
Pues muchísimas gracias.
— Guille
These functions are not in LibreOffice and not provided by Lox365 but are available in the latest Excel:
- RANDARRAY
- SEQUENCE
- SORTBY
- STOCKHISTORY
- TOROW
- XMATCH
These functions are not in LibreOffice Calc now, but are planned to be added:
- XLOOKUP
These functions are already available in LibreOffice:
- CONCAT
- IFS
- MAXIFS
- MINIFS
- SWITCH
- TEXTJOIN
https://wiki.documentfoundation.org/Documentation/HowTo/install_extension
https://wiki.documentfoundation.org/Feature_Comparison:_LibreOffice_-_Microsoft_Office
https://www.reddit.com/r/libreoffice/comments/x98nqt/lox365_xlookup_for_libreoffice/
https://www.reddit.com/r/opensource/comments/xfdmml/lox365_xlookup_for_libreoffice/
https://twitter.com/LibreOffice/status/1573232603351879682
https://fosstodon.org/@libreoffice/109046849962893237
🇪🇸 https://es.blog.documentfoundation.org/extension-lox365-xlookup-y-mas-para-libreoffice-calc/
🇪🇸 https://www.youtube.com/watch?v=BSPCJnc6r2g
🇯🇵 https://forest.watch.impress.co.jp/docs/news/1442776.html
🇯🇵 https://opensource.srad.jp/story/22/09/27/1337200/
🇯🇵 https://www.zaikei.co.jp/article/20220928/691186.html
🇧🇷 https://www.matsuura.com.br/2022/09/extensao-lox365-xlookup-e-mais-para.html
🇹🇷 https://blog.libreoffice.org.tr/2022/09/23/libreoffice-calc-icin-yeni-bir-eklenti-goosepirate/
https://bugs.documentfoundation.org/show_bug.cgi?id=126573
https://bugs.documentfoundation.org/show_bug.cgi?id=127293
https://gerrit.libreoffice.org/c/core/+/131905
https://flywire.github.io/lo-p/
https://wiki.openoffice.org/wiki/Calc/Add-In/Python_How-To
https://wiki.openoffice.org/wiki/Python/Python_Language_Binding
https://wiki.documentfoundation.org/Documentation/DevGuide/Spreadsheet_Documents
https://help.libreoffice.org/latest/en-US/text/sbasic/python/main0000.html
https://help.libreoffice.org/latest/en-US/text/sbasic/python/python_programming.html
https://www.openoffice.org/api/docs/common/ref/com/sun/star/sheet/module-ix.html
https://www.openoffice.org/api/docs/common/ref/com/sun/star/sheet/AddIn.html
https://git.libreoffice.org/core/
https://forum.openoffice.org/en/forum/
https://api.libreoffice.org/docs/idl/ref/namespaces.html
https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1beans_1_1XPropertySet.html
https://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1sheet_1_1AddIn.html
https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1table_1_1XCellRange.html
https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1uno_1_1XInterface.html
https://extensions.libreoffice.org/en/extensions/show/27434