A B C
1 RANGES VALUES FORMULA NEEDED
2 1 x yes
3 1 x yes
4 2 x no
5 3 no
6 3 y yes
7 3 y yes
8 4 x no
9 5 z no
10 5 y no
したがって、結果を範囲の値で区切って、VALUES 内の重複を識別したいと思います。結果は FORMULA NEEDED 列のようになるようにしたいと思います。
必要なのは、VALUES 列の重複値です。より具体的には、RANGES 列の重複範囲を区切り文字として使用して (これが重要です)、VALUES 列で見つかったものが重複しているかどうかを確認する必要があります。これでおわかりいただけたでしょうか。
したがって、次の場合: - x が番号 1 の行内で重複している場合、これは「はい」です。 - y が番号 3 の行内で重複している場合、空白の値や x などの追加の値が含まれていても、これは「はい」です。
これは私の失敗した試みです:
=IF(AND(A2=A1,B2=B1),"yes","no")
答え1
VBAを使用する必要があります。
必要なのは、列Aと列Bの値を配列に読み込むことです
。配列名前が付けC
られているため、C(1) は A2 + B2 = "1x"、C(2) は A3 + B3 = "1x"、C(3) は A4 + B4 = "2x" などになります。
これに対して for ループを実行して、C(i) に必要なすべての値を読み取ります。
これを入手したら、グーグルで検索するだけで、excel vba how to find duplicate values in an array
これに対する解決策がたくさんあるはずです。
これを取得すると、たとえばブール値(true/false)で別の配列または同じ配列に値を格納する配列が取得される可能性があります。
そこで、別の for ループを実行すると、次のようになります。
for i = 1 to NumberOfRows if C(i) = true then Cells(i, "C").Value = "true" next i
もちろん、他にも解決策はありますが、これが私のやり方です。
質問があれば、遠慮なく聞いてください。