Ctrl+Eでフラッシュフィルってみた☆

2024年8月10日

みなさん、最近、Excelでこの機能がすごい!っていうのがあって、フラッシュフィルっていうんですけど、名前は聞いたことがなくても、Ctrlキーを押したままEのキーを押すやつ、っていうとわかる人もいるんじゃないでしょうか。

文字をいっぺんに変更するのによく使うんですけど、さとうせんせいは、使ってるけどあまり好きじゃないみたいです。それ、なんでなのかなっておもったので、いろいろやってみました。

フラッシュフィルとは!

フラッシュフィルのことを知らない人もおおいと思うので、どういうものか説明しますね。すごいですよ!
こんな表があります。B列に姓、C列に名が入っています。

D列に名前を1つのセルにして入れたいですよね。せっかくだから姓と名の間にはスペースを入れたいなぁって思うじゃないですか。
そしたら、セルD2に「鈴木 あきら」っていうふうに、こうなってほしいっていうのを入れるんです。

それで、こうなってほしいところを範囲選択します。

ここでCtrlキーを押したままEのキーを押すと!
範囲選択した中に全部入ってほしいのが入るんです。

今回は6個しかないですけど、100個とかもっと多くても、この手順で一気に入ってくれるんですよ。
Excelが同じ行のデータを使ってどういう風に変更すれば、はじめに入ってるデータになるのか判断して、その通りに範囲選択してる中に作る、みたいなことをしてるみたいです。

このフラッシュフィルをした直後に「様」をつけ忘れたとして、セルD2を「鈴木 あきら様」に変更します。
そうすると全部に様がつくんですよ。

これってフラッシュフィルした後に何かの操作するとできなくて、フラッシュフィルしたすぐあとじゃないとできないみたい。

フラッシュフィルって何するの?

フラッシュフィルでできることを調べたんですけど、さっき説明した、同じ行のデータから何かと何かをくっつける「結合」をするっていうこと、それから初めのデータから文字を抜く「抽出」するもの、逆に初めのデータからデータを増やす「付け足し」するもの、「計算」するものの4つががあると思います!

結合

こんな感じで同じ行のデータを組み合わせて、商品名と単位と値段に「円」を足したらできるっていうことを見つけてそのパターンで全部作るやつです。

抽出

同じ行の1文字目だけを抜き出したら「コ」になるということがわかって、そのパターンで全部1文字目を出したんですね。
こんな風にデータの中から一部を抜き出すって感じのやつです。

同じ行の()の中の文字の「円」を抜いたものを出せば「120」になるので、そのパターンでやったやつです。
数字になってくれるから計算もできそう。
こんな風に単純に何文字目っていうのではなくて、何かの文字の中みたいなこともできるみたいです。

付け足し

単純に同じ行のデータに文字を追加する感じですね。長文なんかで人の名前を入れてあいさつ文をつくるとかできるんじゃないかなって思ってます。

計算

10倍してるってパターンを見つけてそれでやってるみたいです。

そんなことって、ある?

こんな感じでフラッシュフィルができるんですけども、こういうのをいっぱいいろんなものでやってるとできるものとできないものがあるみたいってことがわかってきました。

半角の数字を全角に変えてほしかったんです。でも半角から全角にできなくて、わかってもらえなくて全部同じ値になります。

でも、半角の小文字から大文字には変えてくれるんですよ!もういやんなっちゃう。

文字の変換はできるみたいだけど、全角って日本で使うものじゃないですか。でもExcelってアメリカのマイクロソフトで作られてるじゃないですか。だから日本語や全角には弱いのかなって思いました。ほんとのとこはわかんないですけど。

次はこれです。本当は「円」のほうじゃなくて「g」のほうの数字が欲しかったんですけど。これは仕方ないんですよね。

でもこれはなんとかなるみたいです。
フラッシュフィルの直後に2つ目のデータを「400」に書き換えるんです。そうすると「g」のほうだったんだって気づいて「g」のほうの数字を出してくれるみたいです。

はじめから、下みたいに2つ目に400ってだけ入れてもうまくいくんですね。見本になるのは一番上じゃなくても大丈夫みたい。

計算のやつでもなんかおかしいことを見つけました。
さっきの計算のやつなんですけど、一番下に1234を追加したら10倍じゃなくて、12342になっちゃったんです。法則が崩壊しちゃいました。

これなにかなって考えたんです。多分、数字の2文字目をもとの数字の右にくっつけただけなんじゃないかって。フラッシュフィルはそもそも数字の計算してなくて、文字でくっつけたり抜き出したりしてるだけなんじゃないかなって。

そこで次みたいな感じでやってみました。

やっぱり2文字目を後ろにくっつけただけですね。

もう一つやってみました。

100から200になるのは2倍なのでとても簡単なはずですけど、文字で考えると2って数字が突然表れたもんだからパターンがわかんなくなって全部同じ200にしたんでしょうね。

これで、たぶんですけどフラッシュフィルは算数ができなくて、見た目を文字で考えてるって可能性が高いんじゃないかなぁ。

日付と表示形式をやってみて

計算はしないんですけど、数字や文字から日付に変えるのはどうかなって思いました。
次のようなのを作ってみました。できてますね。

Excelは「13-Oct」って入れれば10月13日を日付として指すんですけど、だからやってくれるかなと思ってやってみたら、全部Octになっちゃうんです。

これ、フラッシュフィルが表示形式に引っ張られてるってことですよね?
っていうか、セルに見えてる文字で見てパターンを考えて、文字をくっつけたりしてんじゃないかなって思うんですよね。
結局フラッシュフィルは文字でしか考えてなさそう。

まとめ

ちょっとなんかフラッシュフィルが残念なイメージになっちゃいました。さとうせんせいはこれのことを言ってたのかもしれませんね。
でも、便利に使えるときは便利に使えるんですよね。
やってるうちに見つけたのがこれです。

これ、2つのパターンがあって、それを見つけてやってくれてんですよ。
「左から見て行って数字ではないものから前を出す、数字しかないものははじめの2文字出す」
っていう2段階で考えてるみたいで、頭いいなあって思いました。

もう一つ言えるのは、「6:20」のところははじめの2文字だけなので「6:00」になるんですけど、標準書式では1日の4分の1なので「0.25」になってるんですよね。変換したものをそのままセルに値として書き込んで、最終的な表示形式はそのセルの表示形式に任せてる感じがします。

最後に思ったのは、フラッシュフィルってはじめのパターンで判断して全部を作ってくれるから、Excelがいろいろ考えてやってくれてるって思うんですけど、そうじゃなくてExcelが文字としてみて「結合」「抜き出し」「付け足し」のパターンのうちどれに当てはまるか見てるだけなのかなって思いました。そう考えると考えてるんじゃなくて、ただどれなのか当てはめてみてるだけで、AIみたいに自分で考えてるようなんじゃなくて、もっと単純だってことです。

今回、いろいろやってみてフラッシュフィルってやれることとやれないことの違いがなんとなく分かりましたけど、結局調べたことが本当かどうかっていうのは、マイクロソフトに聞かないとわからないので、とりまやってみて、うまくいったらそれでいいし、うまくいかなかった「あーね」っていってほかの方法を考えるって使い方でやっていこうって思います!