【Excel】オートコンプリートの有効範囲

オートコンプリートが動作しない

Excel で入力作業をしてたとき、「あれ? オートコンプリートが利かない。変だな?」と思った。

 

Excel のオートコンプリートっていうのは、下図のようなやつですね。

テキストを入力するとき、すでに入力済のテキストを元にして残りのテキストを自動的に予測 & 補完してくれる機能。

たとえば上図では(B3 に "cat" と入力済みなので)B5 に "c" と入力しただけで残りの "at" まで予測 & 補完してくれてるわけですね。

 

このオートコンプリートが動作しなかったので、オプション設定を何度もオンにしたりオフにしたり、Excel を再起動したりして試しましたが、やはりオートコンプリートが働かなかった。

ちなみにオートコンプリートのオプションは下図の赤枠のところにあります。

 

オプション設定の問題では無かったので「Excel のバグかな?」と思い始めた頃、オートコンプリートが働くセルと働かないセルがあることが分かった。

たとえば、下図の水色のセルの "cat" の場合、黄色のセルではオートコンプリートが働くのに、それ以外のセルでは働かない。

 

同様に "monkey" を調べてみると、もっと不思議です。下図の黄色のセルではオートコンプリートが働きますが、それ以外のセルでは働きません。

上図で途中のセル(B7 と B8)がスキップされている(オートコンプリートが働かない)のは、いったい、何故・・・??

オートコンプリートの動作条件に疑問を持ったので調べてみました。

オートコンプリートが動作する条件

ルール1:同じ列でなければならない

前述の図を見れば明らかですが、オートコンプリートが動作するセルは、対象テキストと同じ列のセルに限られます。

ルール2:同じ領域でなければならない。ただし・・・

オートコンプリートが動作するためには、対象テキストと同じ領域にあるセルでなければなりません。

「同じ領域」とは何でしょう?

実は Excel のそれぞれのセルは、自分の領域(テリトリー、縄張りとでも言いましょうか)を持っています。

たとえば、"monkey" のセルが持つ領域はどの範囲になるでしょう? "monkey" のセルを選択してからキーボードの Ctrl + Shift + * を同時に押してみると分かります。

上図のように "monkey" の領域が選択されました。

 

"monkey" の領域が分かったところで、"monkey" のオートコンプリートが動作するセルをもう一度見てみましょう。下図の黄色のセルがそれです。

  • ルール1:同じ列
  • ルール2:同じ領域

・・・変ですね。ルール2に当てはまらないセルがあります。何故でしょう?

それは・・・ルール2には「ただし・・・」という条件があるからです。意地悪してスミマセン。

ルール3:ただし「同じ領域」とは動作対象のセルを起点とする領域

オートコンプリートが動作する領域は、元のテキストがあるセルを起点として考えるのではなく、オートコンプリートを動作させたいセルを起点として考えます。

たとえば、どうして "monkey" のオートコンプリートが動作しないセルを途中に挟んで B6 のセルではオートコンプリートが動作するのでしょう?

B6 を選択して Ctrl + Shift + * を押してみるとそれが分かります。

かなり広い範囲が選択されましたね。つまり、B6 のセルの領域内 & 同じ列に "monkey" のセルがあるので、B6 で "monkey" のオートコンプリートが動作するわけです。

ちなみに、お気付きかと思いますが、B6 のセルでは、"monkey" だけでなく "cat" のオートコンプリートも動作します。

 

"monkey" のオートコンプリートが動作する B6 セルと "monkey" のセルの間にあるにもかかわらず、オートコンプリートが動作しない B7 と B8 の領域についても確認してみましょう。

下図の左が B7 の領域(B7、B8、A7、A8)、右が B8 の領域(B8、A8)になります。

いずれの領域にも "monkey" のセルが含まれないので、オートコンプリートが動作しないわけですね。

条件を満たしてもオートコンプリートが動作しない場合

前述の条件を満たしてもオートコンプリートが動作しない場合があります。

たとえば下図の B4 のセルで "white " まで入力してもオートコンプリートは動作しません。

考えてみれば当然ですが、"white " まで入力しても、"white cat" と補完すれば良いのか "white dog" と補完すれば良いのか、判断できないからですね。

この場合、"white c" または "white d" まで入力すればオートコンプリートが動作し始めます。

参考:セルの領域はどのようなルールで決められるのか

前述のように、セルの領域は、そのセルを選択して Ctrl + Shift + * を押せば分かります。

では、セルの領域を調べるには、それらのキーを押さないと分からないのでしょうか?

いいえ。一応、領域が決められるルールを理解すれば(キーを押さずに)目視でも予想できます。領域が広いと大変ですけどネ。

そのルールとは・・・「接触感染ルール」とでも言いましょうか。(不健康そうなセンスの無いネーミングでスンマセン)

さきほどの B6 セルを例に見てみましょう。

まず、B6 に接触している(中身がある)セルはどこでしょう? C5 の "dog" のセルですね。従って、まず B6 と C5 を含む矩形が B6 の領域となります(下図では分かりやすいように領域を選択しています)。

では更に、上図で選択されている領域に接触している(中身がある)セルは? D4 の "frog" と D7 の "mouse" のセルですね。B6 セルはこれらのセルも取り込んで、下図のように領域を広げます。

同様のことを繰り返して B6 は領域の拡大を続け、ついには下図のような広大な(?)領域を手に入れるわけですね。

MEMO

接触感染対象のセルは、テキストが表示されているセルとは限りません。

テキストが何も表示されていないセルでも、そこに式が設定されているならば、接触感染の対象となります。

まとめ

  • オートコンプリートが有効になる条件は、
    • 動作対象のセルの領域内に対象テキストがある場合
      且つ、
    • 動作対象のセルと同じ列に対象テキストがある場合
  • 各セルは、それぞれ固有の領域を持っている
  • 各セルの領域は、そのセルを選択して Ctrl + Shift + * を押せば分かる
  • 各セルの領域は「接触感染ルール」(?)に従って決定される

コメントの投稿

avatar
  購読する  
通知を受け取る対象