[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『所属部署を入力したら、入力をしたセルに該当者がドロップダウンで表示』(tomiy)
セルに所属部署名を入力したら、別シートにある名簿から該当する社員名を入力をしたセルにドロップダウンリスト表示させて選択可能にしたいです
イメージでは日本語入力をしてenterを押したら、選択肢が表示される表現が近いです
[参加者シート]
A B C D E F・・・
参加者1 参加者2 参加者3 参加者4 参加者5 参加者6 参加者15まで有ります
[名簿シート]
A B C D
所属部署 氏名 社員番号 役職
製造 フルネーム
製造 フルネーム
・
・
物流
物流
・
・
管理
管理
・
・
現在、名簿シートは仮の状態ですので検索しやすい順のご提案があれば訂正をすることは可能です
また、所属部署は一件ごとに入力されていないといけない制約はありませんので、こちらも検索しやすい表示があれば訂正をすることは可能です
参加者の左側に一列入れると簡単なのは承知しておりますが、全体に右に長くなっている表の為、極力列を増やさずにと言うのがリクエストです
よろしくお願い致します
< 使用 Excel:Excel2010、使用 OS:Windows7 >
↑この辺をみたら出来ませんでしょうか?
(まっつわん) 2018/06/21(木) 17:22
帳票が右に長くなり入力する為のスクロール作業を減らしたいので、別途列を増やすのを避ける術は無いかと悩んでおります
入力をしたセル内での表示が出来ると、参加者を入力できる列分(15人)のみで済むのではと思っており模索して掲載させていただきました
ご参照戴いた他の記事にありましたら、探せず申し訳ありませんでした
(tomiy) 2018/06/21(木) 18:05
入力をしたセル内での表示が出来ると、 参加者を入力できる列分(15人)のみで済むのではと思っており 模索して掲載させていただきました そのような挙動を作ることは出来ると思いますが、
入力しやすいとは思えませんので、賛同しかねますので、
考えるのはやめにしておきます。
ということで、他の方の書き込みをお待ちください。
(まっつわん) 2018/06/21(木) 18:46
1.E列に所属部署-氏名の列を作ってココを入力規則の対象にする。
2.所属部署毎に氏名無しのデータを作る。
3.名簿シートのデータは必ずソートされており、先頭に氏名無しのデータが来るようにする。
[名簿シート]
A B C D E ← 入力規則の対象にする
所属部署 氏名 社員番号 役職 所属部署-氏名
製造 製造 (数式:=A2&IF(B2<>"","-"&B2))
製造 フルネーム 製造-フルネーム
製造 フルネーム 製造-フルネーム
・
・
物流 物流
物流 フルネーム 物流-フルネーム
物流
・
(名無し) 2018/06/22(金) 10:11
[参加者シート]
A B C D E F・・・
1 部署1 部署2 部署3 部署4 部署5 部署6
2 参加者1 参加者2 参加者3 参加者4 参加者5 参加者6
これではダメなの?
(名無し) 2018/06/22(金) 10:14
名簿は所属部署ごとにソートしておくことにして、所属部署の列に「所属部署」と名前を付ける。 氏名(という見出し)のセル(列ではない)にも氏名と名前を付ける。
この状態で、名前入力セルに入力規則をリストで設定し元の値に
=OFFSET(氏名,MATCH(A1,所属部署,0),,COUNTIF(所属部署,A1))
と入力。エラーメッセージタブの □無効なデータが入力されたらエラーメッセージを表示する のチェックを外す。
これで、入力セルに部署名を入れるとリストから名前を選択できるように なりませんか?
(コナミ) 2018/06/22(金) 11:06
あ、式の中のA1は自セルのことです。 (コナミ) 2018/06/22(金) 11:07
よそでも質問されてて、それはいいんですが名簿シートのレイアウトが違う模様… こっちは放置になるかも。 (コナミ) 2018/06/23(土) 16:50
こちらで戴いたご意見も試している最中ですが、ご気分を悪くなされたら申し訳ありません
(tomiy) 2018/06/25(月) 16:25
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'シート「参加者」のシートモジュール 'シート名「名簿」 If Target.Count <> 1 Then Exit Sub Dim dic1 As Object, dic2 As Object, k As Variant, c As Range Set dic1 = CreateObject("Scripting.Dictionary") Set dic2 = CreateObject("Scripting.Dictionary") For Each c In Sheets("名簿").Range("A2:A" & Rows.Count).SpecialCells(2) dic1(c.Value) = True dic2(c.Value) = dic2(c.Value) & "," & c.Offset(, 1).Value Next c For Each k In dic1.keys If k = Target.Value Then With Target.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:=Mid(dic2(k), 2) End With Exit Sub End If Next k With Target.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:=Join(dic1.keys, ",") End With End Sub (mm) 2018/06/25(月) 16:53
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.