Excel

【Excel】エクセルで文字の順番を入れ替える方法(セル内文字・関数)

エクセルで文字を逆順にする方法1【TEXTJOIN関数とSEQUENCE関数】 - 数式を入力するセル
当サイトでは記事内に広告を含みます
いつも記事を読んでいただきありがとうございます!!! これからもお役に立てる各情報を発信していきますので、今後ともよろしくお願いします(^^)/

Excelで氏名、商品コード、文字列などを扱っていると、セル内の文字の順番を逆にしたい場面があります。

たとえば「ABCDE」を「EDCBA」にしたい場合や、「東京都」を「京都東」のように一文字ずつ反転したい場合です。

Excelには文字列をそのまま逆順にする専用関数がありませんが、MID関数、LEN関数、SEQUENCE関数などを組み合わせることで、セル内の文字を自動で並べ替えられます。

なお、文字単位で逆順にする方法と、姓と名などの語句単位で順番を変更する方法では、適した数式が異なります。

この記事で分かる主な方法

・セル内の文字を一文字ずつ逆順にする方法

・Microsoft 365で使える動的配列関数の使い方

・古いExcelでも利用しやすい補助列による並べ替え

・区切り文字を基準に語句の順番を入れ替える方法

サンプルでは、1行目に見出しがあり、2行目以降にデータが入力されているものとして説明します。

それでは、セル内文字の順番を入れ替える具体的な方法を確認していきましょう。

 

エクセルで文字を逆順にする方法1【TEXTJOIN関数とSEQUENCE関数】

それではまず、Microsoft 365やExcel 2021以降で使いやすい、関数だけでセル内文字を逆順にする方法について解説していきます。

文字列 逆順の結果
ABCDE EDCBA
Excel lecxE
東京都 京都東

入力する数式

=TEXTJOIN(“”,TRUE,MID(A2,SEQUENCE(LEN(A2),,LEN(A2),-1),1))

 

数式を入力するセル

最初に、逆順にしたい元の文字列をA2セルへ入力し、結果を表示するB2セルを選択します。

A2セルに「ABCDE」が入力されている場合、B2セルに数式を入力すると「EDCBA」が表示されます。

エクセルで文字を逆順にする方法1【TEXTJOIN関数とSEQUENCE関数】 - 数式を入力するセル

数式バーに次の式を入力して、Enterキーを押してください。

=TEXTJOIN(“”,TRUE,MID(A2,SEQUENCE(LEN(A2),,LEN(A2),-1),1))

この数式は、元の文字列の末尾から先頭へ向かって、一文字ずつ取り出して結合する仕組みです。

文字数が異なっていても自動的に対応するため、固定文字数のデータだけでなく、長さがばらばらの文字列にも利用できます。

空白を含む文字列も対象になりますが、空白も一文字として扱われる点には注意しましょう。

 

LEN関数とSEQUENCE関数の役割

続いては、数式の中で使われている関数の役割を確認していきます。

LEN関数は、セル内にある文字数を数える関数です。

たとえばA2セルが「ABCDE」であれば、LEN(A2)の結果は5になります。

SEQUENCE関数は連続した数値を配列として作成する関数です。

SEQUENCE(LEN(A2),,LEN(A2),-1)では、文字数の5から始めて、1ずつ減る5、4、3、2、1という番号を作成します。

エクセルで文字を逆順にする方法1【TEXTJOIN関数とSEQUENCE関数】 - LEN関数とSEQUENCE関数の役割

この番号は、文字列の何文字目を取り出すかを指定する位置番号です。

開始位置を最後の文字から逆向きに並べることで、文字列を反転できます。

元データを変更すると数式の結果もすぐ更新されるため、手作業で並べ替えるより入力ミスを抑えやすい方法です。

 

MID関数とTEXTJOIN関数の組み合わせ

続いては、文字を取り出して結合する処理を確認していきます。

MID関数は、指定した位置から必要な文字数だけ文字列を抜き出す関数です。

MID(A2,5,1)ならA2セルの5文字目を1文字取り出すため、「E」が返されます。

SEQUENCE関数で作った5、4、3、2、1をMID関数に渡すと、「E」「D」「C」「B」「A」が順番に取り出されます。

TEXTJOIN関数は、複数の文字列を指定した区切り文字でつなげる関数です。

数式の先頭にある””は区切り文字なしで連結する指定なので、結果は「E,D,C,B,A」ではなく「EDCBA」になります。

TRUEは空白の要素を無視する設定であり、文字列の途中に不要な空欄が混ざるケースにも役立ちます。

【操作のポイント】数式はB2セルに入力し、元データであるA2セルは上書きしないようにしましょう。

 

エクセルで文字を逆順にする方法2【補助列とMID関数】

続いては、SEQUENCE関数が使えないExcelでも対応しやすい、補助列を使う方法を確認していきます。

A列 元の文字列 B列 位置番号 C列 抽出文字
ABCDE 5 E
4 D
3 C

補助列で使う代表的な数式

=LEN($A$2)-ROW(A1)+1

=MID($A$2,B2,1)

 

逆順の位置番号を作る手順

最初に、A2セルへ逆順にしたい文字列を入力します。

次にB2セルへ、=LEN($A$2)-ROW(A1)+1 と入力してください。

「ABCDE」の場合、B2セルには5が表示されます。

エクセルで文字を逆順にする方法2【補助列とMID関数】 - 逆順の位置番号を作る手順

B2セル右下のフィルハンドルを下へドラッグすると、5、4、3、2、1と位置番号を減らしながら表示できます。

ROW(A1)は1、ROW(A2)は2というように、参照位置に応じて連番を作る部分です。

A2セルの参照にドル記号を付けることで、下方向へコピーしても元の文字列を固定できます。

このような絶対参照は、補助列を使う数式では特に重要な考え方です。

 

MID関数で一文字ずつ取り出す手順

続いては、作成した位置番号を利用して文字を取り出していきます。

C2セルに、=MID($A$2,B2,1) と入力します。

B2セルが5なので、C2セルにはA2セルの5文字目である「E」が表示されます。

エクセルで文字を逆順にする方法2【補助列とMID関数】 - MID関数で一文字ずつ取り出す手順

C2セルを下方向へオートフィルすると、B列の番号に合わせて「D」「C」「B」「A」と順番に抽出されます。

MID関数の3番目の引数である1は、一度に取り出す文字数です。

二文字ずつ確認したい場合は2に変更できますが、文字列を完全に逆順にする目的では1を指定するのが基本です。

補助列を使う方法は途中の計算内容を目で確認できるため、関数に慣れていない場合でも修正しやすい特徴があります。

 

CONCATENATE関数による文字列の結合

続いては、抽出した文字を一つのセルへ戻す考え方を確認していきます。

文字数が少ない場合は、=C2&C3&C4&C5&C6 のようにアンパサンドでつなげると「EDCBA」を作れます。

ExcelのバージョンによってはCONCAT関数やTEXTJOIN関数も利用できます。

たとえばC2からC6までに抽出文字が並んでいるなら、=TEXTJOIN(“”,TRUE,C2:C6)で一つの文字列にまとめられます。

古いバージョンでTEXTJOIN関数が使えないときは、文字数に合わせてアンパサンドで連結しましょう。

処理が終わった後に結果だけを残したい場合は、完成したセルをコピーして値として貼り付けます。

【操作のポイント】補助列を削除する前に、完成した逆順文字列を値貼り付けしておくと結果を保持できます。

 

エクセルで文字を逆順にする関数【数式バーとオートフィル】

続いては、数式を入力してオートフィルで複数行へ展開する操作を確認していきます。

A列 変換前 B列 変換後
ABCD DCBA
12345 54321
東京支店 店支京東
文字列変換.xlsx – Excel − □ ×
ファイル ホーム 挿入 ページ レイアウト 数式 データ 校閲 表示
B
I
罫線
中央揃え
Σ
B2fx=TEXTJOIN(“”,TRUE,MID(A2,SEQUENCE(LEN(A2),,LEN(A2),-1),1))
A B C
1 変換前 変換後
2 ABCDE EDCBA
3 Excel lecxE
B2に数式を入力 → 下へコピー
➤

 

数式をB2セルへ入力する操作

まず、B2セルをクリックして選択します。

数式バーまたはセル内へ、=TEXTJOIN(“”,TRUE,MID(A2,SEQUENCE(LEN(A2),,LEN(A2),-1),1)) を入力します。

Enterキーを押すと、A2セルの「ABCDE」がB2セルで「EDCBA」に変換されます。

数式のA2は相対参照なので、下へコピーするとA3、A4のように自動で参照先が変化します。

元のデータと変換結果を別列に並べると、変換ミスがないかを比較しやすくなります。

 

フィルハンドルによる数式のコピー

続いては、同じ数式を複数行へコピーする操作を確認していきます。

B2セルを選択すると、右下に小さな四角形のフィルハンドルが表示されます。

その四角形を下方向へドラッグすると、数式が下のセルにもコピーされます。

隣のA列に連続データがある場合は、フィルハンドルをダブルクリックする方法も便利です。

コピー後のB3セルでは数式内のA2がA3へ自動変更されるため、行ごとに数式を書き直す必要はありません。

ただし、途中に空白行があるとダブルクリックでのオートフィルが期待どおりに進まないことがあります。

 

数式結果を値へ置き換える操作

続いては、関数の結果を固定した文字列として残す操作を確認していきます。

数式の入ったB列を選択してコピーし、同じ場所で右クリックします。

表示された貼り付けのオプションから、値の貼り付けを選択してください。

これにより、数式ではなく変換後の文字だけがセルへ残ります。

元データを後から編集しても結果を変えたくない場合は、値貼り付けが適しています。

反対に、元データの変更を変換結果へ反映したい場合は、数式を残したままにしましょう。

【操作のポイント】オートフィル後は、数式バーを確認して参照セルが各行に対応しているかを確認しましょう。

 

区切り文字を基準にした語句の入れ替え

続いては、文字を一文字ずつ反転するのではなく、区切り文字で分かれた語句の順番を入れ替える方法を確認していきます。

変換前 変換後
山田 太郎 太郎 山田
営業部-東京支店 東京支店-営業部
商品A,赤 赤,商品A

 

スペースで区切られた氏名の順番

氏名が「姓 半角スペース 名」の形式なら、スペースの位置を見つけて前後を入れ替えられます。

=TEXTAFTER(A2,” “)&” “&TEXTBEFORE(A2,” “)

A2セルに「山田 太郎」がある場合、結果は「太郎 山田」になります。

TEXTBEFORE関数は指定した区切り文字より前、TEXTAFTER関数は後ろの文字列を取り出す関数です。

文字単位の逆順ではなく、意味のまとまりを保って前後を交換したいときに適した方法です。

全角スペースが使われているデータでは、数式内の半角スペースを全角スペースに置き換えてください。

 

ハイフンやカンマで区切られた項目

続いては、ハイフンやカンマを境目として項目の順番を変更するケースを確認していきます。

「営業部-東京支店」を入れ替える場合は、=TEXTAFTER(A2,”-“)&”-“&TEXTBEFORE(A2,”-“) と入力します。

カンマ区切りなら、数式内のハイフンをカンマへ変更するだけです。

区切り文字を結果にも残すため、アンパサンドで区切り記号をもう一度つなげています。

データ内の区切り記号を正確に確認してから数式を書くと、意図しない位置で分割されるトラブルを防げます。

複数のハイフンが含まれる文字列では、最初のハイフンを基準にするか、最後のハイフンを基準にするかを事前に決めましょう。

 

複数項目の並び替え

続いては、三つ以上の項目が一つのセルに入っているケースを確認していきます。

Microsoft 365ではTEXTSPLIT関数で文字列を分割し、必要な順番でTEXTJOIN関数を使って再結合できます。

=TEXTJOIN(“-“,TRUE,INDEX(TEXTSPLIT(A2,”-“),{3,2,1}))

この式は「A-B-C」を「C-B-A」のように項目単位で逆順にする考え方です。

項目数が毎回同じでない場合は、データの形式を整えてから処理するほうが安全かもしれません。

【操作のポイント】文字列の区切りがスペース、カンマ、ハイフンのどれかを統一してから数式を適用しましょう。

 

文字順を入れ替える際の注意点

続いては、文字の順番を入れ替える際に確認したい注意点を確認していきます。

確認項目 注意する内容
先頭のゼロ 文字列として保持する
全角と半角 別の文字として扱われる
記号と空白 反転後の位置を確認する

 

数字と先頭ゼロの扱い

「00123」のような番号を逆順にするときは、セルの表示形式を文字列にしておくことが大切です。

数値として入力すると、先頭のゼロが消えて「123」と認識される場合があります。

文字列として入力するには、入力前にセルの表示形式を文字列へ変更するか、先頭にアポストロフィを付けます。

管理番号、郵便番号、社員コードなどは数値ではなく文字列として扱う場面が多いため、変換前に形式を確認しましょう。

反転後に計算へ使う予定がある場合は、文字列から数値へ戻す必要があるかも確認しておくと安心です。

 

空白と記号を含む文字列

文字列を一文字ずつ逆順にすると、空白、ハイフン、スラッシュ、括弧なども一緒に移動します。

たとえば「AB-12」を反転すると「21-BA」になります。

見た目だけを整えたい場合は、文字を反転する前にSUBSTITUTE関数で不要な空白を削除する方法もあります。

=SUBSTITUTE(A2,” “,””)

ただし、氏名や住所のように空白自体に意味があるデータでは、削除前にコピーを残しておきましょう。

記号も文字数として数えられるため、想定した結果と異なるときは元データに含まれる記号を確認することが近道です。

 

結合セルと数式エラー

結合セルを含む範囲では、オートフィルやコピーがうまく実行できないことがあります。

可能であれば結合を解除し、1セルに1項目ずつ入力された表へ整えてから処理しましょう。

TEXTJOINやSEQUENCEが使えないというエラーが出る場合は、Excelのバージョンを確認してください。

古いExcelでは、補助列とMID関数を使う方法へ切り替えると対応できることがあります。

関数名の後ろにエラーが出る場合は、関数の入力ミスよりもExcelの対応バージョンが原因の可能性があります。

【操作のポイント】大量データを変換する前に、数行のコピーで数式結果と文字列形式を必ず確認しましょう。

 

まとめ エクセルのセル内文字の順番を入れ替える方法

エクセルでセル内文字の順番を入れ替える方法についてまとめます。

Microsoft 365やExcel 2021以降では、TEXTJOIN関数、MID関数、SEQUENCE関数を組み合わせることで、文字数が異なる文字列でも一文字ずつ自動で逆順にできます。

基本となる数式は、=TEXTJOIN(“”,TRUE,MID(A2,SEQUENCE(LEN(A2),,LEN(A2),-1),1))です。

SEQUENCE関数が使えない環境では、LEN関数とROW関数で位置番号を作り、MID関数で文字を抜き出す補助列方式が役立ちます。

姓と名、部署名と支店名のように語句単位で入れ替えたい場合は、TEXTBEFORE関数とTEXTAFTER関数を使う方法が便利です。

変換前には、先頭ゼロ、空白、記号、全角と半角、セルの表示形式を確認しましょう。

数式で結果を確認した後、必要に応じて値貼り付けを行えば、元データに影響されない文字列として保存できます。

目的に合った関数と操作を選び、入力作業の効率化につなげていきましょう。