2016-11-10 1 views
0

どこから始めたらよいかわかりませんが、VBAに入ることを恐れていません必要(これは決して行われませんでしたが、他の言語でもコーディングできます)。Excel 2007:ワークブック1の各列のセルを比較して、ワークブックの列Aの文字列に存在するかどうかを確認します。2-4

私の会社は800番号のマスターリストを持っています。私は4つのグローバルな地域を持っています。私は4つのグローバルワークブックの列Aは、マスターリストから800番号の最後の4を表します。私はすべての「最後の4」がマスターリストに対してチェックされ、表現されていないものを報告することを確認する必要があります。

したがって、各地域ワークブックの列Aに対して、それがマスターワークブックの列Aにある場合はtrueを返します。それ以外の場合は、マスターリストと一致しない行のリストを生成する必要があります。

どこでこのようなスキルを学ぶことができますか?

EDITを追加しました:

masterbook example

region1 exmaple

region2 example

+2

私はあなたが必要とするものを十分に理解していません。それをより良く説明できますか? "4つのグローバルワークブックの列Aは、マスターリストの800番号のうち最後の4つを表します。これは "最後の4"とは何ですか?意味がありません。 – cullan

+0

@cullanマスターリストには、800.111.1234の番号がすべて含まれています。地域のシートには、最後の4つ(XXX.XXX.1234)のみが含まれます。だから私は地域のシート上のすべての最後の4がマスターリストに存在することを確認する必要があります。 – Adam

+0

ブックブックの例と希望の結果\シートのスクリーンショット – bzimor

答えて

1

マスター・ワークブックの場所は、お住まいの地域のワークブックと同じであり、それが変更されていない場合は、ちょうどにこの数式を使用しますセルB2を選択し、CTRL +シフト+ ENTERを入力し、次に入力します。

=IF(OR(TEXT(A2,0)=RIGHT('masterlist example.xlsx'!$A$2:$A$1000,4)),"YES","NO") 
+1

これは、私が必要としていることを達成するのに十分うまくいきます。ありがとうございました。 – Adam

+0

あなたは大歓迎です! – bzimor

2

VBAソリューション:ここでやっていることは、すべてのマスター番号をアレイに保存することです。次に、各領域のワークシートをループしています。領域内の各番号を調べて、マスター配列内の最後の4つの要素がその領域の番号と等しいかどうかを調べています。ブランク。最後に、私は空白でない数字を見つけるために配列を調べます(つまり、これらはいずれの地域にも存在しない数字です)。次にメッセージを出力します。

Sub findMissingNumbers() 
    Dim numbers() As String 
    With Worksheets("Master") 
     For i = 2 To .Range(.Cells(1, 1), .Cells(1, 1).End(xlDown)).Count 
      ReDim Preserve numbers(i) 
      numbers(i - 2) = .Cells(i, 1).Value 
     Next i 
    End With 

    For Each ws In Worksheets 
     With ws 
      If (Not ws.Name = "Master") Then 
       For Each cell In .Range(.Cells(2, 1), .Cells(2, 1).End(xlDown)) 
        For i = 0 To UBound(numbers) - 1 
         last4master = Right(numbers(i), 4) 
         If (last4master = CStr(cell.Value)) Then 
          numbers(i) = "" 
         End If 
        Next i 
       Next cell 
      End If 
     End With 
    Next ws 

    missingNumbers = "" 
    For Each num In numbers 
     If (Not num = "") Then 
      missingNumbers = missingNumbers & num & vbNewLine 
     End If 
    Next num 

    MsgBox missingNumbers 
End Sub 
+0

これはすばらしい解決策であり、私がVBAを学ぶためのより良い見通しです。本当にありがとう、ありがたいことに感謝します。 – Adam

+0

私はうれしいです:)歓声 – cullan

関連する問題