#excel #excel-2007 #worksheet-function
#excel #excel-2007 #рабочий лист-функция
Вопрос:
Я хочу сравнить значения в двух столбцах в Excel, как показано на рисунке ниже :-
Используя формулу, я хочу поместить значения в «Значения A, которых нет в B» и «Значения B, которых нет в A». Приветствуется любая помощь.
Здесь я предоставил общий доступ к одному и тому же листу Excel.
Ответ №1:
Сработает следующее — для каждого добавьте формулу в строку 2, а затем перетащите вниз
Значения A, которые не существуют в B
=IF(ISERROR(MATCH($A$2:$A$20,$B$2:$B$17,0)),A2,"")
Результат = x, y, z, i, j, k, l, u
ПРИМЕЧАНИЕ: Ваш пример электронной таблицы неверен, поскольку u находится в столбце A, но не в столбце B, но вы не указываете его в своем наборе результатов в столбце C
Значения B, которые не существуют в
=IF(ISERROR(MATCH($B$2:$B$17,$A$2:$A$20,0)),B2,"")
Результат = q, r, e, f, g
Комментарии:
1. Что означает $? Когда вы пишете the в первой ячейке, $ не получает префикс с ним. Мне пришлось ввести это вручную.
2. $ делает диапазоны абсолютными (т. е. A2: A20 и B2: B17). Это означает, что при перетаскивании формулы вниз ссылки остаются A2: A20 и B2: B17. Если бы вы этого не сделали, диапазоны увеличились бы, т.е. A2: A20, A3: A21, A4: A22. Попробуйте использовать формулу без знаков $, и вы поймете, что я имею в виду…
3. Можете ли вы объяснить, почему для параметра value в функции match требуется абсолютный диапазон? Это работает для меня:-=IF(ISERROR (MATCH(A2, $ B $2: $ B $ 17,0)), A2,»»)
4. Я знаю, что это немного устарело, но ваша функция помогла, но в Excel 2016 я выполнил прямое сравнение ячеек со столбцами без $ и перетащил формулу вниз для остальных. В противном случае это дало мне некоторые ложные несоответствия = IF (ISERROR (MATCH(A1, B: B, 0)), A1,»»)
Ответ №2:
Вы также можете сделать это с помощью предварительного фильтра, предполагая, что данные в столбцах A и B в ячейке C2 write =SUMPRODUCT(—($ B $ 2: $ B $ 17 = A2)) = 0 Выберите данные A1: A12 Щелкните расширенный фильтр, выберите копировать в другое местоположение Диапазон списка = $ A $ 1: $ A $ 22 Диапазон критериев = $ C $ 1: $ C $ 2 (Обратите внимание, что C1 должен быть пустым) В поле Копировать в диапазон выберите E1, скажите OK, это даст вам значения A, которых нет в B
В ячейке D2 Напишите =SUMPRODUCT(—($A$2:$A $22=B2))=0
Выберите данные B1: B17 Щелкните расширенный фильтр, выберите копировать в другое местоположение Диапазон списка = $ A $ 1: $ A $ 22 Диапазон критериев = $ D $ 1: $ D $ 2 (Обратите внимание, что D1 должен быть пустым) В поле Копировать в диапазон выберите F1, скажите OK, это выдаст вам значения B, которых не существует в
Вы можете автоматизировать это с помощью одной строки кода
Sub Get_Data1()
[Список 1].Расширенный фильтр 2, [Crt1], [Dest1], True
End Sub
Sub Get_Data2()
[Список 2].Расширенный фильтр 2, [Crt2], [Dest2], True
End Sub