calcのmatch関数でAとA+が区別できない

検査範囲内にAとA+がある時に、match関数を使うと+が無視されて両方ともAの位置が返ってきます。
vlookupでも同様です。

バージョンは7.2.2.2です。

目的はA+,A,B+,B,Cなどの文字列を1,2,3,4,5などに数値化することです。

1 Like

未検証の予想。

オプションでワイルドカードではなく正規表現が選択されている。

https://opengrok.libreoffice.org/xref/core/sc/README.md?r=ea5641ba#47
https://help.libreoffice.org/7.3/ja/text/scalc/guide/wildcards.html
https://opengrok.libreoffice.org/xref/core/sc/source/core/tool/interpr1.cxx?r=ec1c4c49#4919

1 Like

LibreOffice Hackfest Online #79」で参加者みんなで試した限りでは、himajinさんの言われるように「正規表現」が選ばれていた時に質問の動作になりました。

正規表現で「+」は 「直前の文字が1回以上繰り返す場合にマッチ」なので、「A」にマッチしているのだと思います。

メニューの[ツール]→[オプション]、[LibreOffice Calc]→[計算式]の「数式のワイルドカード」のところで「数式で正規表現を使用する」になっているためだと思います。「数式でワイルドカードを使用する」なら期待通りに動作しないでしょうか?

1 Like

お二方ありがとうございます
指摘された通りでした

予想外の解決法でしたがよくよく考えれば当然でした

3 Likes