例えば、社員の名前をある列に入れないといけないとき
入力規制とかで、社員の名前の記述されたデータ列を指定すると、リストボックスで選択できる様になりますよね。
しかし、社員数が100人位いて多い場合、選択するのも結構大変になります。
そこで、読みのはじめの人文字を入れたてからリストボックスを開くと、該当データ辺りにカーソルが来ていて、入力しやすくできるといった方法はないものでしょうか。
やり方はリストボックス形式にこだわりません。入力しやすければいいです。
入力する社員名は決まっていて、新規の入力はできなくても良いです。ただし、社員が増えた時は、リストに追加して入力できるようにしたいです。

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

A 回答 (8件)

(1)エクセルにはあるセルに小島 完と入力して同列下のセルで小島と入力すると小島 完が出てくる機能がある。

これを使えないか考えたが、うまく行かない。
(2)VLOOKUP関数で候補を引けないか考えたが
同姓があると(全員苗字名前とも違わないと)うまく行かない。
(3)H1:H10に名前が
小島 完
小島 三平
小島 三平
小島 順
小嶋 洋平
川村 次郎
朝霞 清
朝霞 源次
朝霞 次郎
兵庫 建次
兵庫 太郎
とあり、そのまま(漢字で)ソートする。そしてG1に関数=LEFT(H1,1)を入れ、G10まで複写する。
E1に名前先頭漢字1文字入力する。
F1に関数=OFFSET($H$1,MATCH($E$1,$G$1:$G$10,0)+ROW()-2,0)と入れ、同じ漢字で始まる最大人数分の行数を
複写する。この例では「小X XX」が5人いるのでF5行まで複写する。
これでE1に「小」と入れると、F1:F5は
小島 完
小島 三平
小島 三平
小島 順
小嶋 洋平
となるから、この中から選べば良い。
しかし選んだF1:F5のうちのセルから、目的のセルへのコピーが難しくてで来そうにもない。(手操作で、毎回コピーするならそれはそれで良いが、手数がかかると感じるでしょう)。そこでVBAで
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static c As Integer
If Target.Column = 6 Then
Cells(c + 1, "c").Value = Target.Value
c = c + 1
End If
End Sub
をVBEのSheet1のSelectionChangeイベントに貼りつけました。
これでE1セルに名前第1字入力--->F1:F5に候補セット--->F1:F5のどれかを選択してクリック
--->C列にC1から上から順に選択した名前をセットする。
(4)本来は質問の意図を実現するには、VBAで2段検索をして、即ち名前の第1文字で表を検索し、リストボックスかコンボボックスに候補の名前を表示し、その中から
クリックして選んだものをセルにセットするプログラムを
組まないといけないと思います。
関数だけだと限界があります。
    • good
    • 0
この回答へのお礼

お礼が遅くなり大変申し訳ございません。
時間が無くまだ試していないのですが
詳細なプログラムまで教えていただきありがとうございました。是非参考にします。

お礼日時:2003/07/08 13:34

INDIRECT関数でリストを切り替える方法とかーー


例えば社員の名前の読み方に応じてあ行、か行、さ行に振り分けリストを作成し、それぞれのリストに「あ」「か」「さ」と名前をつけてやります。A1にあ~わを入力するとし、B1の入力規則の「リスト」で
=INDIRECT(A1)
と設定してやります。すると例えば「鈴木」さんだとA1に「さ」と入力してやると(またはA1にも入力規則を設定してやり)、さ行の名前のみがB1のリストボックスに出てきます。(逆に面倒かもーーー)
所属部署を入力する場合は所属部署ごとにリストを振り分けるのもいいですね。
    • good
    • 0
この回答へのお礼

お礼が遅くなり大変申し訳ございません。
アドバイスありがとうございます。
試してみます。

お礼日時:2003/07/08 13:35

すいません、No.2は勘違いです。

取り消します。
    • good
    • 0

 私なら、IME、すなわち、かな漢字変換ソフトで単語登録してしまいますね。



たとえば、「よしだ」の読みで

吉田茂
吉田恭子
芳田元之助

などと名前を登録した社員名入力専用のユーザー辞書を作ります。姓を入力すれば、あとは選択するだけです。
 ユーザー辞書はCSVなどのテキストファイルから一括登録できますし、もちろん追加修正も容易です。Excelのsheetが変わってもすぐ使えますし、ワープロやその他のソフトでも同様に使えます。さらに、省入力・推測変換機能を使えば、入力はもっと楽になります。
    • good
    • 0
この回答へのお礼

マクロや関数の方へ頭がいってしまっていました。
辞書登録も一案ですね。利用者に確認してみます。

お礼日時:2003/06/10 09:53

EXCELに対して設定をかけると、別のシートを持ってきたときには使えませんよね。


社員全員を辞書登録してしまうのが一番簡単で、どんなソフトのときも使えます。
読みを2文字位にすれば、1~2秒で入力できるようになります。
    • good
    • 0
この回答へのお礼

マクロや関数の方へ頭がいってしまっていました。
辞書登録も一案ですね。利用者に確認してみます。

お礼日時:2003/06/10 09:53

#1です。



氏名を漢字入力するのなら、最初の数文字を入力すれば、オートコンプリート機能がはたらいて自動的に表示されないですか?
これでは不満ということですか?
    • good
    • 0
この回答へのお礼

マクロや関数の方へ頭がいってしまっていました。
オートコンプリートは選択を逃してしまうともう再入力の必要があるのでは?
一案ではありますね。ありがとうございます。

お礼日時:2003/06/10 09:52

名前を入力するセルの一つ前に、名前の読み仮名の頭一文字を入力するセルを作って、その列にオートフィルタをかけてやるというのはどうでしょうか?頭一文字の読みをリストから選択すれば、100人ぐらいの人数だったら多くとも4、5人くらいには絞れると思いますので、かなり入力しやすくなるとは思いますが。

    • good
    • 0

列を1列増やすことになりますが、社員一人一人に「コード番号」のようなものをつけ、入力時は数値で入力するようにしたらどうでしょうか。


慣れてくると下手なマウス操作より数値入力のほうが圧倒的に早いです。

数値を入力するセルの隣に、INDEX関数とかVLOOKUP関数などを使って、氏名を表示するようにもできます。
    • good
    • 0
この回答へのお礼

早速ありがとうございます。
入力元のデータ表に、名前しか無い場合、
「山田太郎さんは528番、田中一郎さんは423番・・・」
という風に変換表を見ながら入力しないといけないですね。50人くらいで全員の番号を覚えられれば早いんですが..。

お礼日時:2003/06/09 16:31

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

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

Qエクセルでリストから検索した時の複数候補の表示方法

エクセルでの質問です。
例えばですが、
A1 あい
A2 あいこ
A3 あかね
とセルに入力してあり、B1に“あい”と入力すると検索結果として“あい”と“あいこ”を複数候補としてリスト表示してくれて、“あか”と入力すれば“あかね”が候補表示されるものを作りたいのですが、たいした知識もないため、アイディアがうかびません。

皆様のお知恵をお貸しください。

Aベストアンサー

No1です。
>1.文字入力(2~3文字入力)をしEnterを押すと、その文字に該当する候補をドロップダウンリストで表示したい。
条件を入力するセルと入力後に条件にあったリストを表示させるセルが同じセルということでしょうか。

条件を入力するときは入力規則がかかっていない(入力規則がかかっていれば、リスト内の値しか入力できない)
入力してEnterすると、入力規則がかかる(VBAで出来そうですが)
次に、条件を入れるときは入力規則の解除を行う(別途、入力規則解除のボタンを操作する)
上記の事が難易度が高いでしょう。
こんな感じのシートはVBA駆使すれば出来そうな気がしますが?(経験はないです)
ただ、先に紹介した方法で、別シートに
  A  B
1 条件
2 表示
B1セルに、条件(例えば あ とか あい と)入れると
B2セルには入力規則があって、B2セルで指定した文字を含む値しかリストに出ない。
これには、応用が出来ると思います。No4の方の方法も同様です。
条件を入れるセルと条件にあったリストの入力規則で選択するセルが分かれますが、この方が使い易くないでしょうか。
>2.そのリストからどれを使うのかをマウスで選択する(できれば十字キー上下で選択しEnterで確定したいのですが)とそのセルに入力される。
>3.入力文字は“あい”限定ではなく文字や数字すべてに対応してほしい。
のご希望は満たしていると思います。

No1です。
>1.文字入力(2~3文字入力)をしEnterを押すと、その文字に該当する候補をドロップダウンリストで表示したい。
条件を入力するセルと入力後に条件にあったリストを表示させるセルが同じセルということでしょうか。

条件を入力するときは入力規則がかかっていない(入力規則がかかっていれば、リスト内の値しか入力できない)
入力してEnterすると、入力規則がかかる(VBAで出来そうですが)
次に、条件を入れるときは入力規則の解除を行う(別途、入力規則解除のボタンを操作する)...続きを読む

Q(Excel)あるセルに文字を入力しただけで、同じブック内のほかのワークシートにも、同じ文字が自動的に入るようにするには?

こんにちは。
質問内容はタイトルのとおりです。

あるワークシートのあるセルに文字を入力すると、ほかのワークシートのセルにも同じ文字が自動的に書き込まれる方法を知りたいです(ブックは同じ)。複数のワークシートを制御するには、やはりマクロを使うのでしょうか?

よろしくお願いします。

Aベストアンサー

clam_chowderさん、こんにちは。

Sheet1のA1にたとえば「100」と入力しますね。
Sheet2のA1に、これと同じ数値を表示するには、
 =Sheet1!A1
でOKです。

数式をいれるのが苦手なら、
Sheet2のA1セルで「=」を入力すると、数式入力状態に入りますから、
ここでSheet1のシートタブをクリックし、
リンクしたいA1セルをクリックしてEnterすると、
自動的にさきほどと同じ式が入ります。

Qエクセル 一文字入力すると自動で指定の文字が入力できる方法

エクセルである特定の列のセルに
uと入力するとunsoldと自動で入力し確定するようにしたいのですが、
可能でしょうか。

Aベストアンサー

> D列とJ列に反映させたいのですが

yoshi0518さん、おはようございます。#2のmerlionXXです。
ちょっと複雑になりましたが、以下でどうでしょう?
Dが4、Jが10です。

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 4 And Target.Column <> 10 Then Exit Sub
Application.EnableEvents = True
On Error GoTo line
If Target.Count > 1 Then
If ActiveCell.Value = "u" Then
Intersect(Selection, Columns(4)).Value = "unsold"
Intersect(Selection, Columns(10)).Value = "unsold"
End If
Else
If Target.Value = "u" Then Target.Value = "unsold"
End If
line:
Application.EnableEvents = True
End Sub

> D列とJ列に反映させたいのですが

yoshi0518さん、おはようございます。#2のmerlionXXです。
ちょっと複雑になりましたが、以下でどうでしょう?
Dが4、Jが10です。

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 4 And Target.Column <> 10 Then Exit Sub
Application.EnableEvents = True
On Error GoTo line
If Target.Count > 1 Then
If ActiveCell.Value = "u" Then
Intersect(Selection, Columns(4)).Value = "unsold"
Intersect(Selection, Columns(10)).Valu...続きを読む

QExcelの入力規則で2列表示したい

入力規則を使って、社員コードを入力する際に
10001 山田太郎
10002 鈴木花子
10003 佐藤大介
のように、ドロップダウンリストに「社員コード」「社員名」と2列表示させたいのです。
そして、例えば山田太郎を選択すると、セルには「10001」だけが入力されるようにしたいのですが・・・
(Accessのルックアップフィールドみたいな感じ)

[入力規則]-[リスト]で、社員コード表を選択しても、単一の列または行でなければいけませんとエラーが出ます。
かといって[入力規則]-[リスト]で範囲指定をカンマ区切りで
10001 山田太郎,10002 鈴木花子,・・・と入力しても、エラーは出ませんがドロップダウンリストから選択したときに社員コード表と社員名が一緒にセルに入力されてしまいます。

なにか良い方法はありませんでしょうか?
よろしくお願いいたします。

Aベストアンサー

番号と社員名の間にスペースが入っているなら
メニューバーから「データ」→「区切り位置」で
1「カンマやタブなど---」にチェックを入れて「次へ」
2「区切り文字」で「スペース」にチェックを入れて「次へ」
3「完了」
で番号と社員名が違う列へ分けることが出来ます。
番号のデータがA2からA4、社員名がB2からB4にあるとし
C1にリストを設定して番号を入れ、D1に社員名が反映するようにするときにはD1に
=INDEX(A2:A4,MATCH(C1,B2:B4))
と入れてやるとうまくいくと思います。


人気Q&Aランキング

おすすめ情報