Всем привет. Есть 2 колонки "А" и "В" с цифровыми значениями и колонка "C" со значениями относящимися к колонкам "А" и "В" одновременно. Необходимо в колонку "F" сгруппировать все значения из колонок "A" и "B" (кроме 0) последовательностью обработки колонок "А" и "В" слева-направо и сверху-вниз. Дополнительно, в колонку "G" выводятся значения из колонки "C", для найденных значений (кроме 0) колонок "А" и "B".
Пример: 1. Слева направо, сверху вниз проверяем значения колонок "А" и "В". Т.е. сначала обращаемся к ячейке "А1", далее "В1", далее "А2", далее "В2" и т.д. вниз до конца. 2. Найдя любое значение не =0 переносим его в колонку "F" друг за другом. Здесь это будут цифры -15, 15, 22, 25 и тд как на скриншоте и в файл примере. 3. В колонку "G", соответственно переносятся значения из колонки "С", найденных ранее значений колонок "А" и "В" той же строки. То есть, здесь для первого найденного числа не равное нулю в B5 = -15 выводим соответствующее число из С5 = 4. Далее найдя в А6 значение 15 выводим из С6 значение 5 и тд. Т.е. берем из той же строки.
На скриншоте наглядно показал как группируются цифры, файл пример прилагаю. Благодарю за помощь!
Sub mrshkei()
Dim arr, arr2, lr As Long, i As Long, k As Long
lr = Cells(Rows.Count, 1).End(xlUp).Row
arr = Range("A2:C" & lr)
ReDim arr2(1 To UBound(arr), 1 To 2): k = 1
For i = LBound(arr) To UBound(arr)
If arr(i, 1) <> 0 And arr(i, 3) <> 0 Then
arr2(k, 1) = arr(i, 1)
arr2(k, 2) = arr(i, 3)
k = k + 1
ElseIf arr(i, 2) <> 0 And arr(i, 3) <> 0 Then
arr2(k, 1) = arr(i, 2)
arr2(k, 2) = arr(i, 3)
k = k + 1
End If
Next i
Range("F2").Resize(UBound(arr2), 2) = arr2
End Sub