concat関数の使い方とExcel2013以前の古いエクセルで使う方法
Excel2016の2016年2月アップデートで、
textjoin関数とともに、concat関数が導入されています。
(Excel2016全てで使えるわけではなく、
一部の契約形態のみ使用できるようです)
concat関数とは?
concatenate関数の完全上位互換で、
=concat(A1:A5)
という
「セル範囲を指定した」書式にも対応する
concatenate関数というイメージです。
複数セルをまとめて結合したいとき、
concatenate関数では不便でしたが、
concat関数があれば、手間が省けます。
複数行かつ複数列の結合は注意
なお、
=concat(B2:C8)
というような、
複数行・複数列の指定をした場合には、
B2セル→C2セル→B3セル→C3セル→・・・
というような順番で、
文字列の結合がされますので、
望む順番で結合されるか、気をつけておいてください。
Excel2013、Excel2010、Excel2007等古いエクセルでは使えない
このconcat関数は、
最新のExcel2016でしか使えませんが、
これも、ifs関数と同じく、
古いExcelで使うためのユーザ定義関数を作ってみました。
Function CONCAT(ParamArray par())
Dim i As Integer
Dim tR As Range
CONCAT = ""
For i = LBound(par) To UBound(par)
If TypeName(par(i)) = "Range" Then
For Each tR In par(i)
CONCAT = CONCAT & tR.Value2
Next
Else
CONCAT = CONCAT & par(i)
End If
Next
End Function
上記ソースを
エクセルVBAの標準モジュールにコピペしてもらえれば、
concat関数と、ほぼ同じ動きをすると思います。