3

Excel シート内にデータの長いリストがあり、代わりにファイル ID を名前に変更します。問題は、同じファイル名に対して異なる ID があるかどうかを最初に確認する必要があることです。これにより問題が発生する可能性があります。

したがって、列 file_id と列 File_name については、同じファイル名に 2 つ以上の ID があるかどうかを比較する数式を作成するのに助けが必要です。

これは可能ですか?

ありがとう

ここに画像の説明を入力

4

3 に答える 3

3

列 A が ID で、列 B が名前であると仮定すると、次の例では、名前ごとに複数の ID があるかどうかを確認します。セル C1 に貼り付けて下にドラッグします。

=IF(COUNTIFS(B:B,"<>"&B1,A:A,A1)>0,"MORE THAN ONE ID FOR THIS NAME","OK")

「COUNTIFS()」関数は、Excel 2007、2010 専用であることに注意してください。

古いバージョンの Excel を使用している場合は、次のような配列数式を使用する必要があります。

=IF(SUM(IF(A:A=A1,IF(B:B<>B1,1,0),0))>0,"MORE THAN ONE ID FOR THIS NAME","OK")

機能させるには、数式を入力するときに Ctrl+Shift+Enter を押す必要があります。

于 2012-07-12T16:45:28.507 に答える
2

これが私の試みです。このコードが行うことは、ID が以前の ID と一致しないファイル名をマークすることです。下の写真を見てください:

スナップショット

VBAでやってみた

ALT + F11 を押して VBA に入ります。左側の列に「Project -VBA Project」と表示されます。この下に、Sheet1 をダブルクリックするか、作業中のシートの名前を入力します。

VBA モード

貼り付けたコード

そこに次のコードを貼り付けます。

Sub mark()

    Dim rng As Range
    Dim row As Integer
    Dim id As Integer
    Dim name As String

    Set rng = Sheets("Sheet1").Range("$A$2")
    row = 0

    Do Until rng.Offset(row, 0) = ""

        id = rng.Offset(row, 0)
        name = rng.Offset(row, 1)

        Do While rng.Offset(row, 1) = name
            If rng.Offset(row, 0) <> id Then
                rng.Offset(row, 0).Interior.Color = 255
                rng.Offset(row, 1).Interior.Color = 255
            End If
            row = row + 1
        Loop

    Loop

End Sub

次の点に注意してください

  1. 私のコードでは、シートの名前は「Sheet1」です。シートの名前が別の場合は、コードの下の行を次のように編集します

    Set rng = Sheets("Your sheet name").Range("$A$2")
    
  2. 私のコードでは、開始 Range(Cell) はA2として指定されています。開始セルがD2などの他のものである場合は、次のようにコードの行を編集します。

    Set rng = Sheets("Your sheet name").Range("$D$2")
    

これらのセルをマークする代わりに何か他のことをしたい場合は、遠慮なくコメントしてください。

于 2012-07-13T15:55:46.467 に答える
2

file_id に複数の列があり、File_name に 1 つの列しかなく、File_name 列のエントリが一意である場合は、非常に簡単です。列 A、B、および C に file_id 情報が含まれ、列 D に File_name が含まれているとします。列 E には、次の式を入力します。 =COUNTA(A2:C2)

これにより、File_name 列の左側の列にある file_id エントリの数がカウントされます。結果が 1 より大きい場合、複数の file_id が存在することがわかります。

于 2012-07-12T16:45:35.187 に答える