【Excel】ある列のデータ有効性が別の列のデータ有効性に応じて動的に変更される

基本的な機能要件は次のとおりです。 図 1 の脆弱性の一次分類と二次分類の両方を図 2 のシートから選択する必要があります。脆弱性 A の一次分類として「タイプ 1」が選択された場合、二次分類は「高リスク、中リスク、低リスク」に対応し、「タイプ 2」が選択された場合、二次分類は「基本構造、適用システム」など、一次分類の選択に応じて二次分類が選択されます。

脆弱性名 分類 二次分類
脆弱性A クラス II 基本構造
脆弱性B 3つのカテゴリー SQLインジェクション
脆弱性 C 1種類 リスクが高い
脆弱性 D    

図 1 シート - 一般的な脆弱性分類表

1種類 クラス II 3つのカテゴリー
リスクが高い 基本構造 SQLインジェクション
中リスク オペレーティング·システム クロスサイトスクリプティング
リスクが低い

図2 シート分類まとめ表


具体的な実装手順:

1) 「分類の概要」シートの最初の行に名前を付けます。私がとった「第 1 段階の分類」は自分で変更できます。そして、カテゴリ1、2、3にそれぞれ「第1カテゴリの2次分類」、「2番目のカテゴリの2次分類」、「3番目のカテゴリの2次分類」と名前を付けます。Excelの名前付け方法は、改行または列を選択して、図3の赤枠の位置に名前を書き込むか、ctrl+f3で名前を付けます。


図3 Excelの命名方法

2) 「脆弱性分類集計表」シートのB列を選択し、[データ]→[データツール]→[データ有効性]→[設定]→[順序]を選択し、式「=第一分類」を入力します(一番外側の引用符内のみ式を記述します。以下同様)

3) C2の[データ]→[データツール]→[データ検証]→[設定]→[シーケンス]を選択し、次の式を入力します。「=IF(B2="クラスI"、クラスIの2番目のクラス、IF(B2="クラスII"、クラスIIの2番目のクラス、IF(B2="クラスIII"、クラスIIIの2番目のクラス)))」

4) C2、ctrl+cを選択し、C列(C1を除く)を選択し、[形式を選択して貼り付け]→[有効性検証]を選択すると、C列全体(C1を除く)に対して同様のデータ有効性選択機能が実現されます。

以上の手順により、記事冒頭で説明した機能が実現できます。

名前は行または列全体であるため、「一般的な脆弱性分類表」の列 C のデータの有効性には、「一般的な分類表」の最初の行の内容も含まれます。誰かが解決策を持っている場合は、ガイドしてください...よろしくお願いします。

おすすめ

転載: blog.csdn.net/shuizhongmose/article/details/10958971