-3

Может ли кто-нибудь помочь создать макрос Excel?

  A |  B |  C |  D |
----+----+----+----+
 20 |  ? | 75 |  2 |
 22 |  ? | 23 |  3 |
 23 |  ? | 25 |  5 |
 24 |  ? | 20 |  1 |
 50 |  ? | 36 |  2 |
 36 |  ? | 22 |  4 |
 75 |  ? | 12 |  1 |

Если ячейка 1(75) из столбца C ищет столбец A, если он находит 75(A7), введите столбец D ячейка 1(2) в ячейку B столбца 7. Повторяйте, пока столбец C не будет закончен. Пожалуйста, любая помощь приветствуется.

2 ответа2

1

Тебе совсем не нужен макрос. Просто используйте функцию в столбце B. Предполагая, что вы находитесь на втором ряду, просто введите это в B2. Затем перетащите функцию вниз.

=IF(C2=A2,D2,"")

Неясно, имеете ли вы в виду, что C ищет ВСЕ столбца A или просто столбец A для этой строки. Если вы хотите, чтобы C просматривал все столбцы A:

=IF(ISNA(VLOOKUP(C2,A:A,1,FALSE)),"",D2)


RESULT:
    A   B   C   D
    20  2   75  2
    22  3   23  3
    23  5   25  5
    24      20  1
    50      36  2
    36  4   22  4
    75  1   12  1

Если вы имеете в виду, что вы хотите, чтобы значение из D было помещено в ту же строку, где было найдено совпадение в строке A, я бы просто сказал: переверните скрипт, чтобы найти A в C, а затем скопируйте D. Это даст тот же результат с меньшим количеством путаницы.

=IF(ISNA(VLOOKUP(A2,C:D,2,FALSE)),"",VLOOKUP(A2,C:D,2,FALSE))

RESULT:
A   B   C   D
20  1   75  2
22  4   23  3
23  3   25  5
24      20  1
50      36  2
36  2   22  4
75  2   12  1
-1

Sub SRI()

lr = Sheets("Лист1").Диапазон ("C" & Rows.Count).End (xlUp).Строка

я = 2

Do While (Worksheets ("Sheet1"). Ячейки (i, 1) <> "")

strSearch = Worksheets("Sheet1").Клетки (я, 1)

Установите acell = Sheets("Sheet1").Диапазон («C2:C» и lr).Найти (Что:= strSearch, LookIn:= xlVlaues, LookAt:= xlWhole, SearchOrder:= xlByRows, SearchDirection:= xlNext, MatchCase:= False, SearchFormat:= False)

Если не ацель, то ничего

х = ацель.Строка

Worksheets("Лист1").Ячейки (i, 2) = Рабочие листы ("Лист1").Клетки (х, 4)

еще

Worksheets("Лист1").Ячейки (i, 2) = "Не найдено в столбце C"

Конец, если

я = я +1

петля

End Sub

''***********КОММЕНТАРИИ*******************************

«Считал первый ряд некоторым заголовком для каждого столбца.

Принимая значения столбца C к "lr".

'Использование цикла Do While для сравнения значений столбца C с столбцом A.

'Значения столбца A берутся в "strsearch" одно за другим при увеличении значения "i".

'Сопоставление значения "strSearch" со значениями столбца C в "lr" и, если это значение совпадает, будет удерживаться "acell".

'Теперь с помощью условия IF NOT, чтобы вывести соответствующие значения столбца D в столбец B.

«Если какое-либо из значений столбца A отсутствует в столбце C, то соответствующий столбец B обновляется комментарием" не найдено в столбце C ".

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .