Note: The other languages of the website are Google-translated. Back to English

 ドロップダウンリストを作成し、Excelで異なる値を表示するにはどうすればよいですか?

Excelワークシートでは、データ検証機能を使用してドロップダウンリストをすばやく作成できますが、ドロップダウンリストをクリックしたときに別の値を表示しようとしたことがありますか? たとえば、列Aと列Bに次のXNUMXつの列データがあるので、[名前]列の値を使用してドロップダウンリストを作成する必要がありますが、作成したドロップダウンリストから名前を選択すると、対応する番号列の値は、次のスクリーンショットのように表示されます。 この記事では、このタスクを解決するための詳細を紹介します。

ドキュメントドロップダウンのさまざまな値1

ドロップダウンリストを作成しますが、ドロップダウンリストセルに異なる値を表示します


ドロップダウンリストを作成しますが、ドロップダウンリストセルに異なる値を表示します

このタスクを完了するには、次の手順を実行してください。

1。 ドロップダウンリストで使用するセル値の範囲名を作成します。この例では、名前のドロップダウンを 名前ボックス、を押してから 入力します キー、スクリーンショットを参照してください:

ドキュメントドロップダウンのさまざまな値2

2。 次に、ドロップダウンリストを挿入するセルを選択し、[ 且つ > データ検証 > データ検証、スクリーンショットを参照してください:

ドキュメントドロップダウンのさまざまな値3

3。 の中に データ検証 ダイアログボックス、下 設定 タブを選択 リスト から 許可する ドロップダウンして、をクリックします ドキュメントドロップダウンのさまざまな値5 ボタンをクリックして、ドロップダウン値として使用する名前リストを選択します。 ソース テキストボックス。 スクリーンショットを参照してください:

ドキュメントドロップダウンのさまざまな値4

4。 ドロップダウンリストを挿入した後、アクティブなシートタブを右クリックして、 コードを表示 コンテキストメニューから、開いた状態で アプリケーション用のMicrosoftVisual Basic ウィンドウで、次のコードをコピーして空のモジュールに貼り付けます。

VBAコード:ドロップダウンリストから異なる値を表示します:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    selectedNa = Target.Value
    If Target.Column = 5 Then
        selectedNum = Application.VLookup(selectedNa, ActiveSheet.Range("dropdown"), 2, False)
        If Not IsError(selectedNum) Then
            Target.Value = selectedNum
        End If
    End If
End Sub

ドキュメントドロップダウンのさまざまな値6

注意:上記のコードでは、番号 5 以内 Target.Column = 5の場合Then スクリプトは、ドロップダウンリストが配置した列番号です。落ちるこの中の」 selectedNum = Application.VLookup(selectedNa、ActiveSheet.Range( "dropdown")、2、False) codeは、手順1で作成した範囲名です。必要に応じて変更できます。

5。 次に、このコードを保存して閉じます。ドロップダウンリストからアイテムを選択すると、同じセルに比較的異なる値が表示されます。スクリーンショットを参照してください。

ドキュメントドロップダウンのさまざまな値7


デモ:ドロップダウンリストを作成しますが、Excelで異なる値を表示します

Kutools for Excel:300以上の便利なExcelアドインがあり、30日以内に制限なしで無料で試すことができます。 今すぐダウンロードして無料トライアル!

 


最高のオフィス生産性ツール

Kutools for Excelはほとんどの問題を解決し、生産性を80%向上させます

  • 再利用: すばやく挿入 複雑な数式、チャート および以前に使用したものすべて。 セルを暗号化する パスワード付き。 メーリングリストを作成する そしてメールを送る...
  • スーパーフォーミュラバー (複数行のテキストと数式を簡単に編集できます); 読書レイアウト (多数のセルを簡単に読み取って編集する); フィルター範囲に貼り付け...
  • セル/行/列をマージする データを失うことなく; 分割セルコンテンツ; 重複する行/列を組み合わせる...重複セルを防止します。 範囲を比較する...
  • [複製]または[一意]を選択します 行; 空白行を選択 (すべてのセルは空です); スーパーファインドとファジーファインド 多くのワークブックで; ランダム選択...
  • 正確なコピー 数式参照を変更せずに複数のセル。 参照の自動作成 複数のシートに; 箇条書きを挿入、チェックボックスなど...
  • テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷。 セルの内容とコメントを変換する...
  • スーパーフィルター (フィルタースキームを保存して他のシートに適用します); 高度な並べ替え 月/週/日、頻度など。 特殊フィルター 太字、斜体...
  • ワークブックとワークシートを組み合わせる; キー列に基づいてテーブルをマージします。 データを複数のシートに分割; xls、xlsx、PDFをバッチ変換...
  • 300 以上の強力な機能. Office / Excel 2007-2021 および 365 をサポートします。すべての言語をサポートします。 企業や組織に簡単に導入できます。 フル機能の 30 日間無料トライアル。 60日間の返金保証。
kteタブ201905

Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
officetab下部

 

コメントを並べ替える
コメント (42)
まだ評価はありません。 最初に評価してください!
このコメントは、サイトのモデレーターによって最小化されました
これは別のシートで実行できますか? つまり、sheet1ではドロップダウン、sheet2では範囲です。 これをどのようにコーディングする必要がありますか? 前もって感謝します。 ティナ。
このコメントは、サイトのモデレーターによって最小化されました
同じワークシートで異なる値を返す複数のドロップダウンを実行したい場合はどうなりますか? XNUMXつ以上のコーディング例を教えてください。
このコメントは、サイトのモデレーターによって最小化されました
リー・アン

コードをコピーしてIfからEndIfに貼り付け、列番号とテーブルを変更すると、次のように機能するはずです。


Sub Worksheet_Change(ByVal Target As Range)
selectedNa = Target.Value
Target.Column = 5の場合Then
selectedNum = Application.VLookup(selectedNa、ActiveSheet.Range( "dropdown")、2、False)
IsError(selectedNum)でない場合
Target.Value = selectedNum
終了する場合
終了する場合
Target.Column = 9の場合Then
selectedNum = Application.VLookup(selectedNa、ActiveSheet.Range( "dropdown1")、2、False)
IsError(selectedNum)でない場合
Target.Value = selectedNum
終了する場合
終了する場合
End Subの

これが正しい方法だと言っているわけではありませんが、私のテストバージョンでは機能しました。 Excel2013を使用しています
このコメントは、サイトのモデレーターによって最小化されました
試してみました。 そして、それはうまくいきました! ありがとうございました。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、助けてください、それは機能しません、ここに2つの列のすべてのコードを貼り付けることができますか?
このコメントは、サイトのモデレーターによって最小化されました
Tony: 正解ですが、次のステップは、次のことを助長することを避けることです: a) DRY 原則の違反 (したがって、a.1) エラーの可能性とそれらを修正するためのコスト、および a.2) 潜在的な将来の変更/拡張のコスト)重複コードを減らすために「リファクタリング」する方法を示すことによって「コピー&ペースト」プログラミングを奨励しない、および b) ハードコードされたリテラル (「マジック」「数値」/「文字列」) 定数を宣言および使用することにより、コンパイラ エラーを発生させずにミスタイプするのははるかに困難です。 コピーして貼り付けた XNUMX つのコード ブロック間で異なるのは、列番号と範囲名だけです。可能な限り、他のすべてを複製しないでください。代わりに、コードは次のようにする必要があります。

' -- 注: グローバル宣言モジュールで「EmptyString」を宣言します。
Public Const EmptyString as String = ""

' -- 列番号。 注: 実際には、"Col5Header" は "ProductID" のようになり、"Col9Header" は "SalesID" のようになります。
Private Const Col5HeaderColumnNumber As Integer = 5
Private Const Col9HeaderColumnNumber As Integer = 9

' -- 列のドロップダウン リストの範囲名
Private Const Col5HeaderDropDownRangeName as String = "col5HeaderDropDownRangeName"
Private Const Col9HeaderDropDownRangeName as String = "col9HeaderDropDownRangeName"

サブ Worksheet_Change _
(_
範囲としての ByVal ターゲット _
)

' -- BEGIN 該当する = 列について、ドロップダウン リストから選択した説明の ID を取得します。
薄暗い dropDownListRangeName を文字列として
dropDownListRangeName = EmptyString
ケースを選択 Target.Column
Case Col5HeaderColumnNumber
dropDownListRangeName = Col5HeaderDropDownRangeName
Case Col9HeaderColumnNumber
dropDownListRangeName = Col9HeaderDropDownRangeName
End Select ' -- ケース Target.Column
If (dropDownListRangeName <> EmptyString) その後
selectedId を文字列として暗くする
selectedId = Application.VLookup(selectedNa, ActiveSheet.Range(dropDownListRangeName), 2, False)
If Not IsError(selectedId) Then
Target.Value = selectedId
End If ' -- Not IsError(selectedId)
End If ' -- (dropDownListRangeName <> EmptyString)
-- END 該当する = 列について、ドロップダウン リストから選択した説明の ID を取得します。

End Subの
このコメントは、サイトのモデレーターによって最小化されました
詳細な質問を入力するだけで、それが吹き飛ばされることほどイライラすることはありません。 人間を確認するために間違った6桁のコードを入力すると、投稿されたメッセージが消去されます。 それを修正したいかもしれません。 今私のコメントはこれです:私はあなたがビデオと書かれた指示で示したのとまったく同じことをしようとしました、そして私が得るすべては私がリストで名前を選択するときだけであり、番号ではありません。 また、データ検証では選択肢がリストにあるものだけに制限されるため、これはどのように機能しますか。 これはどのようにシステムをだましているのですか? これまで、ボタンまたはショートカットにvbaコードを割り当てる必要がありましたが、このコードはどのようにアクティブ化されますか? それが機能していることを確認するためにどのようにテストしますか?
このコメントは、サイトのモデレーターによって最小化されました
ブックの別のシートにデータを追加する場合、数式はどのように機能しますか? データを隠したい。
このコメントは、サイトのモデレーターによって最小化されました
ここで仲間を変えてください!
selectedNum = Application.VLookup(selectedNa、Worksheets( "YourSheetName")。Range( "dropdown")、2、False)
このコメントは、サイトのモデレーターによって最小化されました
「YourSheetName」は、データ範囲を含むシート、またはdropdwonリストを使用するシートを参照しますか?
このコメントは、サイトのモデレーターによって最小化されました
ブックの別のシート/タブにデータを一覧表示する場合、数式はどのように機能しますか?
このコメントは、サイトのモデレーターによって最小化されました
これは、Excelの現在のバージョンでは機能しません。 Excelオブジェクトがすでに複数回試行されて表示されないため、データ検証のリストはvbaに表示されなくなります。
このコメントは、サイトのモデレーターによって最小化されました
この例では、5の各セルの値を確認したいが、6の隣接するセルの値を入力したい場合はどうでしょうか。
このコメントは、サイトのモデレーターによって最小化されました
選択した値に基づいてドロップダウンリストのソースへの参照/リンクをE1に作成する場合、コードをどのように変更する必要がありますか?
ドロップダウンソースが変更された場合(たとえば、「He​​nrik」=>「Hendrik」)、変更がE1に自動的に反映されるという利点があります。
このコメントは、サイトのモデレーターによって最小化されました
これをグーグルシートで機能させる方法を知っている人はいますか?
このコメントは、サイトのモデレーターによって最小化されました
ドロップダウンリストから複数のオプションを選択したい。
このような結果:AA1001、BB1002
それは可能ですか?
このコメントは、サイトのモデレーターによって最小化されました
解決策を見つけましたか?
このコメントは、サイトのモデレーターによって最小化されました
Si los datos delalistaestánenotrahoja、cuálseríaelcódigo? グラシアス。
このコメントは、サイトのモデレーターによって最小化されました
cómobuscarunvalorhacia la izquierda
このコメントは、サイトのモデレーターによって最小化されました
プライベートサブワークシート_Change(ByValターゲットを範囲として)
selectedNa = Target.Value
Target.Column = 5の場合Then

Sheets( "Nombre de la hoja en donde esta la lista")。アクティブ化
selectedNum = Application.VLookup(selectedNa、ActiveSheet.Range( "dropdown")、2、False)
Sheets( "Nombre de la hoja en donde estas trabajando")。アクティブ化
IsError(selectedNum)でない場合
Target.Value = selectedNum
終了する場合
終了する場合
End Subの
このコメントは、サイトのモデレーターによって最小化されました
誰かが右から左に値を検索する方法を知っています
このコメントは、サイトのモデレーターによって最小化されました
複数の列で同じドロップダウンを使用する必要がありますが、コードは何ですか?
このコメントは、サイトのモデレーターによって最小化されました
こんにちは!
これは本当に便利です! ありがとうございました!
セルが自動的に更新されない状況、または更新機能を使用している状況で実行しています。 別のセルをクリックしてから、作業中のセルをもう一度クリックして、値を表示する必要があります。
私は現在OfficeStandard2019で作業しています。この問題が、使用しているExcelのバージョンに関連しているかどうか誰かが知っていますか?
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、
リストを定義し、同じシートにドロップダウンを作成している場合、コードは正常に機能していました。
しかし、あるシートで値とコードのリストを定義し、別のシートでドロップダウンを作成するにはどうすればよいでしょうか。
この同じコードは、この行に表示されているとおりに機能せず、エラーが発生します( "selectedNum = Application.VLookup(selectedNa、ActiveSheet.Range(" dropdown ")、2、False)")。
また、IDと名前を使用してXNUMXつのシートに複数のリストを定義し、別のシートに複数のドロップダウンがあり、あるドロップダウン値が別のドロップダウンで選択した値に依存している場合などの要件があります。

あなたが私の質問を理解したことを望みます。

この問題の解決にご協力ください。
このコメントは、サイトのモデレーターによって最小化されました
これは私を大いに助けてくれました、ありがとう。 私のテーブルはリストボックスとは別のシートにあるので、それを実現し、画面が点滅しないようにするために、数行のコードを追加しました。

Application.ScreenUpdating = False
Sheets( "SheetWithTableOnIt")。Activate

Sheets( "SheetWithDropDownListOnIt")。Activate
Application.ScreenUpdating = True
このコメントは、サイトのモデレーターによって最小化されました
このコードを正確にどこに追加しましたか?
このコメントは、サイトのモデレーターによって最小化されました
コードを使用しようとすると、「If Trarget.Column = 6Then」という行にコンパイルエラーが発生しますか? 理由について何か考えはありますか?
このコメントは、サイトのモデレーターによって最小化されました
それは機能していますが、ファイルを終了して再度開くと機能しません... .xlsmとしてのみ.xlsとして保存することはできません。そのための解決策はありますか? ありがとう
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、マルコ、ワークブックにコードをコピーして貼り付けた後、ファイルを保存するときに、Excelマクロ対応のワークブック形式で保存する必要があります。試してみてください。ありがとうございます。
ここにはまだコメントが投稿されていません
もっと読む
あなたのコメントを残す
ゲストとして投稿
×
この投稿を評価:
0   文字
推奨される場所

フォローする

著作権©の2009 - WWW。extendoffice.com。 | | 全著作権所有。 搭載 ExtendOffice。 | サイトマップ
MicrosoftおよびOfficeのロゴは、米国MicrosoftCorporationの米国およびその他の国における商標または登録商標です。
SectigoSSLで保護