会社名(法人組織名)から、法人格(「株式会社」など)とそれ以外を分ける方法について。
関数を使って数式でやるにしても、パワークエリでやるにしても、法人格のリストは用意したほうがいいです。
Microsoft365でやるなら、TEXTSPLITが使えるので数式のほうが断然簡単です。テーブル2に法人格リストを用意しているものとして、
数式の場合(Microsoft365/Web版):B3:=SUBSTITUTE([@法人組織名],[@組織名],"",1) C3:=CONCAT(TEXTSPLIT([@法人組織名],テーブル2[法人格]))
これでいいです。バージョンが古い場合は、C3の数式が少しややこしくなります。
数式の場合(Excel2007~2021):B3:=SUBSTITUTE([@法人組織名],[@組織名],"",1) C3:=LOOKUP(1,0/FIND(テーブル2[法人格],[@法人組織名]),テーブル2[法人格])
これをパワークエリでやる場合、上の TEXTSPLIT関数を参考にすればいいです。
パワークエリの場合:let ソース = テーブル1, 組織列の追加 = Table.AddColumn( ソース, "組織名", each Text.Combine( Splitter.SplitTextByAnyDelimiter( テーブル2[法人格] )([法人組織名]) ), type text ), 法人格名の追加 = Table.AddColumn( 組織列の追加, "法人格", each Text.Replace([法人組織名], [組織名], ""), type text )[[法人格], [組織名]] in 法人格名の追加
Splitter.SplitTextByAnyDelimiter関数を使って、法人格リストを区切文字にして分割→結合してやればいいです。やっていることはほぼ同じですね。