エクセルのオートコンプリート機能は『同じ列内のセルに限り有効』という認識をしていますが、行が連続していない(空白行がはさまれている)場合は有効にならないのでしょうか?
試してみると確かに一行飛ばしでもいけるときといけない時があり、どんな時に有効になるのかがもひとつよくわかりません。文字を入力後、アクティブセルを他の列に移動すると無効になるとか・・・いろいろ試してみたんですがどうも基準がわからないのです。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

再度、データ範囲について・・・


あるセルのデータ範囲があったとして、そのデータ範囲内の各セルは同一のデータ範囲を持つとは限りませんので、入力したいセルで個々のデータ範囲を確認してみて下さい。

例えば、B2;C2、C3;D2、D3、D4、D5、D6 に文字列が入力されている場合、
 上記セルと、B3、B4;C4、C5、C6 はデータ範囲は B2:D6 になります。
 C7、D7は B2:D7 がデータ範囲、B5、B6、B7 はありません。(自分自身?)
従って、B2:B4、C2:C7、D2:D7 がオートコンプリートされうるセルになります。

A1:H20に文字列を入力して、C5:F10をクリアした『ロの字型』の中でデータ範囲を出してみると分かりやすくないでしょうか。


オートコンプリートが効かない場合ですが、データ範囲内に数値、日付、時刻しかない時はダメですが、文字列を入力されているみたいなので関係ないですね。
データ範囲内の文字列が、例えば『AA,AAA,BBB』の場合は『B』でオートコンプリートが機能しますが『A』では機能しません。どちらにすればいいか自動的には分からないからですね。
『A,AAA,BBB』の場合は『AA』でオートコンプリートが機能します。
どの文字列が対象になっているかは、入力したいセルでAlt+↓(下向き矢印のあるキーです)とすれば分かります。
    • good
    • 0
この回答へのお礼

補足説明のとおり操作してみました。確かにロの字型で実験して見るとわかりやすいですね。今回教えて頂いて私なりに理解をしたのは・・・
基本的にオートコンプリートが有効になるのは『データ範囲内にあるセル』である。ただしデータ範囲にあっても例外なのが『アクティブセルを中心に4方向のどこにも入力すみのセルがない』場合である。
これで合ってますか?

お礼日時:2002/01/23 23:11

再々度データ範囲について・・・


B4;C2,C3,C7;D6に文字列を入力します。この状態で
 C4のデータ範囲はB2:C4でオートコンプリートはC2,C3が対象。
 C5のデータ範囲はB2:D7でオートコンプリートはC2,C3,C7が対象。
 C6のデータ範囲はC6:D7でオートコンプリートはC7が対象。
になります。
このように、入力しようとするセルの上下左右の4つと、斜め上下左右の4つの計8方向のセルの内容でデータ範囲が決められていきます。
C5に対して8方向に文字列があるか順次調べていくと、
 最初はB4:D6が決まり、B4に対してC3→C2、D6に対してC7
従って、一番左の列はB、一番右の列はD、一番上の行は2、一番下の行は7でB2:D7がデータ範囲になります。


セルに入力があった時の動きを想像してみると(あくまで個人的解釈です)

 セルAに文字列を入力
    ↓
 セルAのデータ範囲が調べられる
    ↓
 データ範囲のセルAと同じ列の数値、日付、時刻以外の文字列がオートコンプリート対象(候補)
   オートコンプリート対象がなければ機能しない
    ↓
 オートコンプリート対象で入力と同じ文字を含む対象が複数あれば対象から除外
   (例:入力'A'に対する'AA'、'AAA')
   オートコンプリート対象がなければ機能しない
    ↓
 オートコンプリート機能を実行

このように考えると色々なパターンが理解できる?(Helpを参考にしています)
    • good
    • 0
この回答へのお礼

そうですね!4方向ではなく8方向ですね。最後まで丁寧なご回答を頂きありがとうございました。おかげさまでひとつ賢くなりました(*^_^*)

お礼日時:2002/01/24 23:34

『オートコンプリートは、データ範囲内とその1行下で機能する』と考えればはっきりすると思います。



データ範囲はデータが入力されていて、周囲が空白セルまたはシートの端で囲まれているセル範囲をいいます。任意の何個かのデータが入力されている(連続だったり空白がある数行数列で試してみてください)セルで、Ctrl+Shift+* とするとデータ範囲が反転します。
このデータ範囲とその下の行がオートコンプリートが機能します。
空白セルに目が行くと分けが分からなくなりそうですね。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。ただ…確認して(8列20行分くらいの範囲にランダムに文字列を入力)みたところ、データ範囲でも機能しない箇所がありました。更に制約があるんでしょうか。

お礼日時:2002/01/23 10:18

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcelにてセルを1列飛ばしで和を求めるには?

Excelにて50名のリスト表を作り、
1人に対して2列使い、一方に時給、一方に時間を入力しています。

例)
  A  B   C  D   E  F  ...   CW      CX      CY 
1  田中  山田   鈴木     時給最大 時給平均 時給最小
2 800 8  900 6  750 4.5     900      816     750
3
4



(こんな感じで。)

それを最後に和(実際はMAX、AVERAGE、MIN)を出したいのですが、
1つずつのセルをクリックしながらやっていくと、
最大30個までの数値入力しか出来ない為、
50人の和が取れません。
しかし、単価、時間が1列ごとに入力されているので、
1人目から50人目までをドラッグして
A1:CV1みたいにつなぐ事も出来ません。
一つずつ+(プラス)でつないでその個数分で割るにしても、
空白箇所があったり、追記で空白が埋まった場合など
割る数値を変えるのも大変です。
何かいい方法はないでしょうか?

Excelにて50名のリスト表を作り、
1人に対して2列使い、一方に時給、一方に時間を入力しています。

例)
  A  B   C  D   E  F  ...   CW      CX      CY 
1  田中  山田   鈴木     時給最大 時給平均 時給最小
2 800 8  900 6  750 4.5     900      816     750
3
4



(こんな感じで。)

それを最後に和(実際はMAX、AVERAGE、MIN)を出したいのですが、
1つずつのセルをクリックしながらやっていくと、
最大30個までの...続きを読む

Aベストアンサー

いつもは配列数式回答常連なのですが、既出ですので
SUMPRODUCT関数で。
例データ
B1:B10
3
1
2
3
4
5
6
1
3
偶数行の和は
=SUMPRODUCT((MOD(ROW(A1:A10),2)=0)*(B1:B10))
結果
10
件数は
=SUMPRODUCT((MOD(ROW(A1:A10),2)=0)*1)
平均は 合計和/件数

Qエクセル 関数 1と入力されたセルの隣の列の値から、一つ前に1と入力されたセルの隣の列の値の引き算

1と入力されたセルの隣の列の値から、一つ前に1と入力されたセルの隣の列の値の引き算をしたいです。
具体的に、添付した画像の表で説明します。
A列は、連続した数値が入っています。
B列には、ところどころに、1が入力されています。(空白のセルが多いです。)
C列には、B列で、1と入力されたセル(例:B6)と同じ行のA列のセル(A6)の値から、B列で、一つ前に1と入力されたセル(B2)と同じ行のA列のセル(A2)の値の引き算をしたいです。
いまのところ、C列の結果は、D列にしめしたような計算で、ひとつずつ計算しています。

C列を、自動的におこなってくれるように工夫したいのですが、どんな関数をつかったらよいかわからないので、教えてほしいです。
補足ですが、行の入れ替え(サイズを変える、等)はしたくないです。(列の挿入はもちろんOKです。)

どうぞよろしくお願いします。

Aベストアンサー

D列を作業用に使用します。D列を最終的には見えないように設定してください。(文字色を白にするなど)
D1セルに「=A1*B1」
D2セルに「=IF(B2<>1,D1,A2*B2)」
D3セルより下はD2セルをコピー
C1セルに「=IF(D1=0,"",D1)」
C2セルに「=IF(D1=D2,"",D2-D1)」
C3セルより下はC2セルをコピー

Qエクセル セルの結合(A列,B列→A列に結合)の操作

現在、大量の人名を編集しています。

A列に名字、B列に名前が入力されている状態なのですが、A列に名字と名前を一緒に表示させるためには、どのようにすればよいか教えて下さい。

Aベストアンサー

C列に「名字+氏名」を表示させるなら、C1セルに
 =A1&B1
と入力して、下方向にコピーすれば良いです。

名字が入力されているA列の値を「名字+氏名」で置き換えるのは関数ではできません。
どうしても置き換えたいなら上記で説明した方法で表示された「名字+名前」をコピーして、A1に「編集」→「形式を選択して貼り付け」→「値」で貼り付けるという方法はありますが…

QExcelで「A列で任意のグループ」「B列は空白以外」「C列は空白セル」の数

さきほど、質問をした者です。
回答を締め切った後で、追加質問がありますので、新たに質問させていただきます。(たびたびスミマセン)

Excelで「A列で任意のグループ」名、かつ、「B列は空白ではないセル」、かつ、「C列は空白セル」の件数を出したいのです。 (オートフィルタではなく。)

=SUMPRODUCT((A3:A271="グループ名")*(B3:B271="▲▲▲")*(C3:C271=""))

という式を作ったのですが、「B列の空白以外」という条件にする"▲▲▲"の部分はどうすればいいのでしょう?

Aベストアンサー

B3:B271<>""

Qエクセルで二つの列を結合して作ったセルと、一つの列で作ったセルがあるの

エクセルで二つの列を結合して作ったセルと、一つの列で作ったセルがあるのですが、
同じ幅(ピクセル数)でそのほかの条件は同じなのに、
『縮小して文字全体を表示する』にすると 同じ桁数でも、文字の高さが違う状態になってしまいます。
フォント数を変えようかとも思ったのですが、6だと小さすぎて8だと大きすぎます^^;
何か良い方法はないでしょうか。
結合したセルと単独のセルとでは、同じ文字の大きさはできないのでしょうか。
困っております。。よろしくお願いします。

Aベストアンサー

例えばA列とB列が結合していて、それぞれ60ピクセルだとして、C列を120ピクセルで合わせた場合、
『文字の大きさ』は同じになるはずです。
あくまで『ピクセル』で調整した場合です。『列の幅』ではないです。
#例:環境にもよりますが、60ピクセルの列幅が7.86だったとして、120ピクセルは15.72ではないです。

'列幅を合わせるマクロサンプル。
Sub test()
  Dim r(1) As Range
  
  Set r(0) = Range("A1:B1") '結合セル
  Set r(1) = Range("C1")  '単独セル
  r(1).ColumnWidth = r(0).Item(1).ColumnWidth + r(0).Item(2).ColumnWidth
  MsgBox r(0).Width & vbLf & r(1).Width
  Application.ScreenUpdating = False
  Do Until r(1).Width >= r(0).Width
    r(1).ColumnWidth = r(1).ColumnWidth + 0.1
  Loop
  Application.ScreenUpdating = True
  MsgBox r(0).Width & vbLf & r(1).Width

  Erase r
End Sub

>『縮小して文字全体を表示する』にすると 同じ桁数でも、文字の高さが違う..
違うとしたら、文字配置の縦位置を「中央揃え」にしていた場合、
結合セルと単独セルでは文字の縦方向の高さ位置が微妙に違う、という現象ではないでしょうか。
これは縮小表示にしなくてもずれます。仕様らしいです。
なのでフォント数を揃えても解消しないのではないかと思います。
どうしても結合セルと単独セルを混在させて使いたい場合、
文字縦位置「中央揃え」をやめるか、行の高さを微調整するか、が必要になります。
(参考過去スレッド)
http://oshiete.goo.ne.jp/qa/1203763.html?order=asc

例えばA列とB列が結合していて、それぞれ60ピクセルだとして、C列を120ピクセルで合わせた場合、
『文字の大きさ』は同じになるはずです。
あくまで『ピクセル』で調整した場合です。『列の幅』ではないです。
#例:環境にもよりますが、60ピクセルの列幅が7.86だったとして、120ピクセルは15.72ではないです。

'列幅を合わせるマクロサンプル。
Sub test()
  Dim r(1) As Range
  
  Set r(0) = Range("A1:B1") '結合セル
  Set r(1) = Range("C1")  '単独セル
  r(1).ColumnWidth = r(0).Item(1).C...続きを読む


このカテゴリの人気Q&Aランキング

おすすめ情報