概要
「大量のセル参照を並べた数式を作りたい」
「IF文やSUM文の引数を、リストから自動生成したい」
「A1+A2+A3+… のような式を一気に作りたい」
「複雑なテンプレート数式を Excel に作らせたい」
こういう “数式テンプレート生成” に最強なのが TEXTJOIN 関数です。
TEXTJOIN は
「区切り文字を指定して、複数セルをまとめて結合する」
という関数で、数式の部品を Excel 上で組み立てるのに非常に向いています。
ここでは、初心者でもすぐ使えるように、
数式テンプレ生成に特化した TEXTJOIN の使い方 をテンプレートと例題つきで丁寧に解説します。
TEXTJOIN の基本
基本構文
=TEXTJOIN(区切り文字, 空白セル無視, 結合範囲)
例:
=TEXTJOIN("+", TRUE, A1:A5)
A1:A5 が
A1:A1
A2:A2
A3:A3
A4:A4
A5:A5
なら結果は
A1+A2+A3+A4+A5
これをそのまま数式として使うこともできますし、
別セルに貼り付けて「数式として確定」させることもできます。
パターン1:セル参照を大量に並べた式を作る
例:A1〜A10 を足し算する式を作りたい
普通に書くと
=A1+A2+A3+…+A10
と面倒ですが、TEXTJOIN を使えば一瞬です。
まず、B1 に次の式を入れて下へコピー:
="A" & ROW()
B1:B10 が
A1
A2
A3
…
A10
になります。
次に、どこかのセルで TEXTJOIN:
="=" & TEXTJOIN("+", TRUE, B1:B10)
結果:
=A1+A2+A3+…+A10
これをコピーして「値として貼り付け」すれば、
実際の数式として使えます。
パターン2:IF文の条件リストを自動生成する
例:A2:A5 に条件文字列があるとする
A2:B2>10
A3:C2=”OK”
A4:D2<5
A5:E2<>””
これらを AND でつないだ IF 文を作りたい場合、
=IF( AND( B2>10 , C2="OK" , D2<5 , E2<>"" ) , "OK" , "NG" )
のような式を作りたいとします。
まず、条件リストを TEXTJOIN でまとめます。
=TEXTJOIN(" , ", TRUE, A2:A5)
結果:
B2>10 , C2="OK" , D2<5 , E2<>""
これを IF 文に組み込むと:
="=IF( AND(" & TEXTJOIN(" , ", TRUE, A2:A5) & ") , ""OK"" , ""NG"" )"
結果:
=IF( AND(B2>10 , C2="OK" , D2<5 , E2<>"") , "OK" , "NG" )
これを貼り付ければ完成です。
パターン3:SUMIFS / COUNTIFS の条件式を生成する
例:A2:A5 に条件式があるとする
A2:B2,”>10″
A3:C2,”OK”
A4:D2,”<5″
A5:E2,”<>”””
これらを COUNTIFS にしたい場合、
=COUNTIFS(B2,">10", C2,"OK", D2,"<5", E2,"<>""")
のような形になります。
まず、A2:A5 に「範囲」「条件」を交互に並べておき、
TEXTJOIN でまとめます。
=TEXTJOIN(", ", TRUE, A2:A5)
結果:
B2,">10", C2,"OK", D2,"<5", E2,"<>"""
これを COUNTIFS に組み込むと:
="=COUNTIFS(" & TEXTJOIN(", ", TRUE, A2:A5) & ")"
結果:
=COUNTIFS(B2,">10", C2,"OK", D2,"<5", E2,"<>""")
パターン4:複雑な VLOOKUP / XLOOKUP のテンプレ生成
例:検索値・範囲・列番号をセルで管理する
B2:検索値
C2:範囲
D2:列番号
これらを使って
=VLOOKUP(B2, C2, D2, FALSE)
を自動生成したい場合、
="=VLOOKUP(" & TEXTJOIN(", ", TRUE, B2:D2) & ", FALSE)"
結果:
=VLOOKUP(B2, C2, D2, FALSE)
XLOOKUP でも同じ発想です。
パターン5:複数行の数式テンプレを一気に生成
TEXTJOIN は「改行」も扱えるので、
複数行のテンプレ式をまとめて作ることもできます。
例:A2:A4 に
A2:=SUM(B2:D2)
A3:=SUM(B3:D3)
A4:=SUM(B4:D4)
これらを「改行区切り」でまとめたい場合:
=TEXTJOIN(CHAR(10), TRUE, A2:A4)
結果:
=SUM(B2:D2)
=SUM(B3:D3)
=SUM(B4:D4)
これをコピーして貼り付ければ、複数行の数式を一気に作れます。
数式テンプレ生成の“型”まとめ
セル参照の大量結合
="=" & TEXTJOIN("+", TRUE, B1:B10)
IF文の条件生成
="=IF( AND(" & TEXTJOIN(" , ", TRUE, A2:A5) & ") , ""OK"" , ""NG"" )"
COUNTIFS の条件生成
="=COUNTIFS(" & TEXTJOIN(", ", TRUE, A2:A5) & ")"
VLOOKUP のテンプレ生成
="=VLOOKUP(" & TEXTJOIN(", ", TRUE, B2:D2) & ", FALSE)"
複数行の数式テンプレ生成
=TEXTJOIN(CHAR(10), TRUE, A2:A4)
例題
問題1
A1:A5 に
A1:A1
A2:A2
A3:A3
A4:A4
A5:A5
が入っています。
これらを使って=A1+A2+A3+A4+A5
という数式を TEXTJOIN で生成したいです。
式を書いてください。
="=" & TEXTJOIN("+", TRUE, A1:A5)
問題2
A2:A4 に
A2:B2>10
A3:C2=”OK”
A4:D2<5
が入っています。
これらを AND でつないだ IF 文=IF(AND(B2>10,C2="OK",D2<5),"OK","NG")
を TEXTJOIN で生成したいです。
式を書いてください。
="=IF(AND(" & TEXTJOIN(",", TRUE, A2:A4) & "),""OK"",""NG"")"
問題3
A2:A5 に COUNTIFS の「範囲」「条件」が交互に入っています。
これらを使って=COUNTIFS( … )
を TEXTJOIN で生成したいです。
式を書いてください。
="=COUNTIFS(" & TEXTJOIN(", ", TRUE, A2:A5) & ")"
問題4
B2:検索値
C2:範囲
D2:列番号
これらを使って=VLOOKUP(B2,C2,D2,FALSE)
を TEXTJOIN で生成したいです。
式を書いてください。
="=VLOOKUP(" & TEXTJOIN(", ", TRUE, B2:D2) & ", FALSE)"
問題5
A2:A4 に複数行の数式が入っています。
これらを改行区切りでまとめたいです。
TEXTJOIN を使った式を書いてください。
=TEXTJOIN(CHAR(10), TRUE, A2:A4)
TEXTJOIN は、
「Excelに数式を書かせるための最強の組み立てエンジン」 です。
セルに部品を並べて TEXTJOIN でつなぐだけで、
複雑な数式テンプレートを一瞬で生成できます。
ぜひ“数式生成の型”として活用してください。
