Excel関数 逆引き集 | 文字列を逆順に → TEXTJOIN+MID

Excel
スポンサーリンク

概要

「ABC を CBA にひっくり返したい」
「2026/01/05 を 50/10/6202 のように“文字単位”で逆順にしたい」
「文字列を1文字ずつバラして、順番を逆に並べ替えたい」

こういう “文字列を逆順にする” ときに使えるのが
TEXTJOIN + MID(+SEQUENCE) を組み合わせたテクニックです。

やっていることはシンプルで、

1文字ずつ取り出す → 逆順の順番で並べる → TEXTJOIN でつなぐ

という3ステップを、1本の数式でまとめています。


基本の考え方(1文字ずつ取り出して並べ直す)

文字列を逆順にするには、裏側でこんなことをしています。

1文字目 → 最後に
2文字目 → 後ろから2番目

最後の文字 → 先頭に

Excel の関数でこれをやるには、

元の文字列の長さを LEN で調べる
MID で「n文字目」を1文字ずつ取り出す
その「n」を、LEN から逆にカウントした順番にする
最後に TEXTJOIN で全部くっつける

という考え方になります。


新しいExcel版:SEQUENCEを使った逆順テンプレート

動的配列関数(SEQUENCE や TEXTJOIN)が使える新しいExcelなら、
次の1本で「文字列を逆順」にできます。

A2 に対象の文字列があるとします。

逆順にする標準形は次の式です。

=TEXTJOIN(
  "",
  TRUE,
  MID(
    A2,
    LEN(A2) - SEQUENCE(LEN(A2)) + 1,
    1
  )
)

1行で書くとこうなります。

=TEXTJOIN("",TRUE,MID(A2,LEN(A2)-SEQUENCE(LEN(A2))+1,1))

これをかみ砕いて説明します。

LEN(A2)
文字列の長さを求めます。例えば「ABC」なら 3 です。

SEQUENCE(LEN(A2))
1,2,3,… と「長さぶんの連番」を作ります。
「ABC」なら {1;2;3} になります。

LEN(A2) – SEQUENCE(LEN(A2)) + 1
この計算が“逆順の鍵”です。

「ABC」(長さ3)の例で考えると、

3 – {1;2;3} + 1 = {3;2;1}

となり、「3,2,1」という“逆向きの位置”の配列ができます。

MID(A2, その位置の配列, 1)
A2 から「3文字目」「2文字目」「1文字目」を1文字ずつ取り出します。
「ABC」なら {“C”;”B”;”A”} になります。

TEXTJOIN(“”, TRUE, …)
区切りなしで(””)、空白を無視しながら(TRUE)、
{“C”;”B”;”A”} をくっつけて「CBA」にします。

これで「文字列を逆順にする」ロジックが完成します。


具体例でイメージを掴む

例1:単純な英字

A2 に「ABC」が入っているとします。

式:

=TEXTJOIN("",TRUE,MID(A2,LEN(A2)-SEQUENCE(LEN(A2))+1,1))

LEN(A2) → 3
SEQUENCE(3) → {1;2;3}
LEN(A2)-SEQUENCE+1 → {3;2;1}

MID(A2, {3;2;1}, 1) → {“C”;”B”;”A”}
TEXTJOIN で → 「CBA」

結果:CBA


例2:日本語と英数字が混ざっている場合

A2 に「東京2026」が入っているとします。

式は同じです。

=TEXTJOIN("",TRUE,MID(A2,LEN(A2)-SEQUENCE(LEN(A2))+1,1))

「東 京 2 0 2 6」が1文字ずつ扱われるので、
結果は「6202京東」のように、完全に1文字単位で逆順になります。

“文字として”逆にしたいときの動きとしては、これで正しいです。


例3:日付の文字列

A2 に「2026/01/05」が文字列として入っている場合も同じです。

結果は「50/10/6202」です。
数字としてではなく、“文字列としてひっくり返している”ことを意識しておくと納得しやすいです。


旧バージョンExcelの場合の考え方(参考)

SEQUENCE や TEXTJOIN がない古いExcelでは、
同じことをやろうとするとかなり複雑な配列数式になってしまいます。

その場合は、

行列に 1,2,3,… と位置を用意する
MID で1文字ずつ取り出す
INDEX や他の関数と組み合わせて逆順に並び替える

といった工夫が必要で、初心者にはあまりおすすめできません。

実務的には、

Power Query を使う
VBA(ユーザー定義関数)で「文字列を逆順にする関数」を作る

などのほうがスッキリすることが多いです。

ここでは「TEXTJOIN+MID+SEQUENCE が使える環境での“王道パターン”」をしっかり押さえておく、くらいでOKです。


応用のヒント

この「逆順ロジック」は、

MID で「文字を1つずつ取り出して、配列として扱う」
取り出す順番(位置)を、式で自由にコントロールする

という考え方そのものがポイントです。

逆順にするだけでなく、

偶数番目の文字だけつなぐ
奇数番目だけを取り出す
特定の位置の文字だけを集める

といった応用にもつながっていきます。


問題1

A2 に「ABC」という文字列が入っています。
これを「CBA」に逆順にして表示したいです。
TEXTJOIN・MID・LEN・SEQUENCE を使った式を書いてください。

=TEXTJOIN("",TRUE,MID(A2,LEN(A2)-SEQUENCE(LEN(A2))+1,1))

問題2

A2 に「EXCEL」という文字列が入っています。
これを逆順にして「LEXCE」と表示したいです。
上と同じ考え方で式を書いてください。

=TEXTJOIN("",TRUE,MID(A2,LEN(A2)-SEQUENCE(LEN(A2))+1,1))

問題3

A2 に「東京2026」という文字列が入っています。
これを完全に逆順にして表示したいです。
TEXTJOIN+MID+SEQUENCE を使った式を書いてください。

=TEXTJOIN("",TRUE,MID(A2,LEN(A2)-SEQUENCE(LEN(A2))+1,1))

問題4

A2 に「2026/01/05」という文字列が入っています。
これを文字単位で逆順にした結果を表示する式を書いてください。
(結果は「50/10/6202」になります)

=TEXTJOIN("",TRUE,MID(A2,LEN(A2)-SEQUENCE(LEN(A2))+1,1))

問題5

A2 に任意の文字列が入っています。
その内容を“文字単位で逆順”に並べ替えて表示する、汎用的なテンプレート式を書いてください。

=TEXTJOIN("",TRUE,MID(A2,LEN(A2)-SEQUENCE(LEN(A2))+1,1))

文字列の逆順は、いかにも「プログラミング的な処理」ですが、
Excel でも TEXTJOIN+MID+SEQUENCE という組み合わせで、
きれいに1行の数式として表現できます。

この型をそのまま覚えてしまえば、
「文字列を分解して再構成する」という一段上のテキスト処理にも一気に踏み込めるようになります。

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