Сравнить текстовые ячейки в excel
Частичное текстовое сравнение ячеек Excel
Пикабу, помоги, пожалуйста!
Есть две текстовые ячейки Экселя. В одной, скажем, «абырвалг», в другой — «абырвалг; главсельхоз; спасиботов» или «главсельхоз; спасиботов» (или ещё что угодно, кроме абырвалга). Какой формулой посчитать, что во второй ячейке есть «абырвалг» или процент совпадения текстов на предмет элемента «абырвалг»?
Пробовал надстройку «Fuzzy Lookup», но при попытке включения графы similarity она либо уходит в бесконечность, либо Эксель зависает.
Анализировать десятки (сотни) записей руками — глаза сломаешь, да и времени потребуется огромное количество.
Дубликаты не найдены
Спасибо! Ссылка очень помогла, хотя итоговая функция была модифицирована до:
=ЕСЛИОШИБКА(ЕСЛИ(ПОИСК(B2;K2)>0;»true»;»not true»);»not true»)
народ совсем оленился, в гугле первый же ответ: Функция ПОИСК() в MS EXCEL
Дык сортировка по маске. А формула маски весьма гибкая.
А если и её недостаточно- визуалбейсик есть дефолтный.
СУММЕСЛИ или СУММЕСЛИМН практически одинаковые, разбив предварительно на слова по разным ячейка по ;
Суммесли не сработает. Ты с другой похожей функцией спутал
Образец — =ПСТР взять из текста нужную построку
Поиск- =НАЙТИ или ПОИСК — искать образцовую строку в тексте
Фильтр по маске
Из простого только fuzzy. Я обычно им свожу.
Выложите файл.аж посмотреть интересно.попробуем разобратьс.и посмотрите канал на ютубе и книги Николая Павлова.он очень круто рассказывает такие моменты
Ответы.мэйл.ру на другом сайте.
Наша победа! Сообществу быть!
Уважаемые подписчики, спешу вас обрадовать @SupportCommunity разрешил создать сообщество посвящённое Office. Спасибо вам за поддержку))
Сообщество будет посвящено MS Office, Libreoffice и Google docs.
Я хочу чтобы сообщество приносило пользу многим, дабы облегчить работу офисному брату))
Тех кто владеет Libreoffice и Google docs призываю вас быть активней, сообществу понадобятся модераторы, чтобы следить за порядком и публиковать полезные посты.
Лига Microsoft Office
Уважаемая администрация сайта и подписчики, я хочу создать Лигу Microsoft Office, в которой будут размещаться посты про Word, Excel, Access, Power Point, Outlook, Publisher и др., где пользователи смогут узнать что-то новое или поделиться своим опытом.
В настоящее время на сайте имеется много постов про Word и Excel, но они не систематизированы, однако тема интересна и заслуживает отдельного внимания. В этом сообществе я планирую публиковать обучающие посты про Excel. Кто-то также может выкладывать полезные статьи, которые пригодятся пользователям Пикабу.
Тем кому будет не интересна данная тематика смогут поставить сообщество в игнор.
Ссылки на мои посты:
Остальные опубликованы в сообществе «Лайфхак»
Ссылка на сообщество MS, Libreoffice & Google docs
Как сравнить два столбца в Excel на совпадения
Пожалуй, каждый, кто работает с данными в Excel сталкивается с вопросом как сравнить два столбца в Excel на совпадения и различия. Существует несколько способов как это сделать. Давайте рассмотрим подробней каждый из них.
Как сравнить два столбца в Excel по строкам
Сравнивая два столбца с данными часто необходимо сравнивать данные в каждой отдельной строке на совпадения или различия. Сделать такой анализ мы можем с помощью функции ЕСЛИ . Рассмотрим как это работает на примерах ниже.
Пример 1. Как сравнить два столбца на совпадения и различия в одной строке
Для того, чтобы сравнить данные в каждой строке двух столбцов в Excel напишем простую формулу ЕСЛИ . Вставлять формулу следует в каждую строку в соседнем столбце, рядом с таблицей, в которой размещены основные данные. Создав формулу для первой строки таблицы, мы сможем ее протянуть/скопировать на остальные строки.
Для того чтобы проверить, содержат ли два столбца одной строки одинаковые данные нам потребуется формула:
Формула, определяющая различия между данными двух столбцов в одной строке будет выглядеть так:
Мы можем уместить проверку на совпадения и различия между двумя столбцами в одной строке в одной формуле:
=ЕСЛИ(A2=B2; “Совпадают”; “Не совпадают”)
=ЕСЛИ(A2<>B2; “Не совпадают”; “Совпадают”)
Пример результата вычислений может выглядеть так:
Для того чтобы сравнить данные в двух столбцах одной строки с учетом регистра следует использовать формулу:
=ЕСЛИ(СОВПАД(A2,B2); “Совпадает”; “Уникальное”)
Как сравнить несколько столбцов на совпадения в одной строке Excel
В Excel есть возможность сравнить данные в нескольких столбцах одной строки по следующим критериям:
- Найти строки с одинаковыми значениями во всех столбцах таблицы;
- Найти строки с одинаковыми значениями в любых двух столбцах таблицы;
Пример1. Как найти совпадения в одной строке в нескольких столбцах таблицы
Представим, что наша таблица состоит из нескольких столбцов с данными. Наша задача найти строки в которых значения совпадают во всех столбцах. В этом нам помогут функции Excel ЕСЛИ и И . Формула для определения совпадений будет следующей:
Если в нашей таблице очень много столбцов, то более просто будет использовать функцию СЧЁТЕСЛИ в сочетании с ЕСЛИ :
В формуле в качестве “5” указано число столбцов таблицы, для которой мы создали формулу. Если в вашей таблице столбцов больше или меньше, то это значение должно быть равно количеству столбцов.
Пример 2. Как найти совпадения в одной строке в любых двух столбцах таблицы
Представим, что наша задача выявить из таблицы с данными в несколько столбцов те строки, в которых данные совпадают или повторяются как минимум в двух столбцах. В этом нам помогут функции ЕСЛИ и ИЛИ . Напишем формулу для таблицы, состоящей из трех столбцов с данными:
В тех случаях, когда в нашей таблице слишком много столбцов – наша формула с функцией ИЛИ будет очень большой, так как в ее параметрах нам нужно указать критерии совпадения между каждым столбцом таблицы. Более простой способ, в этом случае, использовать функцию СЧЁТЕСЛИ .
=ЕСЛИ(СЧЁТЕСЛИ(B2:D2;A2)+СЧЁТЕСЛИ(C2:D2;B2)+(C2=D2)=0; “Уникальная строка”; “Не уникальная строка”)
Первая функция СЧЁТЕСЛИ вычисляет количество столбцов в строке со значением в ячейке А2 , вторая функция СЧЁТЕСЛИ вычисляет количество столбцов в таблице со значением из ячейки B2 . Если результат вычисления равен “0” – это означает, что в каждой ячейке, каждого столбца, этой строки находятся уникальные значения. В этом случае формула выдаст результат “Уникальная строка”, если нет, то “Не уникальная строка”.
Как сравнить два столбца в Excel на совпадения
Представим, что наша таблица состоит из двух столбцов с данными. Нам нужно определить повторяющиеся значения в первом и втором столбцах. Для решения задачи нам помогут функции ЕСЛИ и СЧЁТЕСЛИ .
=ЕСЛИ(СЧЁТЕСЛИ($B:$B;$A5)=0; “Нет совпадений в столбце B”; “Есть совпадения в столбце В”)
Эта формула проверяет значения в столбце B на совпадение с данными ячеек в столбце А.
Если ваша таблица состоит из фиксированного числа строк, вы можете указать в формуле четкий диапазон (например, $B2:$B10 ). Это позволит ускорить работу формулы.
Как сравнить два столбца в Excel на совпадения и выделить цветом
Когда мы ищем совпадения между двумя столбцами в Excel, нам может потребоваться визуализировать найденные совпадения или различия в данных, например, с помощью выделения цветом. Самый простой способ для выделения цветом совпадений и различий – использовать “Условное форматирование” в Excel. Рассмотрим как это сделать на примерах ниже.
Поиск и выделение совпадений цветом в нескольких столбцах в Эксель
В тех случаях, когда нам требуется найти совпадения в нескольких столбцах, то для этого нам нужно:
- Выделить столбцы с данными, в которых нужно вычислить совпадения;
- На вкладке “Главная” на Панели инструментов нажимаем на пункт меню “Условное форматирование” -> “Правила выделения ячеек” -> “Повторяющиеся значения”;
- Во всплывающем диалоговом окне выберите в левом выпадающем списке пункт “Повторяющиеся”, в правом выпадающем списке выберите каким цветом будут выделены повторяющиеся значения. Нажмите кнопку “ОК”:
- После этого в выделенной колонке будут подсвечены цветом совпадения:
Поиск и выделение цветом совпадающих строк в Excel
Поиск совпадающих ячеек с данными в двух, нескольких столбцах и поиск совпадений целых строк с данными это разные понятия. Обратите внимание на две таблицы ниже:
В таблицах выше размещены одинаковые данные. Их отличие в том, что на примере слева мы искали совпадающие ячейки, а справа мы нашли целые повторяющие строчки с данными.
Рассмотрим как найти совпадающие строки в таблице:
- Справа от таблицы с данными создадим вспомогательный столбец, в котором напротив каждой строки с данными проставим формулу, объединяющую все значения строки таблицы в одну ячейку:
Во вспомогательной колонке вы увидите объединенные данные таблицы:
Теперь, для определения совпадающих строк в таблице сделайте следующие шаги:
- Выделите область с данными во вспомогательной колонке (в нашем примере это диапазон ячеек E2:E15 );
- На вкладке “Главная” на Панели инструментов нажимаем на пункт меню “Условное форматирование” -> “Правила выделения ячеек” -> “Повторяющиеся значения”;
- Во всплывающем диалоговом окне выберите в левом выпадающем списке “Повторяющиеся”, в правом выпадающем списке выберите каким цветом будут выделены повторяющиеся значения. Нажмите кнопку “ОК”:
- После этого в выделенной колонке будут подсвечены дублирующиеся строки:
На примере выше, мы выделили строки в созданной вспомогательной колонке.
Но что, если нам нужно выделить цветом строки не во вспомогательном столбце, а сами строки в таблице с данными?
Для этого сделаем следующее:
- Так же как и в примере выше создадим вспомогательный столбец, в каждой строке которого проставим следующую формулу:
Таким образом, мы получим в одной ячейке собранные данные всей строки таблицы:
- Теперь, выделим все данные таблицы (за исключением вспомогательного столбца). В нашем случае это ячейки диапазона A2:D15 ;
- Затем, на вкладке “Главная” на Панели инструментов нажмем на пункт “Условное форматирование” -> “Создать правило”:
- В диалоговом окне “Создание правила форматирования” кликните на пункт “Использовать формулу для определения форматируемых ячеек” и в поле “Форматировать значения, для которых следующая формула является истинной” вставьте формулу:
- Не забудьте задать формат найденных дублированных строк.
Эта формула проверяет диапазон данных во вспомогательной колонке и при наличии повторяющихся строк выделяет их цветом в таблице:
Сравнение текста по части предложения
Довольно часто возникает проблема сравнения двух строк(ячеек) по части текста. Если точнее — по совпадению слов. Чем больше слов в двух строках совпадает — тем больше они считаются похожими. Так, к примеру текст «Защитная пленка iPhone» и текст «Защитная пленка для Samsung GalaxyII» совпадут только на 40%, а «шла маша по шоссе» и «маша по шоссе шла» — на 100%.
Я не имею ввиду сейчас случаи вроде двух строк: «пр и вет» и «пр е вет». Для подобного сравнения можно написать решения различные, но скорость их выполнения как правило оставляет желать лучшего, да и точность такого сравнения тоже не на высоте, если не использовать всевозможные справочники
На деле подобная задача встречается достаточно часто и предположу, что данная статья может быть полезна очень многим. Итак, как ни жаль, но подобную задачу невозможно решить без применения Visual Basic for Applications(VBA). Решение, которое я предложу — функция пользователя. Поэтому прежде чем его использовать настоятельно рекомендую прочесть следующие статьи:
Option Explicit Option Compare Text ‘————————————————————————————— ‘ Procedure : CompareTxt ‘ DateTime : 10.03.2015 22:46 ‘ Author : The_Prist(Щербаков Дмитрий) ‘ WebMoney — R298726502453; Яндекс.Деньги — 41001332272872 ‘ http://www.excel-vba.ru ‘ Purpose : Сравнивает две строки по совпадению отдельных слов. Выводит процент, саму строку и номер строки ‘ s1 — исходный текст(ссылка на ячейку или текст) ‘ mass — диапазон значений для сравнения с исходным текстом(ссылка на ячейку или текст) ‘ sDelim — разделитель слов в тексте. По умолчанию пробел ‘ lFstLast — указатель, выводить первое или последнее подходящее совпадение. ‘ По умолчанию 0(последнее максимально совпадающее). ‘ Если указать 1 — будет выбрано первое подходящее(в котором совпадают все слова) ‘ lShowAllInfo — указатель на результат. Допускается четыре значения: ‘ -1 — показывается вся информация: Процент совпадения строк, Найденное значение, ‘ Номер строки в указанном диапазоне в которой найдено значение ‘ 1 — Выводится только процент совпадения строк ‘ 2 — выводится только значение ‘ 3 — выводится только номер строки с найденным значением ‘ По умолчанию применяется -1(вся информация) ‘ Синтаксис: ‘ =CompareTxt(A1;B1:B100) — с разделителем по умолчанию ‘ =CompareTxt(A1;B1:B100;»-«) — с разделителем короткое тире(-) ‘ =CompareTxt(A1;B1:B100;»-«;;2) — с разделителем короткое тире(-) и выводом только значения ‘————————————————————————————— Function CompareTxt(s1 As String, mass As Range, Optional sDelim As String = » «, Optional lFstLast As Long = 0, Optional lShowAllInfo As Long = -1) Dim as1, as2, l1 As Long, l2 As Long, lr As Long Dim asStr2 Dim s As String, s2 As String, lp, lTmpCom As Long, lResCom As Long Dim lResR As Long, sResS As String, v as1 = Split(s1, sDelim) asStr2 = mass.Value If Not IsArray(asStr2) Then ReDim asStr2(1 To 1, 1 To 1): asStr2(1, 1) = mass.Value For lr = 1 To UBound(asStr2, 1) as2 = Split(asStr2(lr, 1), sDelim) lResCom = 0 For l1 = LBound(as1) To UBound(as1) s = as1(l1) For l2 = LBound(as2) To UBound(as2) If as2(l2) = s Then lResCom = lResCom + 1 Exit For End If Next l2 Next l1 If lTmpCom = (UBound(as1) + 1) Then Exit For End If End If Next lr v = (lTmpCom / (UBound(as1) + 1)) * 100 Select Case lShowAllInfo Case -1 CompareTxt = «Процент совпадения: » & v & «; Значение: » & sResS & «; Строка в массиве mass: » & lResR Case 1 ‘только процент CompareTxt = v Case 2 ‘только значение строки CompareTxt = sResS Case 3 ‘только номер строки CompareTxt = lResR End Select End Function
Данный код необходимо вставить в стандартный модуль книги(выше я привел ссылки на статьи, чтобы более точно понять куда и как вставить). Функция ищет указанное значение( s1 ) в массиве значений( mass ) и выводит максимально подходящее значение. Максимально подходящее, естественно, полное совпадение — то, которое совпадает на 100%. Если же полного совпадения среди значений массива( mass ) не будет найдено, то будет выведено значение с максимальным процентом совпадения. В таких случаях всегда можно указать последним аргументом( lShowAllInfo ) -1 или 3, чтобы посмотреть номер строки в указанном диапазоне( mass ) и сверить уже глазами подходит это значение или нет.
Синтаксис:
=CompareTxt(A1;B1:B100) — с разделителем по умолчанию
=CompareTxt(A1;B1:B100;»-«) — с разделителем короткое тире(-)
=CompareTxt(A1;B1:B100;»-«;;2) — с разделителем короткое тире(-) и выводом только значения
Аргументы:
s1 — исходный текст(ссылка на ячейку или текст)
mass — диапазон значений для сравнения с исходным текстом(ссылка на ячейку или текст)
sDelim — разделитель слов в тексте. По умолчанию пробел.
lFstLast — указатель, выводить первое или последнее подходящее совпадение. По умолчанию 0(последнее максимально совпадающее). Если указать 1 — будет выбрано первое подходящее(в котором совпадают все слова)
lShowAllInfo — указатель на результат. Допускается четыре значения:
- -1 — показывается вся информация: Процент совпадения строк, Найденное значение, номер строки в указанном диапазоне в которой найдено значение
- 1 — Выводится только процент совпадения строк
- 2 — выводится только значение
- 3 — выводится только номер строки с найденным значением. По умолчанию применяется -1(вся информация)
Ниже функция в файле с примерами использования:
Tips_Macro_ComparePart.xls (50,5 KiB, 2 337 скачиваний)
Статья помогла? Поделись ссылкой с друзьями!
Поиск отличий в двух списках
Типовая задача, возникающая периодически перед каждым пользователем Excel — сравнить между собой два диапазона с данными и найти различия между ними. Способ решения, в данном случае, определяется типом исходных данных.
Вариант 1. Синхронные списки
Если списки синхронизированы (отсортированы), то все делается весьма несложно, т.к. надо, по сути, сравнить значения в соседних ячейках каждой строки. Как самый простой вариант — используем формулу для сравнения значений, выдающую на выходе логические значения ИСТИНА (TRUE) или ЛОЖЬ (FALSE) :
Число несовпадений можно посчитать формулой:
или в английском варианте =SUMPRODUCT(—(A2:A20<>B2:B20))
Если в результате получаем ноль — списки идентичны. В противном случае — в них есть различия. Формулу надо вводить как формулу массива, т.е. после ввода формулы в ячейку жать не на Enter, а на Ctrl+Shift+Enter.
Если с отличающимися ячейками надо что сделать, то подойдет другой быстрый способ: выделите оба столбца и нажмите клавишу F5, затем в открывшемся окне кнопку Выделить (Special) — Отличия по строкам (Row differences) . В последних версиях Excel 2007/2010 можно также воспользоваться кнопкой Найти и выделить (Find & Select) — Выделение группы ячеек (Go to Special) на вкладке Главная (Home)
Excel выделит ячейки, отличающиеся содержанием (по строкам). Затем их можно обработать, например:
- залить цветом или как-то еще визуально отформатировать
- очистить клавишей Delete
- заполнить сразу все одинаковым значением, введя его и нажав Ctrl+Enter
- удалить все строки с выделенными ячейками, используя команду Главная — Удалить — Удалить строки с листа (Home — Delete — Delete Rows)
- и т.д.
Вариант 2. Перемешанные списки
Если списки разного размера и не отсортированы (элементы идут в разном порядке), то придется идти другим путем.
Самое простое и быстрое решение: включить цветовое выделение отличий, используя условное форматирование. Выделите оба диапазона с данными и выберите на вкладке Главная — Условное форматирование — Правила выделения ячеек — Повторяющиеся значения (Home — Conditional formatting — Highlight cell rules — Duplicate Values):
Если выбрать опцию Повторяющиеся, то Excel выделит цветом совпадения в наших списках, если опцию Уникальные — различия.
Цветовое выделение, однако, не всегда удобно, особенно для больших таблиц. Также, если внутри самих списков элементы могут повторяться, то этот способ не подойдет.
В качестве альтернативы можно использовать функцию СЧЁТЕСЛИ (COUNTIF) из категории Статистические, которая подсчитывает сколько раз каждый элемент из второго списка встречался в первом:
Полученный в результате ноль и говорит об отличиях.
И, наконец, «высший пилотаж» — можно вывести отличия отдельным списком. Для этого придется использовать формулу массива:
Выглядит страшновато, но свою работу выполняет отлично 😉