LibreOfficeにXLOOKUP関数やLET関数が装備される
以前、有志がアドオンの形式でLibreOfficeにXLOOKUP関数を装備したというニュースがありましたが、2024年8月24日、公式にXLOOKUPやLET関数が装備されたようです。
利用できるバージョンは24.8から。実際にxlookup関数を検証してみました。どうやら配列で返す関数が一斉に装備されたようです。
使い方
サンプルファイルを用意しています。実際にサンプルのファイルのデータを元に以下のような数式を入力してみました。
1 |
=XLOOKUP(H2,A2:A21,D2:D21,"no data") |
H2のIDを元に表を検索。該当するD列の値を引っ張ってくるというもの。確かに動いています。データが見つからない場合にはno dataを表示するようにしていますが、問題なく動作しています。
公式ドキュメントにもリファレンスが用意されています。
他にも追加された関数として、LET、RANDARRAY、FILTER、SORT、SORTBY、UNIQUE、SEQUENCE、XMATCHといった関数が一斉に追加されている為、LibreOfficeでもようやく配列系の関数が使えるように成ったと言えます。
図:xlookupをlibreofficeで使ってみた
問題点
ただし、いくつか問題点もあります。特に互換性の面で問題点が生じています。
- LibreOfficeにはExcelのスピルが無い為か、複数列を返す数式が使えません。エラーになります。
- 一方で、Excelで複数列返すxlookupの数式は結果的に「{ }」で括られた旧式の配列数式で開かれて修正が出来ません。 変なダイアログが出ます。
- GoogleスプレッドシートでODS形式のファイルを開くとxlookup関数が「com.microsoft.xlookup」に変換されてしまい、関数の手修正が必要です。
ODS形式で保存して、macOSのExcelで開いてみましたが、こちらは問題は起きませんでした。Googleスプレッドシートはもともと複数列を返すxlookup関数が装備されているので、複数列でも問題ないかと思えば上記のようにGoogle側の問題?なのか、エラーになってしまいます。
結構中途半端な実装なのかもしれません。
図:Excelファイルの数式修正が出来ない
図:Googleスプレッドシートだとエラー
図:ExcelでODSを開いたが問題なし