Excel関数 逆引き集 | 数式テンプレ生成 → TEXTJOIN

Excel
スポンサーリンク

概要

「大量のセル参照を並べた数式を作りたい」
「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 でつなぐだけで、
複雑な数式テンプレートを一瞬で生成できます。
ぜひ“数式生成の型”として活用してください。

Excel
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました