ExcelにTEXTSPLIT関数等が追加されるようです

 再度のExcelネタです。
 ちょっと前のことですが、ExcelにTEXTSPLIT関数をはじめとする文字列操作関数及びVSTACK/HSTACK関数をはじめとする配列操作関数、計14種が追加されることとなりOffice Insiderでテスト中とのニュースがありました。

forest.watch.impress.co.jp

 特に文字列の分割と配列の結合は長年待望されていたもので、なぜスピルと共に導入しなかったのか理解に苦しむほどですが、まあいいでしょう。


 とりあえずInsiderが使えるセカンド機で一部の関数をほんの少しいじってみましたので感想を一言。

  • TEXTBEFORE/TEXTAFTER……文字列中の、指定した区切り文字列より前/後の文字列を出力する(マッチする区切り文字列のうちn番目のものを指定可能)。
     つまり「文字列のうち最初の~より前」とか「最後の~より後」といった抽出を実現できます。ただし出力が明らかにおかしかったです。2バイト文字未対応だったのかもしれません。
  • TEXTSPLIT……区切り文字で文字列を分割して各セルに表示する。
     文字列を横方向に分割するための区切り文字と改行を行うための区切り文字をそれぞれ設定できるので、2次元の表を出力できます。各行の列数が一致しない部分はN/Aで埋められるものの代替値が指定可能です。さんざん待たされただけあってとても強力です。ただしGoogleスプレッドシートと違い、複数の文字を区切り文字として指定することはできない模様です。引数省略で1文字ずつ分割してくれればいいなあ。
    (追記:複数指定はどうやらできるようです)
  • VSTACK/HSTACK……縦/横方向に配列を連結する。
     ついに関数でUNIONできる日がやってまいりました。ちょっと前にMAKEARRAY関数が出てきたときは「まさかこれで全部やれと……?」と思いました(理屈の上では任意の行列が作れるので)が、その必要はなかったようです。しかも列数/行数が一致しなくても連結できます(左寄せ/上寄せして足りないセルはN/A埋め)。
  • TOROW/TOCOL……2次元の配列を1行/1列に並べ替える。
     GoogleスプレッドシートのFLATTENとその転置に相当します。TOROW=FLATTENだと思い込み堂々と間違えました;-o-)これで横→縦変換アンピボットし放題。のはず。
  • WRAPROWS/WRAPCOLS……1次元の配列を2次元に並べ替える(行優先/列優先)。
     Googleスプレッドシートが先に実現するものと思っていましたが、このままだとExcelが先行しそうです。と見せかけて一般リリース直前にGoogleがこっそりWRAP関数なんてのを展開するとみましたがどうでしょう。


 いずれにせよSPLITという全人類の願いが叶ってとても良かったです。いまテストしているということは一般提供は秋とか冬になるんでしょうけども、気長に待ちたいと思います。