2 つのリストからのデータ検証 EXCEL 2010

2 つのリストからのデータ検証 EXCEL 2010

動的リストが2セットありますList1List2

リストは OFFSET と COUNTA を使用して作成されるため、新しいエントリはリスト内などに含まれます。

セルA1ではデータ検証リスト関数を使いたいのですが、この2つのリストの両方を参照したいのです。

これを VBA で行う必要があると言われました。

助言がありますか ?

現在使用しているもの:

=(COUNTIF(list1,A1)+COUNTIF(list2,A1))>=1

「カスタム」セクションでは、リストのドロップダウンオプションを使用できません

答え1

マクロを使用して値を1つのリストに強制的にまとめることができます

Sub Validation()

        Dim a$, el As Range
 ' SET THE LIST RANGE, YOU CAN USE MORE THAN 2
        Dim rng1 As Range, rng2 As Range

 'DEFINE THE CELLS USED FOR THE LIST, NAMED RANGE OR INDIRECT CAN BE USED
        Set rng1 = Range("List1")
        Set rng2 = Range("List2")


 'COLLECT VALUES FROM LISTS
        For Each el In rng1
            a = a & el.Value & ","
        Next

        For Each el In rng2
            a = a & el.Value & ","
        Next

 ' SET DESTIANTION OF DATA VALIDATION RULE
        With Range("A1").Validation
            .Delete
            .Add Type:=xlValidateList, Formula1:=a
        End With

            Set rng1 = Nothing
            Set rng2 = Nothing

   End Sub

唯一の欠点は、リストに値を追加するたびにマクロを実行する必要があることです。これは、ワークブックの変更を介して実行できる可能性があります。

関連情報