CONCATENATE
希望どおりにテキスト セルを結合する数式を作成するのに苦労しています。連結したいフィールドは 5 つあります。Title、Forename、RegnalNumber、Surname、Alias の順です。私は正規表現の専門家ではないので、フォーマットが不十分なのは許してください。しかし、これは私が達成しようとしていることを大まかに表現したものです。
(title)? (forename) (regnalnumber)? (surname)?, (alias).
null にできない唯一のフィールドは forename フィールドですが、値が "?" である場合もあります。この場合、連結で何も出力しないでください。つまり、空白として扱う必要があります。次のテスト ケースが、私が達成しようとしている出力を示していることを願っています。右側の出力は、次のようになります。
| Title | Forename | RN | Surname | Alias | CONCATENATE |
+--------+----------+----+-----------+--------------+---------------------------------------+
| Ser | Jaime | | Lannister | Kingslayer | Ser Jaime Lannister, Kingslayer |
| | Pate | | | | Pate |
| Lord | ? | | Vance | | Lord Vance |
| King | Aerys | II | Targaryen | The Mad King | King Aerys II Targaryen, The Mad King |
| Lord | Jon | | Arryn | | Lord Jon Arryn |
| | Garth | | | Of Oldtown | Garth, Of Oldtown |
この連結を機能させるために何年も実験してきましたが、うまくいきませんでした。これは、わかりやすいようにセル参照をフィールド名に置き換えた現在の数式です。
=CONCATENATE(IF(Title<>"",Title&" ",""),IF(AND(Forename<>"",Forename<>"?"),Forename,""),IF(RN<>""," "&RN,""), IF(OR(AND(Forename<>"", Forename<>"?"), Surname<>"", RN<>""), " ",""), IF(Surname<>"",Surname,""),IF(AND(Alias<>"",OR(Alias<>"",AND(Forename<>"", Forename<>"?"),Surname<>"")),", "&Alias, Alias))
うまくいかないケースが 1 つあります。Surname と RN が null で、Forename と Alias が null でない場合です。たとえば、Forename がGarth
で、Alias がOf Oldtown
の場合、連結の出力: Garth , Of Oldtown
. タイトルが null でない場合も同様です。コンマの前にスペースを入れてはいけません。
期待どおりに機能するように、この式を修正するのを手伝ってもらえますか? 単純化する方法を見つけることができれば、なおさらです。私はおそらくこれをかなり複雑にしすぎていることを知っています。Excel ではなく、LibreOffice Calc 4.3.1.2 を使用しています。