2017-07-25 2 views
1

複数のデータベースからインポートされたデータがあります。 1つの列に対して、一連の文字列がインポートされ、これらの文字列が変更されます。インポートされたスプレッドシートの別の列に、インポートされたリストに各文字列が何回出現したかのSUMが必要です。文字列の範囲が表示される回数を合計する必要があります

私は既に、マクロが一意の文字列を生成しているので、その合計はその隣に行くことができます。

インポートしたリストを一意のリストと比較し、一意の名前が表示されるたびに特定のセルで+1してすべての一意のリスト名を循環させることができるかどうかについて考えていましたか?

EG:

Imported list    Unique List      Sum 
abc       abc        2 
cbc       cbc        1 
aop       aop        1 
aoz       aoz        1 
abc       xyz        1 
xyz 

は、これは可能であり、そうであればどのように?列のデータ

+4

は、*** COUNTIF()*** –

+0

を使用するか、またはあなたはそれをすべて行うためにピボットテーブルを使用することができます考えてみましょうユニークなリストとカウント。 –

+0

私はすでにCOUNTIF()を使用していましたが、範囲を無制限に設定していませんでした。インポートされる列の長さは変わります。その列の長さは、1週間から10000行の間で100行になるかどうかは不明です。同時に私はVBAよりもむしろ細胞でそれを使用しました –

答えて

0

、考えてみます。

Sub demo() 
    Dim A As Range, B As Range, C As Range 
    Dim N As Long, i As Long 
    Set A = Range("A:A") 
    Set B = Range("B:B") 

    A.Copy B 
    B.RemoveDuplicates Columns:=1, Header:=xlNo 
    N = Cells(Rows.Count, "B").End(xlUp).Row 
    For i = 1 To N 
     Cells(i, "C").Value = Application.WorksheetFunction.CountIf(A, Cells(i, "B").Value) 
    Next i 
End Sub 

enter image description here

+0

ありがとう!それはまさに私の頭の中で考えていたものですが、実際にはできませんでした。見出しを上書きせずに列 "C"にコピーするように結果をオフセットするにはどうすればよいですか? –

+0

@DaleSwire投稿コードから「i = 2」に変更することから始めます。.................その他の変更が必要な場合があります。これはデモコードだけです.................. –

+0

ありがとう@ゲイリーの学生。私は自分のコードに合うように他のものを変更しました。唯一の例外は、最初の行で開始されたことだけです。ルーキーの質問に対する謝罪、私はスクランブルされているので、最初の部分の周りに私の頭をラッキングしてきた! –

関連する問題