フラッシュフィルとは、Excelが入力されたデータから規則性を自動的に認識して実行してくれる機能です。Excel2013の新機能です。
これまで、関数や区切り位置指定ウィザード使って文字列を結合したり、抜き出したりしていたことが、ボタン1つで可能になりました。
複数のデータがあって並び方のパターンが統一されていれば、データを分離したり結合したりすることができます。
分離や結合のルールを1行のみ入力すれば、Excelがそのパターンを自動認識して処理してくれます。
いくつかの方法があります。以下は、試した結果です。
この記事の目次
3つのセルの値を接合した値を入力
E列にB列、C列、D列のセルの値を接合したい場合、セル[E2]に結合した値を入力します。
直接入力してもいいですし、セルの文字列をコピーして、貼り付けしてもOKです。
表に隣接するセルで実行します。また、必ず1つの列の1つのセルを選択します。
フラッシュフィルの実行
確定した後、セル[E2]を選択した状態で[データ]タブの[データツール]グループにある[フラッシュフィル]をクリックします。
[フラッシュフィル]のポップヒントには以下のように記されています。
フラッシュフィル(Ctrl+E)
値を自動的に埋め込みます。結果として使いたいサンプルをいくつか入力したら、値を埋め込みたい列のセルをアクティブにした状態にしておきます。
[フラッシュフィル]のボタンをクリックしただけで、一瞬で隣のD列の最終行まで表示されます。
参考[フラッシュフィル]は[ホーム]タブの[編集]グループの[フィル]ボタンのメニューの中にもあります。
フラッシュフィルのショートカットキー
フラッシュフィルのショートカットキーは、[Ctrl]+[E]です。
フィルハンドルをダブルクリックしてフラッシュフィルを実行
セル[E2]とセル[E3]に入力したあと、フィルハンドルをダブルクリックすると、
[オートフィルオプション]ボタンが表示されます。
クリックして[フラッシュフィル]をクリックします。
B列、C列、D列の結合された値が表示されました。
参考フィルハンドルが表示されていない場合は、[Excelのオプション]の設定を確認してください。
-
オートフィル機能が使用できない時は[Excelのオプション]で確認
フィルハンドルってご存知ですか?Excelのワークシートでアクティブセルの右下に現れる小さい四角の形のものです。 これって便利ですよね? こ ...
また、フィルハンドルのダブルクリックについては、以下の記事で解説しています。
-
フィルハンドルのダブルクリックで隣接する列の連続した行まで入力
オートフィルハンドルをダブルクリックすると、隣接する列の連続した行までまとめて入力することができます。 ただし、この操作は列に対してのみです ...
フラッシュフィルオプション
入力後には[フラッシュフィルオプション]ボタンが現れます。
[フラッシュフィルオプション]をクリックした状態です。
ここで、元に戻したり、確定したりすることができます。
ステータスバーの表示
フラッシュフィルを実行すると、ステータスバーの左に[フラッシュフィル空白セル]と[フラッシュフィルの変更されたセル]が表示されます。
フラッシュフィルの実行によって変更されたセルの数が自動で表示されます。
また、空白のセルがあれば、空白の数も表示されます。空白のセルがなければ、表示されません。
もし、ステータスバーに表示されていなければ、ステータスバーで右クリックして[ステータスバーのユーザー設定]で[フラッシュフィル空白セル]と[フラッシュフィルの変更されたセル]のチェックがオンになっているかを確認してください。
空白スペースで分けた氏名を姓と名に分割
下のように1つのセルに氏名を入力した表があります。
姓と名の間は空白スペースで分けています。
これを姓と名にセルを分ける場合もフラッシュフィルが便利です。
セル[B2]に[本田]と入力して確定した後、セル[B2]でフィルハンドルをダブルクリックして、[オートフィルオプション]で[フラッシュフィル]をクリックしています。
同じようにセル[C2]に[空太郎]と入力して確定した後、セル[C2]でフィルハンドルをダブルクリックして、[オートフィルオプション]で[フラッシュフィル]をクリックしています。
フラッシュフィルは、2列をまとめて行うことはできませんので、1列ずつ実行します。
参考氏名を姓と名に分ける方法は、[区切り位置指定ウィザード]を使用する方法もあります。
フラッシュフィルが使用できないバージョンでは、以下の記事が参考になると思います。
-
氏名の列を姓と名の列に分割するなら[区切り位置指定ウィザード]
Excelで氏名セルを姓と名の別々のセルに分けるという作業をしなければならないことがあります。 F列の氏名は、空白スペースで区切られています ...
関数を使う方法は、以下の記事で解説しています。
-
関数を使って氏名の列を[姓]と[名]に分割してふりがなを表示
Excelで氏名の列を姓と名の列に分割したい場合がありますね。 区切り位置指定ウィザードを使用して分割する方法は、以下の記事で解説しています ...
セル内改行された文字列から文字を抜き出す
セル内改行されたセルの改行の位置で分割して抜き出すこともできます。
以下のようにセル内改行したセルがあります。
B列のセルに[県名]を抜き出すことができます。
ただし、フラッシュフィルは、1列のみに対して有効なので、2列を一括で分割することはできません。
セル内改行されたセルの文字を別々のセルへ分割したい場合は、1列ずつ行います。
参考セル内改行については、以下の記事で解説しています。
-
セルの中を2行表示にするには(セル内改行)
1つのセルの中をどうしても2行にしたい、セル内で改行したい時ってありますね。その場合の方法です。 また、改行を解除する方法も合わせて解説しま ...
また、Power Queryを使用して分割することもできます。
-
Power Queryで区切り記号で区切られたデータを別々のセルへ表示
1つのセルに複数のデータが入力されている場合は、それぞれのデータを分割して表示しないとデータベースにはなりません。 Power Queryの ...
郵便番号から[-]を削除
郵便番号を[-]なしの番号にもできるのかしらと、セル[E2]にセル[A2]の郵便番号から数字のみを入力しました。
セル[E3]に先頭の1文字[8]を入力した時点で、下のように最後のセルまでプレビューが表示されました。
オートコンプリートが機能したんですね。
この機能は設定でオフにできます。
Excelのオプションで解説しています。
[Enter]キーを押すと確定されました。
Excelのオプションでの設定
[Excelのオプション]ダイアログボックスの[詳細設定]に[フラッシュフィルを自動的に行う]という項目があります。
オートコンプリートでのフラッシュフィルを実行したくない場合は、このチェックボックスをオフにします。
オートコンプリートとは、セルに先頭の何文字かを入力した時に、自動的に入力される機能です。
郵便番号から-を削除で解説しているような機能です。
参考[Excelのオプション]ダイアログボックスを表示するには、[ファイル]タブをクリックして[オプション]をクリックしてもいいですが、
キーボードから[Alt]→[F]→[T]の順に押しても表示できます。
-
[Alt]または[F10]キーを使ってキーヒントを表示してリボンへアクセス
[Alt]キーや[F10]キーを使って、キー操作でタブを切り替えたり、目的のコマンドへ移動したりすることができます。 まず、[Alt]キーを ...
パターンが見つからない場合のメッセージウィンドウ
面白くていろいろやっていたら、下のようなメッセージが表示されるようになりました。
何が原因なのかはわかりませんが、たまたま正しく認識されなかったのだと思います。
パターンを見いだせなかった場合に表示されるようです。1つのセルでエラーが出た場合は、もう1つ下のセルまで入力するとうまく行くことがあります。
1つの列のデータは同じ規則で入力されていることが必要です。スペースや数字に半角と全角が混在していると、パターンを読み取れないようです。
選択範囲の周囲にあるすべてのデータを確認しましたが、値を埋め込むためのパターンが見つかりませんでした。
フラッシュフィルを使うには、結果として表示したいデータをサンプルとしていくつか入力し、フラッシュフィルを実行する列のセルをアクティブにした状態で、[フラッシュフィル]ボタンをもう一度クリックします。
参考フラッシュフィルが使用できないバージョンで、文字列を結合してひとつの文字列にする方法は、以下の記事で解説しています。
-
複数の文字列を結合してひとつの文字列にするには
Excelで1つのセルに他のセルの文字列を結合した文字列を表示する方法を紹介します。 5つの方法を紹介しますので、使用環境に合った方法で操作 ...
Excel 2016 for Macでもフラッシュフィルの機能が使えるようになりました。
-
Macでもフラッシュフィルができる!文字列の結合・抜き出しを自動化
Excel 2016 for Macでも、フラッシュフィルの機能が追加されました。 フラッシュフィルとは、文字列の結合や抜き出しを自動で行っ ...