300人分の名簿が、「氏名」の1列にまとまっている。宛名ラベルや社内システムへの取り込みのために、姓と名を別の列にしてほしい、と頼まれた。1行ずつ打ち直すと半日かかりそうです。
Excelの「フラッシュフィル」は、1〜2行ぶんの手本を見せると、残りを同じ規則で埋める機能です。姓と名を分けるだけでなく、住所や会社名と部署名をつなげる作業にも使えます。ただし、いつでも当たるわけではありません。うまくいかないときの切り替え先である区切り位置と、関数の使える版もあわせて説明します。
手本を1〜2行打って Ctrl+E を押す
Microsoft のページによると、フラッシュフィルは、データの法則性を検知して自動的に入力する機能です。例として、1つの列から姓と名を切り離すこと、2つの列から姓と名を結合することが挙がっています。
使い方は2通りあります。
打ちながらプレビューを受け入れる
- 隣の列の1行目に、完成形を打って Enter キーを押す。
- 2行目を打ち始める。Excel が規則を見つけると、残りの行のプレビューが出る。
- プレビューのとおりでよければ、Enter キーを押す。
Ctrl+E か [データ] タブから呼び出す
プレビューが出ないときは、手本を打ったセルの下のセルを選んで Ctrl+E を押します。メニューから呼ぶなら、[データ] タブの [フラッシュ フィル] です。どちらも Microsoft のページに載っています。
手本は、1行だけで足りることもあれば、2〜3行要ることもあります。1行で規則が伝わらないときは、種類の違う行をもう1行足します。
自動のオンとオフ
設定がオフになっていると、プレビューが出ません。Microsoft のページには、[詳細設定] の [編集オプション] で、自動的にフラッシュ フィルを入れる項目にチェックを入れる、と書かれています。ページの表記は [ツール] から始まっていますが、Windows の Excel では [ファイル] の [オプション] の中にあります。
反対に、打つたびにプレビューが出て邪魔なときは、同じ項目のチェックを外します。チェックを外しても、Ctrl+E と [フラッシュ フィル] で手動で実行できます。
対応する版
| 版 |
フラッシュフィル |
| Excel for Microsoft 365 |
載っている |
| Excel 2024、2021、2019、2016(Windows) |
載っている |
| Excel 2024、2021(Mac) |
載っている |
Microsoft のページの適用先は上の表のとおりです。それ以前の版は載っていないため、使えるかどうかは手元で試してください。
氏名を姓と名に分ける
名簿の氏名が、姓と名の間を全角スペースで区切った形で入っているとします。
| 行 |
A列(氏名) |
B列(姓の手本と結果) |
C列(名の手本と結果) |
| 2 |
山田 太郎 |
山田 |
太郎 |
| 3 |
佐藤 花子 |
佐藤 |
花子 |
| 4 |
鈴木 一郎 |
鈴木 |
一郎 |
| 5 |
高橋 美咲 |
高橋 |
美咲 |
B2に「山田」、C2に「太郎」と打ちます。B3の「佐」まで打つと、残りの行に「佐藤」「鈴木」「高橋」のプレビューが出ます。Enter で受け入れ、C列も同じように入れます。
フラッシュフィルの手本の打ち方早見と使える版(例は架空)作成: 編集部 / 出典: Microsoft サポート「Excel でフラッシュ フィルを使用する」
氏名の間にスペースがないとき
「山田太郎」のように、姓と名がくっついている名簿は別です。姓が2文字の人も3文字の人もいるので、どこで切るかが文字の並びから決まりません。手本を2行見せても、「先頭の2文字」のような規則と受け取られるおそれがあります。
こうした名簿は、フラッシュフィルでも区切り位置でも、正しく分ける方法がありません。元のデータに、境を示す材料(スペースや別の列の姓)があるかを先に探します。なければ、境が分かる人に確かめながら1行ずつ入れます。
つなげる 姓と名・住所・会社名と部署名
分けるより、つなげるほうが失敗しにくい作業です。境目を探さず、すでに別の列にある文字を並べるだけだからです。
| 場面 |
元の列 |
手本(1行目) |
残りの行に入る結果 |
| 姓と名をつなぐ |
山田 / 太郎 |
山田 太郎 |
佐藤 花子、鈴木 一郎など |
| 住所をつなぐ |
大阪府 / 北斗市 / 中央町2-5-8 |
大阪府北斗市中央町2-5-8 |
残りの行の住所 |
| 会社名と部署名 |
株式会社青葉商事 / 総務部 |
株式会社青葉商事 総務部 |
残りの行の会社名と部署名 |
Microsoft のページの例も、名の列と姓の列から、フルネームの列を入れるものです。
手本には、つなぎ方の癖がそのまま出ます。姓と名の間に全角スペースを入れて打てば、全角スペースの結果になります。会社名と部署名の間にスペースを入れるか、改行を入れるかも、手本のとおりです。住所に使う市区町村と番地の間のハイフンの種類も、手本で決まります。
メールアドレス・電話番号・日付の整形
氏名と住所以外にも、規則が決まっている作業なら使えます。
| 作業 |
元 |
手本 |
結果の例 |
| メールアドレスの @ の前を取り出す |
yamada.taro@example.com |
yamada.taro |
sato.hanako、suzuki.ichiro |
| 電話番号にハイフンを付ける |
0355500101 |
03-5550-0101 |
残りの行の番号 |
| 電話番号のハイフンを外す |
03-5550-0101 |
0355500101 |
残りの行の番号 |
| 文字の日付の形をそろえる |
2026年10月5日 |
2026-10-05 |
残りの行の日付 |
電話番号では、先頭の0が消えて結果が変わることがあります。0で始まる番号が文字として入っているか、先に確かめます。CSVで0が消える問題は、CSVをExcelで開くと文字化け・0が消えるときの直し方 取り込みと保存の手順で説明しています。
日付は注意が必要です。Excel が日付として持っているセルなのか、「2026年10月5日」という文字なのかで、結果の扱いが変わります。結果の列を並べ替えや計算に使う前に、日付として動くかを試します。
思ったとおりに入らないときの4つの原因
手本が足りない
1行だけでは、Excel が「何をしたいか」を決められません。姓の文字数が全員同じ名簿で、手本が「山田」だけなら、「先頭の2文字」と受け取られるかもしれません。姓が3文字の人の行を、2つ目の手本にします。
例外が混ざっている
名簿の中に、規則に合わない行が数行あると、その周辺の結果が崩れます。
- 外国籍の人の名前が「ジョン・スミス」のように中黒で区切られている
- 肩書きや「様」が氏名に付いている
- 姓と名の間のスペースが、全角と半角で混ざっている
例外は、先に別の列へ避けるか、並べ替えて固めておきます。手本を打つのは、規則に合う行だけの塊の中で行います。
元を直しても、結果が変わらない
関数なら、元のセルを直せば結果も変わります。名簿を何度も更新する仕事には、関数が向いています。
結果を目で確かめていない
フラッシュフィルは、間違った規則でも、それらしい結果を入れます。エラーは出ません。そのため、次の3点を確かめます。
100行以上の名簿は、行数が合っているかも見ます。結果の列の最終行が、元の最終行と同じ行にあるかを確かめます。
規則が見つからないときは区切り位置に切り替える
姓と名の間にスペースがあるなら、フラッシュフィルの代わりに区切り位置の機能が使えます。区切り位置は、決めた区切り文字で機械的に分けるので、例外がなければ、結果がぶれません。
氏名を分けるときの、フラッシュフィルから区切り位置・関数への切り替え作成: 編集部 / 出典: Microsoft サポート「区切り位置指定ウィザードを使用して、テキストをさまざまな列に分割する」
区切り位置の手順
- 分けたい列(氏名の列)を選ぶ。
- [データ] タブの [データ ツール] にある [区切り位置] を選ぶ。
- ウィザードの最初の画面で、[区切り記号付き] を選んで [次へ] を選ぶ。
- 区切り文字を選ぶ。Microsoft のページの例は、コンマとスペース。データのプレビューで、分かれ方を確かめる。
- [次へ] に進み、[表示先] で、分けた結果を出す場所を指定する。
- [完了] で実行する。
上書きに気をつける
区切り位置は、分けた結果を、選んだ列の右の列へ入れます。Microsoft のページには、選んだ列の右に十分な空の列を用意し、隣の列のデータが上書きされないようにする、と書かれています。必要なら、空の列を挿入します。
氏名の右に電話番号の列がある名簿は、先に空の列を2つ挿入してから分けます。[表示先] を、別のシートの空いている場所にする方法もあります。
全角スペースの扱い
区切り文字には、スペースやコンマのほか、自分で決めた文字も指定できます。ただし、全角スペースが [スペース] の項目で分かれるかは、Microsoft のページに書かれていません。データのプレビューで、分かれ方を必ず見てください。
プレビューで分かれないときは、全角スペースを半角に替えた列を、先に作ります。
=SUBSTITUTE(A2," "," ")
この式は、A2の全角スペースを半角のスペースに替えます。式を入れた列を、区切り位置で半角スペースによって分けます。SUBSTITUTE 関数は、Microsoft のページで、文字列の中の指定した文字を、別の文字に置き換える関数として説明されています。
文字数で区切る方式(固定長)もウィザードにはありますが、Microsoft の日本語のページに手順がないため、この記事では扱いません。
フラッシュフィルと区切り位置の使い分け
| 比べる点 |
フラッシュフィル |
区切り位置 |
| 規則の決め方 |
手本から Excel が見つける |
区切り文字を自分で選ぶ |
| 例外が混ざる名簿 |
結果が崩れやすい |
区切り文字のない行は分からない |
| 結果の出る場所 |
手本を打った列 |
選んだ列の右(表示先で変更) |
| 元の列 |
変わらない |
上書きされることがある |
| 向く作業 |
つなげる・形をそろえる |
区切り文字がある列を分ける |
関数で分ける・つなげる 使える版
名簿を何度も更新するなら、関数を入れておくと、元を直すだけで結果も変わります。使える版は、関数ごとに違います。
| 作業 |
関数 |
使える版(Microsoft のページの適用先) |
| つなげる |
&(演算子)、CONCATENATE |
CONCATENATE のページの適用先は 2016、2019、2021、2024、Microsoft 365。& は同じページで、関数を使わない書き方として紹介されている |
| つなげる |
CONCAT |
2016、2019、2021、2024、Microsoft 365 |
| 区切りを入れてつなげる |
TEXTJOIN |
2019、2021、2024、Microsoft 365(2016 は載っていない) |
| 分ける(前を取り出す) |
LEFT と SEARCH |
2016 以降 |
| 分ける(前・後を取り出す) |
TEXTBEFORE、TEXTAFTER |
2024、Microsoft 365(2021 は載っていない) |
| 分ける(複数列に) |
TEXTSPLIT |
2024、Microsoft 365(2021 は載っていない) |
氏名を姓と名に分ける式の例を、版ごとに示します。
2016・2019・2021 : =LEFT(A2,SEARCH(" ",A2)-1)
=RIGHT(A2,LEN(A2)-SEARCH(" ",A2))
2024・365 : =TEXTBEFORE(A2," ")
=TEXTAFTER(A2," ")
=TEXTSPLIT(A2," ")
つなげるときは、=A2&" "&B2 のように書きます。区切りを入れて、空のセルを飛ばすなら、=TEXTJOIN(" ",TRUE,A2:B2) です。TEXTJOIN の2つ目の引数を TRUE にすると、空のセルは無視されます。
個人の名簿を扱うときの注意
氏名や住所が入った名簿は個人情報です。作業用にコピーしたファイルを、そのまま置かないようにします。
- 作業が終わって確認したら、作業用のコピーを消す。
- 作業中のファイルを、メールや共有フォルダにそのまま入れない。
保管と共有のくわしい扱いは、情報システムの担当者に相談します。
名簿の氏名を分ける前に確かめること
300行を頼まれた日は、次の順に進めます。
- 名簿のファイルを複製し、複製のほうで作業する。
- 氏名の間が、スペースで区切られているかを見る。ないなら、フラッシュフィルも区切り位置も使えない。
- 区切りが全角か半角かを確かめる。混ざっていれば、SUBSTITUTE で先にそろえる。
- 区切りがそろっていれば、区切り位置で分ける(結果を入れる右の列は、先に空けておく)。
- つなげる作業や、形をそろえる作業は、フラッシュフィルで入れる。手本は2行打つ。
- 先頭・真ん中・最後の数行を、元と並べて見る。
- 更新が続く名簿なら、関数に置き換える。
最初から全行を処理しないのが、安全に進めるこつです。まず10行で試し、結果を見てから、全行へ広げます。