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

この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と関連する良く見られている質問

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エクセルでプルダウンメニューの作り方

  エクセルの画面で、よく三角形を逆さまにした形をクリックするといくつかメニューが出てき、どれかを選べるようになっていますが、その作り方を教えてください。
 会社で人事を担当していますが、三角形(プルダウンボタン)をクリックすると社員氏名一覧が表示され、そこから選択できるようにしたいのです。
 しばらく自力でいろいろやってみましたが、さっぱり見当がつかず、どうやればいいのか分かりませんでした。よろしくお願いします。

Aベストアンサー

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならないでしょうか?
Excel2007の場合は↓のURLが参考になるかもしれません。

http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-ny_kis2.html

尚、同一Sheetに「名簿表」を作成する場合は名前定義する必要はなくて
「元の値」の右側の四角をクリックし、リスト表示したいセルをそのまま範囲指定すればOKです。

以上、お役に立てば良いのですが・・・m(_ _)m

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならない...続きを読む

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エクセル(Excel) 納品書の作り方【画像修正版

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が見にくかったのでシート<CENTER></CENTER>だけにしました。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルでコピー!
そのまま最後の24行目までコピーしておきます。

F4セルには
=IF(COUNTBLANK(B4:E4),"",D4*E4)
という数式を入れ、F24までオートフィルでコピー!

これでB列に商品番号を入力すればSheet2のデータが反映され、
E列に数量を入力でF列に金額が表示されると思います。

最後に合計金額のF26セルは
=IF(COUNT(F4:F24),SUM(F4:F24),"")
手数料のF27セルは
=IF(F26="","",F26*0.2)

これで何とか形にならないでしょうか?

※ 振込金額の欄は不明ですので手を付けていません。

参考になりますかね?m(_ _)m

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルで...続きを読む

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

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

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

Aベストアンサー

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

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

Qエクセル(Excel) 納品書の作り方【改めて】

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が貼り付けてあります。商品名は1番以外伏せさせていただいています。
くっつけてありますが、左側がシート1・右側がシート2です。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

画像がいまいちよく見えないのですが、納品書の項目は左から、No、商品番号、商品名、単価、数量、金額でいいのでしょうか(名前は多少違っていても意味があっていればもんだいないです)

でしたら、
C1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,2,FALSE))
D1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,3,FALSE))
E1セルは空白で
F1セルに=IF(D2="","",D2*E2)
といれて、C1からF1までをコピーしてその下の行にタテに貼り付ければ出来ますよ。
おそらくエラーが出たのは、コピーしたときにVLOOKUP関数の最初のセルの指定がずれてしまっているのでは無いかと思いますよ。     

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

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

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

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

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

Aベストアンサー

B3:B271<>""

Qエクセル2007でプルダウンで選んだものに反応

Excel2007でプルダウンで選んだものに反応して隣のセルが自動入力される方法(エクセル2007)
A1をプルダウンで「猫」「犬」から選べるようにし、「猫」を選んだ場合B1に自動に「111」が、「犬」を選んだ場合B1に自動に「222」と入力されるようにしたいです。
ご教授の程、宜しくお願いします。

Aベストアンサー

VLOOKUP関数での方法です。
(1)別シートに入力文字列と対応コード表を作成。(仮にSheet2のA:B列範囲で順不同)
(2)B1に=IF(COUNTIF(Sheet2!A:A,A1),VLOOKUP(A1,Sheet2!A:B,2FALSE),"")を設定
   入力文字列が存在しない場合は空白としています。

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ランキング