2017-12-20 4 views
0

行の一意の値を同じ行にある列に要約する必要があります。私の目標は添付画像の2番目の行にあり、T:Zにはデータが含まれ、AA:ACには概要が含まれています(私はデモ用の値をタイプしました)。最初の行は、ゼロより大きい値のネストされたif関数を使用しようとしたところで現在発生している行ですが、インデックスマッチ関数を使用しても無駄にしました。問題はAA:ACに重複を受け取っているか、すべての値が含まれていないことです。現在、私が正しくあなたを理解していればそれで、あなたはデータの列のシートを持ってしようとしているExcel 2016Excelの行から一意の値を抽出する

+0

"Poor colon prep"はどこから来たのですか?それはあなたのソースデータにはありません。 –

+0

これらの列からサマリーセルの意思決定を教えてください。 – PatricK

+0

こんにちは、パトリック、私は古いデータセットに新しいデータ抽出を強制しているので、サマリー列のデータが必要です。古いデータセットには1つの理由しかありませんでした。私の希望は古いデータセットに理由の新しい列を単に追加することです。ティムは、「コロンビア準備制度」は列Sにある可能性が高い –

答えて

0

を使用して

Summary goal

。列T:Zを見て、列AA:ACに一意の値(非ゼロ)のリストを生成するとします。私はあなたが決して3つ以上のユニークな値を持つことはないと思っていますが、これは単なる漏れではないと確信することはできません。

いずれかの方法で、以下のコードは動作するはずです:

Sub Find_Uniques() 
    Dim X As Integer, Y As Integer, Z As Integer 
    Dim Temp_Strings() As String 
    For X = 1 to 10000 'This assumes you don't have more than 10,000 rows of data 
     ReDim Temp_Strings(1 to 5) As String 
     For Y = 20 to 26 
      If Range(Cells(X,Y).Address).Value <> "" And Range(Cells(X,Y).Address).Value <> 0 Then 
       For Z = 1 to 5 
        If Temp_Strings(Z) = "" Then 
         Temp_Strings(Z) = Range(Cells(X,Y).Address).Value 
         Exit For 
        End If 
        If Temp_Strings(Z) = Range(Cells(X,Y).Address).Value Then Exit For 
       Next Z 
      End If 
     Next Y 
     For Z = 1 to 5 
      If Temp_Strings(Z) <> "" Then Range(Cells(X,Z+26).Address)).Value = Temp_String(Z) 
     Next Z 
    Next X 
End Sub 
0

はあなたの助けありがとうございました。行からデータを抽出する代わりに、ゼロを空白に変更し、空白のセルを削除し、それらを左にシフトしたマクロを書きました。その後、範囲を切り取り、解析対象の古いデータセットに貼り付けるのは簡単でした。

Sub clean_data() 
Sheets("Reason data").Range("H:Z").Replace 0, "" 

Call delete_blanks 
End Sub 
Sub delete_blanks() 

Sheets("Reason data").Range("H:Z").SpecialCells(xlCellTypeBlanks).Delete (xlToLeft) 

Call move_data 

End Sub 
Sub move_data() 
'Copies reason data and pastes it into data worksheet 

Sheets("Reason data").Range("A3:K3", Sheets("Reason data").Range("A3:F3").End(xlDown)).Cut _ 
Sheets("Data").Range("A1").End(xlDown).Offset(1) 
End Sub 
関連する問題