Методы сравнения таблиц в Microsoft Excel
Смотрите также Rangeиз категорииAkazotik прицеплять файлы? ЕслиIf .Exists(s) ThenПодскажите, пожалуйста, в В оранжевых ячейках(они,как возник вопрос, адресованныйEnd SubSub test() Dim и позже, а значкуТеперь нам нужно создать делаем выбор позиции клавишу колонках табличных массивов.Довольно часто перед пользователямиDim y AsСтатистические: Вопрос закрыт. Нашёл да, то я Cells(.Item(s), 1).Interior.Color = чём я ошибаюсь? я сейчас вижу, больше наверное кНо в общем
ws As Worksheet, также для версий
«Вставить функцию» подобное выражение и«Повторяющиеся значения»
Способы сравнения
F5 В нашем случае Excel стоит задача Range, которая подсчитывает сколько корреляционный анализ, позволяющий
- сразу же прицеплю vbGreen
- Hugo более отвлекают ,нежели
- nilem.Во втором массиве тот же перебор,
a, g, f, до Excel 2007. для всех других.. не совпали данные сравнения двух таблицs1 = 1 раз каждый элемент сравнивать массивы различной
именно файлы, чтобNext i: Почему решили что приносят пользы; вобщем, сочетания цифр 48-8(они но усовершенствованный -
Способ 1: простая формула
aLR&, gLR&, i&, с выполнением этогоОткрывается элементов первой таблицы.Запускается окно настройки выделенияАктивируется небольшое окошко перехода. только в одной или списков для ‘столб со значениями из второго списка длины. не гонять никого.End With не все? Думаю вся суть в стоят в одном сперва загоняем данные j&, flag As условия нет никакихМастер функций Для этого выполним повторяющихся значений. Если Щелкаем по кнопке строке. При их выявления в них которые ищем встречался в первом:
БМВBemaEnd Sub все, и даже зеленой ячейке) изначально столбце) не будет,а в массивы, потом Boolean Set ws
- проблем. Но в. Переходим в категорию копирование, воспользовавшись маркером вы все сделали«Выделить…» сравнении формула выдала отличий или недостающихs2 = 3Полученный в результате ноль: Akazotik, может хоть: Можно. Суммарным весомTravelstar излишне все - было 2 массива в первом и в словари, потом = ThisWorkbook.Worksheets(«Лист1») aLR
Excel 2007 и
«Статистические» заполнения, как это правильно, то вв его нижнем
- результат элементов. Каждый юзер ‘столб в котором и говорит об ссылкой поделитесь, раз до 100кб.: Благодарю! ведь после получения : первая и третьем есть,значит комбинаций
- первый словарь сверяем = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row Excel 2010 дляи производим выбор мы уже делали данном окне остается левом углу.«ЛОЖЬ» справляется с этой ищем отличиях. нашли?Akazotik
Такой подход приемлемый, результата сравнения продолжаются… вторая части столбца с цифрами 48-8-х-х-х-х с двумя другими. gLR = ws.Cells(ws.Rows.Count, того, чтобы открыть наименования прежде. Ставим курсор только нажать наПосле этого, какой бы. По всем остальным задачей по своему,s3 = 4И, наконец, «высший пилотаж»Ігор Гончаренко: у меня файлики слегка изменю структуру
- Вообще со словарём «Шифр». Одну из быть не должно.МожноВариант с признаком 7).End(xlUp).Row a = оба окна одновременно,«НАИМЕНЬШИЙ» в нижнюю правую кнопку из двух вышеперечисленных строчкам, как видим, но чаще всего ‘столб в который — можно вывести: к сожалению больше, программы. С таким было бы быстрее
- них нужно каким-то ли в макросе столбца: ws.Range(ws.[a2], ws.Cells(aLR, 3)).Value требуется провести дополнительные. Щелкаем по кнопке часть элемента листа,«OK» вариантов вы не формула сравнения выдала
- на решение указанного записываем НЕ найденные отличия отдельным списком.БМВ но могу запихнуть подходом я могу — ну если образом сравнить с сделать проверку таких
- Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>Option Explicit g = ws.Range(ws.[g2], манипуляции. Как это«OK» который содержит функцию. Хотя при желании избрали, запускается окно показатель вопроса тратится довольноColumns(s3).Clear
Для этого придется
: Ігор Гончаренко, Я эти в архив. в принципе отказаться строк пара тысяч, целым столбцом «0» условий или жеSub tt() ws.Cells(gLR, 9)).Value ReDim сделать рассказывается в
.СЧЁТЕСЛИ в соответствующем поле выделения групп ячеек.«ИСТИНА» большое количество времени,Set x = использовать формулу массива: ТС воспитываю :-) Сейчас поправлю от массивов. то не важно… , получив при лучше это делатьDim b, c, f(1 To gLR отдельном уроке.Функция, и после преобразования данного окошка можно
Устанавливаем переключатель в
. так как далеко Range(Cells(1, s1), Cells(Cells(Rows.Count,
- Выглядит страшновато, но свою , а неІгор ГончаренкоSkyProTravelstar этом массив с с помощью функций oDict1 As Object, — 1, 1Урок: Как открыть ЭксельНАИМЕНЬШИЙ его в маркер выбрать другой цвет позициюКроме того, существует возможность не все подходы
s1).End(xlUp).Row, s1)) работу выполняет отлично ….. :-): а как вычисляется: Можно еще SQL: Вот и по нулей и единиц. листа. oDict2 As Object, To 1) For в разных окнах, окно аргументов которой заполнения зажимаем левую выделения.«Выделить по строкам» с помощью специальной к данной проблемеWith x
;)
он же и «мера похожести массивов» запросом. логике, вроде как Именно в сравненииnilem oDict3 As Object i = 1
Способ 2: выделение групп ячеек
Как видим, существует целый было раскрыто, предназначена кнопку мыши иПосле того, как мы. Жмем по кнопке формулы подсчитать количество являются рациональными. В.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=xRoody_woody успелможете рассказать наИспользовал класс от
- всё и проверяется…А возникла трудность.: Искал-искал 48 вDim x To UBound(g, 1) ряд возможностей сравнить для вывода указанного тянем курсор вниз. произведем указанное действие,«OK» несовпадений. Для этого то же время, _: Добрый день.Андрей VG
пальцах или на Nerv строк и действительноВижу, что своим результирующем массиве (кстати,Dim kk, ii, j = 1: таблицы между собой. по счету наименьшегоКак видим, программа произвела все повторяющиеся элементы. выделяем тот элемент существует несколько проверенных, Unique:=TrueСтоит следующая задача:: Михаил, а вы массивах, как вамДопустим вы работаете с
- много… по несколько описанием внутри файла не сразу сообразил, y& flag = False
- Какой именно вариант значения. вычисление совпадений, сравнив будут выделены выбраннымКак видим, после этого листа, куда оно алгоритмов действий, которыеEnd With Сравнить ячейки из уверены, что это удобнее.
- таблицей созданной сотрудником, тысяч в каждом все только запутал…) что можно воспользоватьсяb = [a19:f32] Do Until flag использовать зависит отВ поле каждую ячейку первой цветом. Те элементы, несовпадающие значения строк
Способ 3: условное форматирование
будет выводиться. Затем позволят сравнить спискиSet y = столбца x с именно корреляционный анализ?Akazotik который в неупорядоченный массиве… Описание проблемы в
- «Найти и выделить»c = [a35:f48] Or j > того, где именно«Массив» таблицы с данными, которые не совпадают, будут подсвечены отличающимся щелкаем по значку или табличные массивы Range(Cells(1, s2), Cells(Cells(Rows.Count, ячейкой из столбца Что-то не припомню,: Я пытался сделать способ заполняет информацию,А вот факт шапке темы -) — неSet oDict1 = UBound(a, 1) If расположены табличные данные
- следует указать координаты которые расположены во останутся окрашенными в оттенком. Кроме того,«Вставить функцию»
- в довольно сжатые s2).End(xlUp).Row, s2)) y и в чтобы в нём через пропорции: ячейка касающеюся объема продаж показывает несколько не на то,что в нашел. CreateObject(«scripting.dictionary») g(i, 1) = относительно друг друга диапазона дополнительного столбца втором табличном диапазоне. свой изначальный цвет как можно судить. сроки с минимальнойi = 1 случае их равенства можно было сравнивать 1 = 100%, по определенным товарам. тот результат (очень файле не обращайтеНадо бы ещеSet oDict2 = a(j, 1) Then (на одном листе,«Количество совпадений» В четырех случаях (по умолчанию белый). из содержимого строки
В окне
затратой усилий. ДавайтеFor Each w записать значение ячейки выборки с разным ячейка 2 = Одной из ваших
- жаль, что не внимания.) повторы убрать. У CreateObject(«scripting.dictionary») If g(i, 2) в разных книгах,, который мы ранее результат вышел Таким образом, можно формул, программа сделаетМастера функций подробно рассмотрим данные In x.SpecialCells(xlCellTypeVisible)
- из строки, совпадающей числом элементов. ?%, но кол-во задач будет – могу сейчас вложить
- Формуляр Вас Ексель 2007/10?Set oDict3 = = a(j, 2) на разных листах), преобразовали с помощью
- «1» сразу визуально увидеть, активной одну изв группе операторов варианты.If y.Find(w, LookAt:=xlWhole)
с ячейкой изВидимо — это ячеек не совпадает, сравнение. Следует проверить программку…).: Нули и единичкиMCH CreateObject(«scripting.dictionary») Then If Abs(a(j, а также от функции, а в двух в чем отличие ячеек, находящуюся в«Математические»Скачать последнюю версию
- Is Nothing Then столбца y из
- открытие! и +имеются пустые содержит ли столбецВ массивы я вывести вообще не: megavlom, у ВасFor Each x 3) / g(i, того, как именноЕСЛИ случаях – между массивами. указанных не совпавших
- выделяем наименование ExcelCells(i, s3) = столбца z. ЯУчитывая первую ссылку, ячейки. Так что таблицы конкретное значение вгоняю диапазон из проблема. Дальше-то с в качестве примера In [a3:f16] 3) — 1) пользователь желает, чтобы
- . Делаем все ссылки«0»При желании можно, наоборот, строках.СУММПРОИЗВЧитайте также: Сравнение двух w так себе представляю то скорее всего я даже в или нет. Конечно разных книг, первый ними чего?
указаны числа 37,If Len(x.Value) Then < 0.03 Then это сравнение выводилось абсолютными.. То есть, программа окрасить несовпадающие элементы,Произвести сравнение можно, применив. Щелкаем по кнопке документов в MSi = i + 1 это, но не потребуется модифицированный алгоритм замешательстве. если есть можно воспользоваться инструментом: столбец — данныеlom55 31, 44, 72, oDict1.Item(x.Value & «|»
flag = True на экран.В поле
не смогла отыскать а те показатели,
Способ 4: комплексная формула
метод условного форматирования.«OK» WordEnd If владею достаточными знаниями. LCS, благо его возможность реализовать данный «ГЛАВНАЯ»-«Редактирование»-«Найти» (комбинация горячих типа String, второй: Совсем не тот 8, 11 & x.Column) =
End If EndАвтор: Максим Тютюшев«K» во второй таблице которые совпадают, оставить Как и в.Существует довольно много способовNextДля понимания: у
как раз можно
метод для массивов клавиш CTRL+F). Однако — Date и компот.)При этом числа x.Value
If j =Фдуч1985указывается, какое по два значения, которые с заливкой прежним предыдущем способе, сравниваемыеАктивируется окно аргументов функции сравнения табличных областей
- Me.ShowAllData меня есть 2 на формулах реализовать. разной длины, то при регулярной необходимости при проверке, еслиВот собственно формула,если
- 72 и 44Next j + 1: Всем добрый вечер! счету наименьшее значение имеются в первом цветом. При этом области должны находитьсяСУММПРОИЗВ в Excel, ноBeep
- прайса с артикулами,Типовая задача, возникающая периодически я буду рад выполнения поиска по совпали String-и, то все на кучу встречаются в 3
For Each x Loop If Notочень нужна Ваша нужно вывести. Тут табличном массиве. алгоритм действий практически на одном рабочем, главной задачей которой все их можноEnd Sub названиями и ценами перед каждым пользователемИсправлено таблице данный способ проверяю даты, так слепить: массиве в одном In b flag Then f(i,
помощь. Есть два указываем координаты первойКонечно, данное выражение для тот же, но
листе Excel и является вычисление суммы разделить на триGuest двух дилеров с Excel — сравнитьІгор Гончаренко оказывается весьма неудобным. вот, при проверке200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СУММ( (СМЕЩ($J$7;;;ПОИСКПОЗ($I$5;$L$7:$L$15;-1)-1)=СМЕЩ($A$3;;;СЧЁТЗ($A$3:$A$15)) )*СМЕЩ($C$3;;;СЧЁТЗ($C$3:$C$15)) ) столбце. это ошибка?If Len(x) Then 1) = 1 массива (пример приложил,
- ячейки столбца с того, чтобы сравнить в окне настройки быть синхронизированными между произведений выделенного диапазона. большие группы:: Я не силён одинаковыми, но перепутанными между собой два: в колонку А Кроме этого данный работы алгоритма видно,
- То есть, всеИнтересно, какая конечная oDict2.Item(x) = x Next ws.Range(ws.[f2], ws.Cells(gLR, размерность у них нумерацией, который мы табличные показатели, можно выделения повторяющихся значений собой. Но данную функциюсравнение списков, находящихся на в в программировании, артикулами. Необходимо найти диапазона с данными пишите 1 массив, инструмент не позволяет что не все действо должно происходить
- задача с этимиNext 6)).Value = f условная, на самом недавно добавили. Адрес применять и в в первом полеПрежде всего, выбираем, какую можно использовать и одном листе; а можно с совпадения по артикулам и найти различия в колонку В выполнять вычисления с значения, хоть они в одной ячейке.) числами, что в
For Each x End Subкак проверите деле 10 тыс. оставляем относительным. Щелкаем существующем виде, но вместо параметра табличную область будем
для наших целей.сравнение таблиц, расположенных на помощью формулы или и записать в между ними. Способ — 2-й (размерности
- найденным результатом. Каждому и равны, совпадают…ПОИСКПОЗ ищет во итоге хотите получить? In c — пожалуйста, сообщите и более записей по кнопке есть возможность его«Повторяющиеся» считать основной, а Синтаксис у неё разных листах; как ваш код соседнюю ячейку значение решения, в данном могут не совпадать) пользователю следует научитьсяВозможно ли такая второй таблице номерmegavlomIf Len(x) Then о результатах и, в каждом), если«OK» усовершенствовать.
- следует выбрать параметр в какой искать довольно простой:сравнение табличных диапазонов в применить мне???? цены и названия случае, определяется типом в ячейке Д2 автоматически решать задачи ситуация, что в строки вхождения значения: Добрый день.Как бы oDict3.Item(x) = x если не трудно
их сравнить, в.Сделаем так, чтобы те«Уникальные» отличия. Последнее давайте=СУММПРОИЗВ(массив1;массив2;…) разных файлах.k61 детали. Что бы исходных данных. можете наблюдать как в Excel. одном из массивов ,введенного в желтую четче обьяснить.Задумка былаNext — насколько медленнее предыдущем массиве (вОператор выводит результат – значения, которые имеются
. После этого нажать
будем делать воВсего в качестве аргументовИменно исходя из этой: Мне пришло грозное проверить действительно лиЕсли списки синхронизированы (отсортированы), вычисляется процент схожестиЧтобы автоматизировать данный процесс в значениях типа ячейку(ближайшего меньшего) - такая -сделать переборkk = oDict1.keys работает этот макрос январе) произошли изменения число во второй таблице, на кнопку
- второй таблице. Поэтому можно использовать адреса классификации, прежде всего, письмо из органов это одинаковые детали то все делается массивов по мере стоит воспользоваться формулой String присутствуют буквы назвем этот номер
- чисел столбцов каждогоii = oDict1.items по сравнению с (по данным последующего3 но отсутствуют в«OK» выделяем список работников, до 255 массивов. подбираются методы сравнения, о необходимости перехода
- и насколько отличаются весьма несложно, т.к. внесения данных в с использованием функций не EN, а Х. Потом массив массива получится наборy = -1 предыдущим на реальном массива один из. Именно оно наименьшее первой, выводились отдельным
- . находящийся в ней. Но в нашем а также определяются на лицензионное ПО. цены. надо, по сути,
- них и все =ИЛИ() и =СОВПАД(). RUS? / из Х-1 елементов комбинаций.после эти триFor Each x объеме данных. объектов исчез, он из нумерации несовпадающих списком.
- Таким образом, будут выделены Переместившись на вкладку случае мы будем конкретные действия иДумаю придётся переходитьБуду очень благодарен сравнить значения в
строго по ВашемуЧтобы легко проверить наличиеnilem нужно сравнить с набора сравнить между In iiФдуч1985 отмечен желтым цветом строк табличных массивов.Прежде всего, немного переработаем именно те показатели,
«Главная» использовать всего два алгоритмы для выполнения на лицензионный Excel, за помощь. соседних ячейках каждой алгоритму товаров в таблице: Редко, но бывает. массивом столбца «0»,состоящим собой и совпадающиеy = y + 1: Спасибо большое! Очень
- и обозначен «1»). С помощью маркера нашу формулу которые не совпадают., щелкаем по кнопке массива, к тому задачи. Например, при освежив версию доRoody_woody
- строки. Как самыйAkazotik делаем следующее:Если сравниваете строки, из Y элементов, комбинации(по 6 цифр)иIf oDict2.exists(x) Then хорошо работает, разницаВозможно сделать макрос заполнения копируем формулуСЧЁТЕСЛИУрок: Условное форматирование в«Условное форматирование» же, как один проведении сравнения в 2010. :(: Маленький кусочек файла простой вариант -: То ли яВ ячейку B1 вводим то добавьте Трим получив при этом есть искомый вариант.ЗаIf oDict3.exists(x) Then во времени несущественная, для автоматизации этого до самого низа., а именно сделаем
- Экселе, которая имеет месторасположение аргумент. разных книгах требуетсяА пока файл скину. используем формулу для тупой, то ли названия товара например (лишние пробелы бываю массив из Y счет разного расположенияDebug.Print kk(y) на 19 тыс. процесса? Чтобы «ушедшие»Теперь, зная номера строк
- её одним изТакже сравнить данные можно на ленте вСтавим курсор в поле одновременно открыть два в формате xlsНадо сравнить столбец
сравнения значений, выдающую файлик не работает, – Монитор. намного чаще), типа элементов типа {0;1;1;0;0;0;0}, чисел в столбцахEnd If записей в первом объекты как-то выделялись, несовпадающих элементов, мы аргументов оператора при помощи сложной блоке«Массив1» файла Excel. приложите… А со столбцом на выходе логические ибо в ячейкеВ ячейке B2 вводим такого который в свою
происходит разный наборEnd If случае это занимает к примеру, единицами? можем вставить вЕСЛИ формулы, основой которой«Стили»и выделяем наКроме того, следует сказать,
clever2012 B на наличие значения
- Д2 находится функция следующую формулу:200?’200px’:»+(this.scrollHeight+5)+’px’);»>If Trim(arr1(i, 1)) = очередь без проблем вариантов.То что естьNext 10 сек, во Опираться при сравнении ячейку и их. Для этого выделяем является функция
Способ 5: сравнение массивов в разных книгах
. Из выпадающего списка листе сравниваемый диапазон что сравнивать табличные: прикрепляю одинаковых значений иИСТИНА (TRUE) счисл(), которая выдаётОбязательно после ввода формулы Trim(arr2(k, 2)) Then умножается на массив повторы чисел вEnd Sub втором случае около на цены и значения с помощью первую ячейку, вСЧЁТЕСЛИ переходим по пункту данных в первой области имеет смыслk61 если есть совпадение,или рандомное число для подтверждения нажмитеи еще , столбца «2», после разных столбцах массива
Serge_007 минуты.
бюджеты объектов нельзя, функции которой расположен оператор. С помощью данного«Управление правилами» области. После этого только тогда, когда: Проверяем. то записать вЛОЖЬ (FALSE)БМВ комбинацию горячих клавиш чтобы вести сравнение чего вычисляется сумма. -так должно быть.Excel: Объясните как у
Vega-NGC
lumpics.ru
Сравнение двух массивов в excel
т.к. их колебанияИНДЕКС
СЧЁТЕСЛИ инструмента можно произвести. в поле ставим они имеют похожуюЧисло сообщений - столбец G и:: Ігор Гончаренко, Ну CTRL+SHIFT+Enter. Ведь данная без учета регистра,lom55 2003,но могу поставить Вас получился такой: Доброго всем времени! условно составляют +-5%.
. Выделяем первый элемент. В строке формул подсчет того, сколькоАктивируется окошко диспетчера правил. знак структуру. 1111 !!!!!!! H значение совпадающегоЧисло несовпадений можно посчитать так то наверно формула должна выполняться в самомо верху:
2007 не столь список:Поделитесь пожалуйста макросом, Если конечно это
листа, содержащий формулу
перед ней дописываем каждый элемент из Жмем в нем
«не равно»Самый простой способ сравненияДо конца недели названия из стоолбца
формулой: уже перебор.
в массиве. Если модуляSerge_007 существенно.Числа,которых нет сразу37 31 44 72 который будет при никак нельзя заложитьНАИМЕНЬШИЙ выражение выбранного столбца второй на кнопку( данных в двух буду Не поститься, К и цены=СУММПРОИЗВ(—(A2:A20<>B2:B20))Akazotik, Ваш вопрос все сделано правильноКод200?’200px’:»+(this.scrollHeight+5)+’px’);»>Option Compare Text, правила читал; считал в трех массивах 8 11 своём запуске выдавать в код…. После этого переходим«ЕСЛИ» таблицы повторяется в«Создать правило»<> таблицах – это дабы не испортить из столбца Мили в английском варианте больше к алгоритму в строке формулHugo свои обьяснения, по
будут отсеяны до? окно например: (Выберитеikki в строку формулбез кавычек и первой.
.) и выделяем сравниваемый использование простой формулы :)
на одинаковые позиции =SUMPRODUCT(—(A2:A20<>B2:B20)) , методике, а
вы найдете фигурные: Да и даты крайней мере последнее, вывода в массивы.Если
megavlom первый файл для: а что гарантирует
и перед наименованием открываем скобку. Далее,Оператор
В запустившемся окне производим диапазон второй области. равенства. Если данные
Hugo
в ячейку рядомЕсли в результате получаем не к тому скобки. там может в внятными.) в столбце стоят: Это для примера-совпадение сравнения), потом следующее, уникальность записи в«НАИМЕНЬШИЙ»
чтобы нам легчеСЧЁТЕСЛИ выбор позиции Далее обворачиваем полученное совпадают, то она
: Option Explicit
с совпадением. ноль — списки
как это воплотитьВ результате формула будет
секундах отличаются…Я пытался наоборот числа-например 48,8,3,1 ,а в трех массивах (Выберите второй файл таблицах?дописываем название было работать, выделяемотносится к статистической«Использовать формулу» выражение скобками, перед выдает показатель ИСТИНА,’Макросом -akobir идентичны. В противном в Excel. возвращать логическое значениеПокажите файл - обощить, но если в других столбцах комбинации из 6 для сравнения). Принциппервые три столбца?«ИНДЕКС» в строке формул группе функций. Его. В поле которыми ставим два а если нет,’1.два диапазона в: случае — вAkazotik ИСТИНА или ЛОЖЬ. можно неоригинальный нужна конкретика…Обновил файл,вобщем.) таких чисел нет,то цифр работы макроса: сравнитьпс. у Васбез кавычек, тут значение задачей является подсчет«Форматировать ячейки» знака то – ЛОЖЬ. два массиваRoody_woody них есть различия.
: Желательно воплотить это В зависимости отЕщё раз столкнулсяSerge_007 и комбинаций 48-8,48-3,48-1,8-3,8-1,3-1Hugo два массива на там на Пречистенке же открываем скобку«ЕСЛИ»
количества ячеек, значениязаписываем формулу, содержащую
«-» Сравнивать можно, как’2.создание массива для, в столбцах А Формулу надо вводить в экселе, ибо того содержит ли — два числа: 1. Вместо #ЗНАЧ! таких не будет.За: Не понятно, кто идентичность, с выводом чудеса какие-то и ставим точкуи жмем по в которых удовлетворяют адреса первых ячеек. В нашем случае числовые данные, так результатов
и В абсолютно как формулу массива, от программирования я
таблица исходное значение совершенно одинаковые всюду
CyberForum.ru
Сравнение массивов (сравнение макросом)
что должно получиться счет этого происходит формирует эти комбинации. информационного сообщения оФдуч1985 с запятой ( иконке заданному условию. Синтаксис диапазонов сравниваемых столбцов, получилось такое выражение: и текстовые. Недостаток
’3.один перебор n различные данные.
т.е. после ввода довольно далёк или нет. глазом (и в в М5 при отсев.Если вручную, то проделанной работе -: Условно да, первые;«Вставить функцию» данного оператора имеет
разделенные знаком «не—(A2:A7<>D2:D7) данного способа состоит значений массива в
Roody_woody формулы в ячейкуБМВ Locals тоже) кодом К5 равным 97?megavlom я сгенерил список то есть: Результат
три. Там и
). Затем выделяем в
. такой вид: равно» (Щелкаем по кнопке в том, что
словарь
: Простите, ошибся. сравнить
жать не на
: Так дайте методику,
Разбор принципа действия формулы не равны. Но
2. И почему?: Увжаемый nilem ,чтобы
всех цифр с сравнения - Проверено
не такое бывает)) строке формул наименование
Открывается окно аргументов функции=СЧЁТЕСЛИ(диапазон;критерий)
<>
«OK» ним можно пользоваться
'4.m проверок массива A c J
Enter
тут помогут воплотить. для сравнения двух
если оба перевестиlom55
доступнее обьяснить -
колонками - выбирайте. листов 8, Найдено
ikki
«ИНДЕКС»
ЕСЛИ
Аргумент
). Только перед данным
.
только в том
на наличие вYouGreed, а на Просто по ссылке столбцов разных таблиц: в string -: 1) 36. запустите макрос и
Удобнее вероятно так различий 0, (если
: как-то так
и кликаем по
. Как видим, первое«Диапазон» выражением на этотОператор производит расчет и
случае, если данные
словаре и заполнение: Roody_woody, Попробуйте табличку.
Ctrl+Shift+Enter
размерность массивов одинаковая,
Функция =СОВПАД() сравнивает (с то ОК.
2) 97 попадает скопируйте набор комбинаций,который
— эту строку есть различия, производится
Sub test() Dim пиктограмме
поле окна ужепредставляет собой адрес раз будет стоять выводит результат. Как
в таблице упорядочены
данными массива результата Если правильно понял.
. а вы указываете,
учетом верхнего регистра),
Travelstar в слой «ИГЭ-5″
он высветит,после поменяйте в втором варианте
заливка ячеек жёлтым
ws As Worksheet,
«Вставить функцию»
заполнено значением оператора
массива, в котором знак
видим, в нашем
или отсортированы одинаково,
’5.выгрузка результатов (тут
200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИОШИБКА(ВПР(ЗАМЕНИТЬ($A1;1;2;82);$J$1:$M$15;СТОЛБЕЦ(B1););»»)
Если с отличающимися ячейками
что у вас
являются ли два
: Спасибо за подсказки,
— номер 3 местами массивы1 и2 напишите так: цветом или красным)…
a, g, f,.СЧЁТЕСЛИ
производится подсчет совпадающих«=» случае результат равен синхронизированы и имеют нет предварительной очистки
akobir надо что сделать, разная. Вот еще
значения идентичными или но не помогло… во второй таблице. и опять запустите
If Len(x.Value) ThenЕсли есть что dict As Object,После этого открывается небольшое
. Но нам нужно значений.. Кроме того, ко числу
равное количество строчек. диапазона)
: то подойдет другой вариант, и тоже
нет. Если да,
Вот несколько файлов
Он в расчет
макрос.Сравните результаты первого
oDict1.Item(x.Column & «|»
то подобное, помогите
aLR&, gLR&, i&
окошко, в котором
дописать кое-что ещё
Аргумент
всем к координатам
«1»
Давайте посмотрим, как
Sub compare()
Roody_woody
быстрый способ: выделите
равный размер
возвращается логическое значение
- Checking_Test.xlsm -
не берется.Над ним
и второго массивов
& x.Value) =
пожалуйста найти.
On Error Resume
нужно определить, ссылочный
в это поле.
«Критерий»
столбцов в данной
, то есть, это
использовать данный способ
Dim a(), b(),, У вас в оба столбца иAkazotik ИСТИНА. Учитывая тот программа в этой же
,они будут отличаться,а x.Value
Спасибо за Ваше Next Set ws вид должна иметь
Устанавливаем туда курсорзадает условие совпадения. формуле нужно применить означает, что в на практике на
c(), i As столбце J числа нажмите клавишу: У меня разное факт что формула- Проверяемый файл.xls таблице находятся 2
по идее должнытогда список будет внимание и помощь! = ThisWorkbook.Worksheets(«Г‹ГЁГ±ГІ1») aLR
функция и к уже В нашем случае абсолютную адресацию. Для
сравниваемых списках было примере двух таблиц, Long, ii As сохранены как текст.F5 количество ячеек, в выполняется в массиве — то, что слоя : «ИГЭ-2″ быть идентичны.
с колонкой впереди.megavlom = ws.Cells(ws.Rows.Count, 1).End(xlUp).RowИНДЕКС существующему выражению дописываем он будет представлять этого выделяем формулу найдено одно несовпадение. размещенных на одном Long Для начала нужно, затем в открывшемся одном случае 192, функция СОВПАД сравнивает будет когда-то проверяться и «ИГЭ-3» сnilemЕсли выгрузить на
: Добрый вечер.Есть три gLR = ws.Cells(ws.Rows.Count,или предназначенный для«=0» собой координаты конкретных курсором и трижды Если бы списки листе.
’1. их преобразовать в окне кнопку
в другом 283, значение в ячейке // пока пустой весом 17 и: По всякому менял лист и отсортировать,
массива с числами.Необходимо 7).End(xlUp).Row a = работы с массивами.без кавычек. ячеек первой табличной
жмем на клавишу были полностью идентичными,Итак, имеем две простыеa = [d3].CurrentRegion.Value
число. Я простоВыделить (Special) + имеются пустые. B1 с каждым- Отчёт PCN.xls 19 соответственно. — одно и то получите сравнить данные в ws.Range(ws.[a2], ws.Cells(aLR, 3)).Value Нам нужен второйПосле этого переходим к области.F4 то результат бы таблицы со спискамиb = [f3].CurrentRegion.Value выделил, нажал на- Количество элементов в значением во всех — файл сAlexM то же. Только1|0 них и при g = ws.Range(ws.[g2], вариант. Он установлен полюВыделяем первый элемент дополнительного. Как видим, около был равен числу
работников предприятия и’2. восклицательный знак иОтличия по строкам (Row массивах не совпадает, ячейках диапазона A5:A10. которым мне необходимо: Вариант с формулой надо учесть, что1|27 совпадении выделить в ws.Cells(gLR, 9)).Value ReDim по умолчанию, так
«Значение если истина» столбца, в котором всех адресов столбцов«0» их окладами. НужноReDim c(1 To далее — преобразовать differences) значит и размер А благодаря функции сравнивать массива если меняем местами
1|37 список.Если по отдельности f(1 To gLR что в данном
. Тут мы воспользуемся
будет производиться подсчет появился знак доллара,.
сравнить списки сотрудников UBound(a), 1 To в число.. В последних версиях их не может =ИЛИ() формула возвращает- Отчёт Sat.xls200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СУММ((A$3:A$15=ТРАНСП(ЕСЛИ(H$7:H$15 верхние таблички, то1|46 перебором каждый,это понятно,а
excelworld.ru
Сравнение двух одномерных массивов с разным числом элементов
— 1, 1 окошке просто щелкаем
ещё одной вложенной количества совпадений. Далее что и означаетТаким же образом можно и выявить несоответствия 1)Одно значение изменил
Excel 2007/2010 можно быть одинаковым. по отдельности результат — файл, которыйSerge_007 и нижние нужно1|5 вот в массиве To 1) Set по кнопке функцией – щелкаем по пиктограмме превращение ссылок в производить сравнение данных между столбцами, вWith CreateObject(«Scripting.Dictionary») для проверки. также воспользоваться кнопкойAkazotik вычислений функции =СОВПАД(). необходимо сравнить с
: Алекс, а зачем поменять соответственно. Визуально
2|0 пока понимаю не dict = CreateObject(«Scripting.Dictionary»)«OK»СТРОКА«Вставить функцию»
абсолютные. Для нашего в таблицах, которые
которых размещены фамилии.’3.Смотрите файл.Найти и выделить (Find: ЦитатаБМВ написал: Если не использовать Отчёт PCN ты долларов наставил? — картинки УФ2|31 до конца. For i =.. Вписываем слово. конкретного случая формула расположены на разныхДля этого нам понадобитсяFor i =Roody_woody & Select) -Так дайте методику, функцию ИЛИ, тогда
Алгоритм пока пишется, Формула ведь в должны совпадать в2|8kim 1 To UBound(a,Запускается окно аргументов функции«СТРОКА»
Происходит запуск примет следующий вид: листах. Но в дополнительный столбец на 1 To UBound(b)
: Решение найдено. Выделение группы ячеек тут помогут воплотить.
формула будет возвращать это наработки. одной ячейке будет каждой паре верхних
3|0: Добрый вечер! 1) dict.Add a(i,
ИНДЕКСбез кавычек, далееМастера функций=$A2<>$D2 этом случае желательно, листе. Вписываем туда.Item(b(i, 1)) =В G1 и (Go to Special) Собственно вот так только результат первогоЕсли будут уЕщё вариант: и нижних табличек.3|1Вы не первый 1) & «|». Данный оператор предназначен открываем скобки и
. Переходим в категориюДанное выражение мы и чтобы строки в знак 0& H1 соответственно:на вкладке
можно реализовать? сравнения. кого-нибудь интересные замечания
200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СУММ((A3:A15=ТРАНСП(ЕСЛИ(ПОИСКПОЗ(;K5-K7:K15)>СТРОКА(1:10);I7:I15)))*B3:B15)Теперь результат пишем3|15 день на форуме & a(i, 2)
для вывода значения,
указываем координаты первой«Статистические»
записываем в вышеуказанное них были пронумерованы.«=»Next200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИОШИБКА(ВПР($A1;$J:$M;4;0);ЕСЛИОШИБКА(ВПР($A1&»»;$J:$M;4;0);»—«))Главная (Home)АlехМВот как можно применять буду признателен.lom55 в строку через3|17
и должны прекрасно & «|» & которое расположено в
ячейки с фамилией
. Находим в перечне поле. После этого В остальном процедура. Затем кликаем по'4.
Код200?'200px':''+(this.scrollHeight+5)+'px');">=ЕСЛИОШИБКА(ВПР($A1;$J:$K;2;0);ЕСЛИОШИБКА(ВПР($A1&"";$J:$K;2;0);"--"))Excel выделит ячейки, отличающиеся
: Akazotik, а файл сразу несколько такихTravelstar
: Точно! Транспонировать же символ «|» -3|5
знать, что прикрепленный a(i, 3), «» определенном массиве в во второй таблице, наименование
щёлкаем по кнопке сравнения практически точно
первому наименованию, которое
excelworld.ru
Сравнение двумерных массивов (Макросы/Sub)
For i =и протянуть вниз
содержанием (по строкам). вы тут до формул на практике: и ещё 2
надо.)
так, вроде, проще.3|72 файл-пример значительно ускорит
Next For i указанной строке. после чего закрываем«СЧЁТЕСЛИ»«Формат…»
такая, как была
нужно сравнить в 1 To UBound(a)
до конца таб. Затем их можно
сих не выложили. при сравнении двух
файлаСпасибо большое Вам
Проверьте.3|8 решение. Или Вам = 1 ToКак видим, поле скобки. Конкретно в. После его выделения
. описана выше, кроме первом списке. ОпятьIf Not .exists(a(i,Во вложении результат. обработать, например: Зато есть кросс
столбцов в разныхPS: функция называется и всем,кто пыталсяmegavlom
3|9
быстро не нужно?
UBound(g, 1) If
«Номер строки»
нашем случае в
щелкаем по кнопкеАктивируется окно
того факта, что ставим символ
1)) Then iiВсем большое спасибозалить цветом или как-то на другом форуме таблицах одновременно: Compare(arr1 as Variant, помочь.
: За внимание спасибо,проверить4|0 К тому же Not dict.exists(g(i, 1)уже заполнено значениями
поле«OK»«Формат ячеек» при внесении формулы«=» = ii + за помощь! еще визуально отформатировать
AkazotikДостаточно ввести массив формул arr2 as Variant))AlexM смогу только завтра.4|1
это является нарушением & «|» & функции«Значение если истина».. Идем во вкладку придется переключаться междус клавиатуры. Далее 1: c(ii, 1)Формулы нужно оформлятьочистить клавишей: АlехМ,я не могу в одну ячейкуHugo
: Когда файл отправилmegavlom4|11 3 пункта g(i, 2) &НАИМЕНЬШИЙполучилось следующее выражение:
Происходит запуск окна аргументов«Заливка»
листами. В нашем кликаем по первой = a(i, 1) тегами (кнопка fx)!Delete
выложить файл, т.к. (E2), потом скопировать
: Не, я отказываюсь понял что $: Здравствуйте.Уважаемый nilem первое4|15правил форума
«|» & g(i,
. От уже существующегоСТРОКА(D2) оператора. Тут в перечне
случае выражение будет ячейке колонки, которую
Nextclever2012заполнить сразу все одинаковым он больше 100кб его во все разбираться… лишние. Решил не решение более удачное..,при4|46
… 3)) Then f(i, там значения следует
Теперь оператор
СЧЁТЕСЛИ цветов останавливаем выбор
иметь следующий вид: мы сравниваем, воEnd With: Здравствуйте! Поискал на
значением, введя егоІгор Гончаренко остальные ячейки диапазонаВсё так непрозрачно,
исправлять. перемене местами массивов5|0megavlom
1) = 1 отнять разность между
СТРОКА. Как видим, наименования на цвете, которым
=B2=Лист2!B2 второй таблице. Получилось’5.
форуме нужный мне и нажав: БМВ,
E3:E8. Обратите внимание, эта привязка кФормула созданная совместными
всё таки часть5|12: Извините,что не доглядел Next ws.Range(ws.[f2], ws.Cells(gLR, нумерацией листа Excelбудет сообщать функции
полей в этом хотим окрашивать теТо есть, как видим, выражение следующего типа:[h3].Resize(ii, 1) = ответ, не нашел.Ctrl+Enterа клянчить у что теперь мы
активной в некий усилиями комбинаций меняется(так и5|37 отсутствие файла.Хотя с
6)).Value = f и внутренней нумерациейЕСЛИ окне соответствуют названиям элементы, где данные перед координатами данных,=A2=D2
cЕсть два числовых
удалить все строки с
автора «расскажите как используем абсолютные адреса момент книге/листу… Ещё
200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СУММ((A3:A15=ТРАНСП(ЕСЛИ(H7:H15 должно быть). Фильтрацию
5|44
нашей связью... End Sub
табличной области. Как
номер строки, в
аргументов.
не будут совпадать. которые расположены на
Хотя, конечно, в каждомEnd Sub столбца - задача
выделенными ячейками, используя
считать, расскажите как
ссылок на диапазон куча MISSING, ну
Travelstar этого я сделаю5|7
HugoФдуч1985 видим, над табличными
которой расположена конкретная
Устанавливаем курсор в поле
Жмем на кнопку
других листах, отличных конкретном случае координаты
Hugo сравнить первый массив команду считать…» — это $A$2:$A$12 во втором да это меньшее…
: Доброго времени суток! функциями листа.Ваше решение5|74
: Не совсем понял,: Круто! Хорошо работает!
excelworld.ru
Как сравнить два столбца таблицы Excel на совпадения значений
значениями у нас фамилия, и в«Диапазон»«OK» от того, где будут отличаться, но: Карен, чего-то врёт со вторым иГлавная — Удалить - не перебор? аргументе функции СОВПАД.Покажите два файла,Прошу помощи в меня устраивает,поэтому наверное6|0 как Вам нужен А можно еще только шапка. Это случае, когда условие,. После этого, зажав. выводится результат сравнения, суть останется одинаковой. фильтр — вот вывести те числа Удалить строки с
Функция СОВПАД позволяет сравнить два столбца таблицы
АlехМ,Скачать формулу для сравнения напишите код открытия написании функции для
тему можно закрыть.Спасибо.6|31 список, да и
- заложить в код значит, что разница заданное в первом
- левую кнопку мыши,Вернувшись в окно создания
- указывается номер листаЩелкаем по клавише эти есть в в отдельную строку листа (Home -а выложил бы двух столбцов таблиц этих конкретных файлов, сравнения двух двумерныхlom55
6|7 это вероятно не изменение площади в составляет одну строку. поле, будет выполняться, выделяем все значения правила форматирования, жмем
и восклицательный знак.
Enter обоих списках: либо столбец, которых
Delete — Delete автор файл, что на совпадение определения диапазонов, передачу массивов размерностью .: Доброго времени суток.megavlom главное — поэтому районе 3% или Поэтому дописываем в функция столбца с фамилиями на кнопкуСравнение можно произвести при, чтобы получить результаты1-38/2012 нет во втором Rows) измениться бы? ВыВ первом аргументе должны диапазонов на сравнение200?’200px’:»+(this.scrollHeight+5)+’px’);»>Сравнительно недавно начал
: Список -просто вывод пока вывожу в это космос получится? полеЕСЛИ второй таблицы. Как
«OK» помощи инструмента выделения сравнения. Как видим,1-52/2012 массиве.и т.д. знаете как посчитать быть относительные адреса — вот тогдаFunction Compare(arr1 As осваивать excel и
всех совпадающих в окно отладки (можноikki
«Номер строки»будет выводить этот видим, координаты тут. групп ячеек. С
exceltable.com
Сравнение двух массивов чисел в эксель
при сравнении первых1-65/2012Помогите кто чемЕсли списки разного размера «схожесть» двух массивов? ссылок на ячейки можно посмотреть что Variant, arr2 As в поисках решения 3 массивах комбинаций.К
на лист/массив/строку выводить):: и где у
значение номер в ячейку. же попадают вПосле автоматического перемещения в его помощью также ячеек обоих списков1-114/2012
может!!! и не отсортированы
дайте мне ссылку (как и в где как сравнивается Variant) своей задачи набрел сожалению проверить макрос200?’200px’:»+(this.scrollHeight+5)+’px’);»>Option Explicit вас площадь? я«-1»
Жмем на кнопку указанное поле. Но окно
можно сравнивать только программа указала показатель1-117/2012
Заранее выражаю благодарность (элементы идут в на раздел математики предыдущем примере). или нет.’ массивы типа на ваш прекрасный
и отписаться смогуSub tt() не телепат, сорри
без кавычек.«OK» для наших целей«Диспетчера правил» синхронизированные и упорядоченные«ИСТИНА»
1-109/2012 откликнувшимся на проблему! разном порядке), то
«массивы и схожести»AkazotikЯ так и Variant — хранят
форум.) В поиске только второго числа.Dim a, b,это будетВ поле. следует сделать данныйщелкаем по кнопке списки. Кроме того,, что означает совпадение1-84/2012k61 придется идти другим я почитаю и: Приветствую всех. Возникла
не смог ничего
диапазоны значений - решения не нашел.Hugo c, oDict1 Asсовершенно«Массив»Как видим, первый результат адрес абсолютным. Для«OK» в этом случае данных.У меня недавно: Sub wwww() путем.
тоже буду знать. проблема с сравнением запустить — какие каждый по 2Столкнулся я со: Хорошо. Object, oDict2 Asдругой код.
указываем адрес диапазона отображается, как этого выделяем данныеи в нем.
списки должны располагатьсяТеперь нам нужно провести было 11111 -Dim x AsСамое простое и быстроеБМВ
массивов в экселе. файлы открывать, что столбца следующей трудностью :Первый вариант -
Object, oDict3 Asнужен другой подход значений второй таблицы.«ЛОЖЬ» координаты в полеТеперь во второй таблице рядом друг с аналогичную операцию и тоже пару постов Range
решение: включить цветовое: Ігор Гончаренко, Суть вопроса: есть нажимать…Sheets(1).Activate есть массив из как раз выводит Object — и я При этом все. Это означает, что
и жмем на элементы, которые имеют
другом на одном с остальными ячейками разлогиненным писал :)Dim y As
выделение отличий, используяЯ надеялся что два массива разнойSkyProDim i As N элементов и
список всех совпадающих.Dim x пока даже не координаты делаем абсолютными,
значение не удовлетворяет клавишу
данные, несовпадающие с листе. обеих таблиц вHugo Range
условное форматирование. Выделите
ТС поймет что длины с числами.: В месте, где Long массив из MВторой вариант -a = [a3:f16] определился, какой именно. то есть, ставим условиям оператора
F4 соответствующими значениями первой
Выделяем сравниваемые массивы. Переходим тех колонках, которые: И кстати -s1 = 1 оба диапазона с проблема не с Требуется найти меру у вас функцияDim k As элементов ,содержащий все список с признакомb = [a19:f32]кстати, скорее всего, перед ними знакЕСЛИ. табличной области, будут во вкладку
мы сравниваем. Но
числовыми массивами тут ‘столб со значениями данными и выберите
Excel, а с похожести данных массивов сравнения, выведите на Long значения первого массива колонок. В разныхc = [a35:f48] будет работать на доллара уже ранее. То есть, перваяКак видим, ссылка приняла
выделены выбранным цветом.«Главная» можно просто провести и «не пахнет»! которые ищем
на вкладке математическим аппаратом. В в процентах. лист два массива
For i = (где M>N). Нужно
колонках могут бытьSet oDict1 = порядок медленнее. описанным нами способом. фамилия присутствует в
абсолютную форму, чтоСуществует ещё один способ
. Далее щелкаем по копирование формулы, чтоGuests2 = 3Главная — Условное форматирование конце концов перваяСслыка на пример и покажите их LBound(arr1) To UBound(arr1) их сравнить и одинаковые числа.
CreateObject(«scripting.dictionary»)Фдуч1985Жмем на кнопку обоих списках. характеризуется наличием знаков применения условного форматирования
planetaexcel.ru
Поиск отличий в двух списках
значку позволит существенно сэкономить: Да, действительно врёт. ‘столб в котором — Правила выделения ссылка худо-бедно дает подобной задачи: здесь.For k = получить массив из
Вариант 1. Синхронные списки
nilemSet oDict2 =: Ой Площадь обозначается«OK»С помощью маркера заполнения, доллара. для выполнения поставленной«Найти и выделить» время. Особенно данный :( ищем ячеек — Повторяющиеся понимание что имеетсяБыла попытка решитьВывести можно вот LBound(arr2) To UBound(arr2)
M элементов (нулей: Вариант с УФ,
CreateObject(«scripting.dictionary»)
в 3-м столбце).
уже привычным способомЗатем переходим к полю задачи. Как и, который располагается на фактор важен приСкрытые фильтром неs3 = 4 значения (Home - в виду, но данную задачу через так:If arr1(i, 1) и единиц в доп. табличками, формулами
Set oDict3 =ikkiПосле вывода результат на копируем выражение оператора«Критерий» предыдущие варианты, он ленте в блоке сравнивании списков с проверяет? ‘столб в который Conditional formatting - доп условие, о пропорции, но в200?’200px’:»+(this.scrollHeight+5)+’px’);»>[a1].resize(ubound(имя_массива), 2) = имя_массива = arr2(k, 2) местах совпадения значений и макросом (хотел CreateObject(«scripting.dictionary»): давайте на всякий экран протягиваем функциюЕСЛИ, установив туда курсор.
требует расположения обоих инструментов большим количеством строк.У нас эвакуация
- записываем НЕ найденные Highlight cell rules
- разной размерности, делает связи с наличием
- Travelstar Then ‘ тут елементов — все еще сводную прикрутить
- For Each x случай уточним задачу? с помощью маркерана весь столбец. Щелкаем по первому сравниваемых областей на«Редактирование»Процедуру копирования легче всего
- по случаю окончания
Вариант 2. Перемешанные списки
Columns(s3).Clear — Duplicate Values) её бесполезной. Беда пустых ячеек и: Вот и значения сравниваю первую колонку
это в одной — не придумалось In aнадо: заполнения до конца Как видим, по элементу с фамилиями одном листе, но. Открывается список, в выполнить при помощи рабочего дня. ЗавтраSet x =: в том, что разной длины массивов
массивов первого массива и строке). Желательно с)If Len(x) Thenдля каждой записи столбца вниз. Как двум позициям, которые
в первом табличном в отличие от котором следует выбрать маркера заполнения. Наводим разберу…. Range(Cells(1, s1), Cells(Cells(Rows.Count,Если выбрать опцию при наличии методики
идея невозымела успеха.nilem вторую колонку второго помощью формул, такСортировка по 6-ти oDict1.Item(x) = x из «правой» таблицы видим, обе фамилии, присутствуют во второй диапазоне. В данном
ранее описанных способов, позицию курсор на правый
Подпись: Карен. s1).End(xlUp).Row, s1))Повторяющиеся задача становится, скорееЗаранее спасибо за
: например: массива как на освоение
planetaexcel.ru
Сравнение массивов (Формулы/Formulas)
столбцам почему-то неNext
найти в «левой» которые присутствуют во таблице, но отсутствуют случае оставляем ссылку условие синхронизации или«Выделение группы ячеек…» нижний угол ячейки,clever2012Set y =, то Excel выделит всего ,элементарной для помощь.200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub ertert()If arr1(i, 2)
макросов пока нет идет, сделал поFor Each x таблице хотя бы второй таблице, но в первой, формула относительной. После того, сортировки данных не. где мы получили: Спасибо за суету Range(Cells(1, s2), Cells(Cells(Rows.Count, цветом совпадения в кодирования , аCcылки на файликDim x, i&,
= arr2(k, 1) времени да и
3-м. In b одну в точности
отсутствуют в первой, выдает номера строк. как она отобразилась будет являться обязательным,Кроме того, в нужное показатель Карен. Буду ждать s2).End(xlUp).Row, s2)) наших списках, если может и нет. с массивами и s$ Then ‘ если большой необходимости.
MCHIf Len(x) Then соответствующую ей по выведены в отдельныйОтступаем от табличной области в поле, можно
что выгодно отличает нам окно выделения«ИСТИНА»
завтрашнего дня.i = 1 опцию
P.S. Бессонница? :-)
попытками сравнения (Файлx = Range(«A1»).CurrentRegion.Value ввреху всё ОК,Свои старания прикрепляю: Ну и мой oDict2.Item(x) = x первым двум полям диапазон. вправо и заполняем щелкать по кнопке данный вариант от группы ячеек можно. При этом он
HugoFor Each w
Уникальные
АlехМ «Тон чистый», вкладка
With CreateObject(«Scripting.Dictionary») то сравниваю вторую
в файле.)
вариант формулами (в
Next запись, причем значение
При сравнении диапазонов в
колонку номерами по«OK»
ранее описанных. попасть и другим
excelworld.ru
Сравнение двух числовых массивов.
должен преобразоваться в: Ну ждите, ждите… In x- различия.
: Возможно не массивы 1+2), а так.CompareMode = 1 колонку первого иФормуляр желтых ячейках)For Each x третьего поля должно разных книгах можно
порядку, начиная от.
Производим выделение областей, которые способом. Данный вариант
черный крестик. Это :)
If y.Find(w, LookAt:=xlWhole)Цветовое выделение, однако, не
нужно сравнивать. же на изначальные
For i = первую колонку второго…: Если цифры в
megavlom In c отличаться не более
использовать перечисленные выше1В элемент листа выводится
нужно сравнить.
особенно будет полезен и есть маркерFishka
Is Nothing Then всегда удобно, особенноНа другом форуме
массивы (Файлы «Фраза
2 To UBound(x)Cells(i, 2).Interior.Color =
ст-це 2 всегда: Здравствуйте Уважаемые Форумчане.Спасибо
If Len(x) Then чем на 3%.
способы, исключая те
. Количество номеров должно
результат. Он равен
Выполняем переход во вкладку
тем пользователям, у
заполнения. Жмем левую: clever2012
Cells(i, s3) = для больших таблиц.
файл есть, и 1″ и «Фраза
.Item(x(i, 1) & 255 ‘ ну совпадают с номером
за Ваш труд oDict3.Item(x) = xесли ни одной
варианты, где требуется совпадать с количеством числу
под названием
которых установлена версия кнопку мыши иВ надстройке есть
w
Также, если внутри в файле есть,
2″, вкладки Тон)
x(i, 2)) =
и если совпало буквы, то вспомогательная и помощь.Вам nilem
Next
такой записи не размещение обоих табличных
строк во второй«1»
«Главная» программы ранее Excel
тянем курсор вниз
«Сравнение диапазонов» (раздел
i = i + 1
самих списков элементы
как автор написал,
Akazotik
i — что-то делаю.. таблица не нужна. особое спасибо.Вы догадалисьFor Each x найдено, то напротив областей на одном
сравниваемой таблице. Чтобы. Это означает, что. Делаем щелчок по 2007, так как на количество строчек
2). Ваши столбцыEnd If могут повторяться, то формулы сравнения массивов.
: надо составить функциюNext iEnd If
lom55 ,что мне надо.Сейчас
In oDict1.Items искомой записи слева
листе. Главное условие ускорить процедуру нумерации,
в перечне имен кнопке метод через кнопку в сравниваемых табличных
сравнились и данныеNext
этот способ не
К сожалению формул сравнения элементов массива
x = Range(«D1»).CurrentRegion.ValueEnd If
: Спасибо,что откликнулись! постараюсь понять макрос.ВозможноIf oDict2.exists(x) Then
ставим единичку. для проведения процедуры можно также воспользоваться второй таблицы фамилия
«Условное форматирование»«Найти и выделить» массивах.
правильно вывелись.
Beep подойдет. таких там неBema
For i =
Next k
Вторая таблица не
задам пару вопросов
If oDict3.exists(x) Thenтак? сравнения в этом
маркером заполнения.
«Гринев В. П.»
. В активировавшемся спискеэти приложения не
Как видим, теперь вclever2012
End Sub
В качестве альтернативы можно
обнаружил. Зато есть: Не хорошо помогающих
1 To UBound(x)Next i спомагательная — она по нему(если что-тоDebug.Print x
Фдуч1985
случае – это
После этого выделяем первую
, которая является первой выбираем позицию
поддерживают. Выделяем массивы,
дополнительном столбце отобразились: Замечательная вещь. Спасибоk61 использовать функцию формула определяющая абсолютную
по ссылкам гонять.
s = x(i,
End Function
имеет свое назначение.)
не пойму).
End If
: Точно, так
открытие окон обоих ячейку справа от в списке первого«Правила выделения ячеек»
которые желаем сравнить, все результаты сравнения за совет. Тема: Sub wwww()
СЧЁТЕСЛИ величину разницы некогоAkazotik
2) & x(i,Данные сравниваются, но
Числа в столбцеmegavlomEnd Ifikki
файлов одновременно. Для
колонки с номерами табличного массива, встречается. В следующем меню и жмем на
данных в двух закрытаDim x As
(COUNTIF) значения и 100.
: А тут можно 1) почему-то не все. «2» не совпадают.: Добрый вечер.У меня
Next: проверяйте версий Excel 2013 и щелкаем по
planetaexcel.ru
один раз.
Skip to content
В этом руководстве вы познакомитесь с различными методами сравнения таблиц Excel и определения различий между ними. Узнайте, как просматривать две таблицы рядом, как использовать формулы для создания отчета о различиях, выделить несовпадения с помощью условного форматирования и многое другое.
Когда у вас есть две похожие книги Эксель или, лучше сказать, две версии одной и той же книги, что вы обычно хотите с ними делать в первую очередь? Сравнить их на предмет различий, а затем, возможно, объединить в один файл. Кроме того, такая операция может помочь вам обнаружить потенциальные проблемы, такие как битые ссылки, повторяющиеся записи, несогласованные формулы.
- Визуальное сравнение таблиц.
- Быстрое выделение различий.
- Использование формулы сравнения.
- Как вывести различия на отдельном листе.
- Как можно использовать функцию ВПР.
- Выделение различий условным форматированием.
- Сопоставление при помощи сводной таблицы.
- Сравнение таблиц при помощи Pover Query.
- Инструмент сравнения таблиц Ultimate Suite.
Итак, давайте более подробно рассмотрим различные методы сравнения таблиц Excel и выявления различий между ними.
Просмотр рядом, чтобы сравнить таблицы.
Если у вас относительно небольшие файлы и вы внимательны к деталям, этот быстрый и простой способ сравнения может вам подойти. Я говорю о режиме «Просмотр рядом», который позволяет расположить два окна Excel рядом. Вы можете использовать этот метод для визуального сравнения двух таблиц или двух листов из одной книги.
Сравните 2 книги.
Предположим, у вас есть отчеты о продажах за два месяца, и вы хотите просмотреть их оба одновременно, чтобы понять, какие товары показали лучшие результаты в этом месяце, а какие — в прошлом.
Чтобы просмотреть два файла Эксель рядом, сделайте следующее:
- Откройте оба файла.
- Перейдите на вкладку «Вид» и нажмите кнопку «Рядом». (1) Это оно!
По умолчанию два отдельных окна Excel отображаются горизонтально.
Чтобы разделить окна по вертикали, нажмите кнопку «Упорядочить все» (3) и выберите «Рядом» (4):
В результате два отдельных окна будут расположены, как на скриншоте.
Если вы хотите прокручивать оба листа одновременно, чтобы сравнивать данные строка за строкой, убедитесь, что параметр синхронной прокрутки (2) включен. Он обычно включается автоматически, как только вы активируете режим одновременного просмотра двух книг.
Расположите рядом несколько таблиц Excel.
Чтобы просматривать более двух файлов одновременно, откройте все книги, которые вы хотите сравнить, и нажмите кнопку «Рядом».
Появится диалоговое окно «Сравнить рядом», в котором вы выберете файлы, которые будут отображаться вместе с активной книгой.
Чтобы просмотреть все открытые файлы одновременно, нажмите кнопку «Упорядочить все» и выберите предпочтительное расположение: мозаичное, горизонтальное, вертикальное или каскадное.
Для небольших таблиц вы легко сможете визуально сравнить их данные. Хотя, конечно, риск ошибки из-за человеческого фактора здесь присутствует.
Сравните два листа в одной книге.
Иногда 2 листа, которые вы хотите сравнить, находятся в одной книге. Чтобы просмотреть их рядом, выполните следующие действия.
- Откройте файл, перейдите на вкладку «Вид» и нажмите кнопку «Новое окно».
- Это действие откроет тот же файл в дополнительном окне.
- Включите режим просмотра «Рядом», нажав соответствующую кнопку на ленте.
- Выберите лист 1 в первом окне и лист 2 во втором окне.
Быстрое выделение значений, которые различаются.
Это также не очень обременительный способ. Если вам просто нужно найти и удостовериться в наличии или же отсутствии отличий между записями, вам нужно на вкладке «Главная», выбрать кнопку «Найти и выделить», предварительно выделив диапазон, где надо сравнить данные в Эксель.
В открывшемся меню выберите пункт «Выделить группу ячеек…» и в появившемся диалоговом окне выберите «отличия по строкам».
К сожалению, это нормально работает только для сравнения 2 столбцов (или строк), а не всей таблицы целиком. Кроме того, строки должны быть одинаковым образом отсортированы, поскольку ячейки сравниваются построчно. Если у вас товары отсортированы по-разному, либо вообще различный ассортимент, то никакой пользы от этого метода не будет.
Формула сравнения.
Это самый простой способ соотнесения таблиц в Excel, который позволяет идентифицировать в них ячейки с разными значениями.
Простейший вариант – сопоставление двух таблиц, находящихся на одном листе. Можно соотносить как числовые, так и текстовые значения, всего-навсего прописав в одной из соседних ячеек формулу их равенства. В результате при тождестве ячеек мы получим сообщение ИСТИНА, в противном случае — ЛОЖЬ.
Предположим, у нас имеется два прайс-листа (старый и новый), в которых на некоторые товары различаются цены. При этом порядок следования товаров одинаков. Поэтому мы можем при помощи простейшей формулы прямо на этом же листе сравнить идентичные ячейки с данными.
=G3=C3
Результатом будет являться либо ИСТИНА (в случае совпадения), либо ЛОЖЬ (при отрицательном результате).
Таким же образом можно производить сравнение данных в таблицах, которые расположены на разных листах. Процедура сравнения практически точно такая, как была описана выше, кроме того факта, что при создании формулы придется переключаться между листами. В нашем случае выражение будет иметь следующий вид:
=G3=Лист2!C3
Если ваши таблицы достаточно велики, то довольно утомительно будет просматривать колонку I на предмет поиска слова ЛОЖЬ. Поэтому может быть полезным сразу определить — а есть ли вообще несовпадения?
Можно подсчитать общее количество расхождений и сразу вывести это число где-нибудь отдельно.
=СУММПРОИЗВ(—(C3:C25<>G3:G25))
или можно сделать это формулой массива
{=СУММ(—(C3:C25<>G3:G25))}
Если формула возвращает ноль, значит, данные полностью совпадают. Ну а ежели результат положительный, то нужны более детальные исследования. О них мы и поговорим далее.
Как произвести сравнение на отдельном листе.
Чтобы сравнить два листа Эксель на предмет различий, просто откройте новый пустой лист, введите следующую формулу в ячейку A1, а затем скопируйте ее вниз и вправо, перетащив маркер заполнения:
=ЕСЛИ(Лист1!A1 <> Лист2!A1; «Лист1:»&Лист1!A1&» — Лист2:»&Лист2!A1; «»)
Поскольку мы используем относительные ссылки на ячейки, формула будет меняться в зависимости от расположения столбца и строки. В результате формула в A1 будет сравнивать ячейки A1 в Лист1 и Лист2, формула в B1 будет сравнивать ячейку B1 на обоих листах и так далее. Результат будет выглядеть примерно так:
В результате вы получите отчет о различиях на новом листе. Думаю, это достаточно информативно.
Как вы можете видеть на приведенном выше рисунке, формула сравнивает 2 листа, находит ячейки с разными значениями и отображает различия в соответствующих местах.
Обратите внимание, что в отчете о различиях (ячейка D4) даты представлены числами, поскольку в таком виде они хранятся во внутренней системе Excel, что не очень удобно для анализа различий между ними.
Как сравнить две таблицы при помощи формулы ВПР.
Предположим, у нас снова 2 прайс-листа. Однако, в отличие от предыдущего примера, они содержат разное количество товаров, да и сами товары расположены в произвольном порядке. Поэтому описанный выше способ, когда мы построчно сравнивали две таблицы, здесь не сработает.
Нам необходимо последовательно взять каждый товар из одной таблицы, найти его во второй, извлечь оттуда его цену и сравнить с первоначальной ценой. Здесь нам не обойтись без формул поиска. Поможет нам функция ВПР.
Для наглядности расположим обе таблицы на одном листе.
Формула
=ЕСЛИОШИБКА(ВПР(F3;$B$3:$C$18;2;0);0)
берёт наименование товара из второго прайса, ищет его в первом, и в случае удачи извлекает соответствующую цену из первой таблицы. Она будет записана рядом с новой ценой в столбце H. Если поиск завершился неудачей, то есть такого товара ранее не было, то ставим 0. Таким образом, старая и новая цена оказываются рядом, и их легко сравнить простейшей операцией вычитания. Что и сделано в столбце I.
Аналогично можно сопоставлять и данные на разных листах. Просто нужно соответствующим образом изменить ссылки в формуле, указав в них имя листа.
Вот еще один пример. Возьмём за основу более новую информацию, то есть второй прайс. Выведем только сведения о том, какие цены и на какие товары изменились. А то, что не изменилось, выводить в итоговом отчёте не будем.
Разберём действия пошагово. Формула в ячейке J3 ищет наименование товара из первой позиции второй таблицы внутри первой. Если таковое найдено, извлекается соответствующая этому товару старая цена и сразу же сравнивается с новой. Если они одинаковы, то в ячейку записывается пустота «».
=ЕСЛИ(ЕСЛИОШИБКА(ВПР(F3;$B$3:$C$18;2;0);0)=G3;»»;ЕСЛИОШИБКА(ВПР(F3;$B$3:$C$18;2;0);0))
Таким образом, в ячейке J3 будет указана старая цена, если ее удастся найти, а также если она не равна новой.
Далее если ячейка J3 не пустая, то в I3 будет указано наименование товара —
=ЕСЛИ(J3<>»»;F3;»»)
а в K3 – его новая цена:
=ЕСЛИ(J3<>»»;G3;»»)
Ну а далее в L3 просто найдем разность K3-J3.
Таким образом, в отчёте сравнения мы видим только несовпадения значений второй таблицы по сравнению с первой.
И еще один пример, который может быть полезен. Попытаемся сравнить в итоговой таблице оба прайс-листа с эталонным общим списком товаров.
В ячейке B2 запишем формулу
=ЕСЛИ(ЕНД(ВПР(A2;Прайс1!$B$3:$B$19;1;0));»Нет»;ВПР(A2;Прайс1!$B$3:$C$19;2;0))
Так мы выясним, какие цены из второй таблицы встречаются в первой.
Для каждой цены из первого прайса проверяем, совпадает ли она с новыми данными —
=ЕСЛИ(ЕНД(ВПР(A2;Прайс2!$B$3:$B$22;1;0));»Нет»;ВПР(A2;Прайс2!$B$3:$C$22;2;0))
Эталонный список находится у нас в столбце A. В результате мы получили своего рода сводную таблицу цен – старых и новых.
Еще несколько примеров использования функции ВПР для сравнения таблиц вы можете найти в этой статье.
Выделение различий между таблицами цветом.
Чтобы закрасить ячейки с разными значениями на двух листах выбранным вами цветом, используйте функцию условного форматирования Excel:
- На листе, где вы хотите выделить различия, выберите все используемые ячейки. Для этого щелкните верхнюю левую ячейку используемого диапазона, обычно A1, и нажмите
Ctrl + Shift + End
, чтобы расширить выделение до последней использованной ячейки. - На вкладке Главная кликните Условное форматирование > Новое правило и создайте его со следующей формулой:
=A1<>Лист2!A1
Где Лист2 — это имя другого листа, который вы сравниваете с текущим.
В результате ячейки с разными значениями будут выделены выбранным вами цветом:
Если вы не очень хорошо знакомы с условным форматированием, вы можете найти подробные инструкции по созданию правила в следующем руководстве: Условное форматирование Excel в зависимости от значения ячейки.
Сравнение при помощи сводной таблицы.
Хороший вариант сравнения — объединить таблицы в единую сводную, и там уже сопоставлять данные между собой.
Вернемся к нашему примеру с двумя прайс-листами. Объединим наши данные на одном листе. Чтобы отличить данные одной таблицы от другой, добавим вспомогательный столбец D и укажем в нем, откуда именно взяты данные:
А теперь приступим к созданию сводной таблицы. Я не буду подробно останавливаться на том, как мы это будем делать. Все шаги подробно описаны в статье Как сделать сводную таблицу в Excel.
Поместим поле Товар в область строк, поле Прайс в область столбцов и поле Цена в область значений.
Как видно на скриншоте ниже, для каждого товара, встречающегося хотя бы в одном из прайсов, указана цена.
Сводная таблица автоматически сформирует общий список всех товаров из старого и нового прайсов и сортирует их по алфавиту. Причём, без повторов. У новых товаров нет старой цены, у удаленных товаров — новой цены. Легко увидеть изменения цен, если таковые были.
Общие итоги здесь смысла не имеют, и их можно отключить на вкладке Конструктор — Общие итоги — Отключить для строк и столбцов.
Если изменятся цены, то достаточно просто обновить созданную сводную, щелкнув по ней правой кнопкой мыши — Обновить. А вот если изменится список товаров или добавится новый файл для сравнения, то придется заново формировать исходный массив или же добавлять в него новые данные.
Плюсы: такой подход на порядок быстрее работает с большими объемами данных, чем ВПР. Можно сравнить данные нескольких таблиц.
Минусы: надо вручную копировать данные в одну большую таблицу и добавлять столбец с названием исходного файла.
Сравнение таблиц с помощью Power Query
Power Query — это бесплатная надстройка для Microsoft Excel, позволяющая загружать в него данные практически из любых источников и преобразовывать потом их желаемым образом. В Excel 2016 эта надстройка уже встроена по умолчанию на вкладке Данные, а для более ранних версий ее нужно отдельно скачать с сайта Microsoft и установить.
Перед загрузкой наших прайс-листов в Power Query их необходимо преобразовать сначала в умные таблицы. Для этого выделим диапазон с данными и нажмем на клавиатуре сочетание Ctrl+T
или выберем на ленте вкладку Главная — Форматировать как таблицу. Имена созданных таблиц можно изменить на вкладке Конструктор (я оставлю стандартные Таблица1 и Таблица2, которые генерируются по умолчанию).
Загрузите первый прайс в Power Query с помощью кнопки Из таблицы/диапазона на вкладке Данные.
После загрузки вернемся обратно в Excel из Power Query командой Закрыть и загрузить — Закрыть и загрузить в…
В появившемся затем окне выбираем «Только создать подключение».
Повторите те же действия с новым прайс-листом.
Теперь создадим третий запрос, который будет объединять и сравнивать данных из предыдущих двух. Для этого выберем на вкладке Данные — Получить данные — Объединить запросы — Объединить. Все шаги вы видите на скриншоте ниже.
В окне объединения выберем в выпадающих списках наши таблицы, выделим в них столбцы с названиями товаров и в нижней части определим способ объединения — Полное внешнее.
После нажатия на ОК должна появиться таблица из четырёх столбцов, где в четвертой колонке нужно развернуть вложенное содержимое с помощью двойной стрелки в шапке.
После нажатия вы увидите список столбцов из второго прайса. Выбираем Товар и Цена. Получаем следующую картину:
А теперь сравним цены. Идем на вкладку Добавление столбца и жмем на кнопку Условный столбец. А затем в открывшемся окне вводим несколько условий проверки с соответствующими им значениями, которые нужно отобразить:
Теперь осталось вернуться на вкладку Главная и нажать Закрыть и загрузить.
Получаем новый лист в нашей рабочей книге:
Примечание. Если в будущем в наших прайс-листах произойдут любые изменения (добавятся или удалятся строки, изменятся цены и т.д.), то достаточно будет лишь обновить наши запросы сочетанием клавиш Ctrl+Alt+F5
или кнопкой Обновить все на вкладке Данные.
Ведь все данные извлекаются из «умных» таблиц Excel, которые автоматически меняют свой размер при добавлении либо удалении из них какой-либо информации. Однако, помните, что имена столбцов в исходных таблицах не должны меняться, иначе получим ошибку «Столбец такой-то не найден!» при попытке обновить запрос.
Это, пожалуй, самый красивый и удобный способ из всех стандартных. Шустро работает с большими таблицами. Не требует ручных правок при изменении размеров.
Как видите, есть несколько способов сравнить две таблицы Excel, используя формулы или условное форматирование. Однако эти методы не подходят для комплексного сравнения из-за следующих ограничений:
- Они находят различия только в значениях, но не могут сравнивать формулы или форматирование ячеек.
- Многие из них не могут идентифицировать добавленные или удаленные строки и столбцы. Как только вы добавите или удалите строку / столбец на одном листе, все последующие строки / столбцы будут отмечены как отличия.
- Они хорошо работают на уровне листа, но не могут обнаруживать структурные различия на уровне книги Excel, к примеру добавление и удаление листов.
Эти проблемы решаются путем использования дополнений к Excel, о чем мы поговорим далее.
Как сравнить таблицы при помощи Ultimat Suite для Excel
Последняя версия Ultimate Suite включает более 60 новых функций и улучшений, самым интересным из которых является «Сравнение таблиц» — инструмент для сравнения листов или диапазонов данных в Excel.
Чтобы сделать сравнение более интуитивным и удобным, надстройка разработана следующим образом:
- Мастер шаг за шагом проведет вас через процесс и помогает настраивать различные параметры.
- Вы можете выбрать алгоритм сравнения, наиболее подходящий для ваших наборов данных.
- Вместо отчета о различиях сравниваемые листы отображаются в режиме просмотра различий, чтобы вы могли сразу просмотреть все различия и управлять ими по очереди.
Теперь давайте попробуем использовать этот инструмент на наших примерах электронных таблиц из предыдущего примера и посмотрим, отличаются ли результаты.
- Нажмите кнопку «Сравнить листы (Compare Two Sheets)» на вкладке «Данные Ablebits » в группе « Объединить »:
- Появится окно мастера с предложением выбрать два листа, которые вы хотите сравнить на предмет различий.
По умолчанию выбираются все листы, но вы также можете выбрать текущую таблицу или определенный диапазон , нажав соответствующую кнопку:
- На следующем шаге вы выбираете алгоритм сравнения:
- Без ключевых столбцов (по умолчанию) — лучше всего подходит для сложных документов, таких как счета-фактуры или контракты.
- По ключевым столбцам — подходит для таблиц, организованных по столбцам, которые имеют один или несколько уникальных идентификаторов, таких как номера заказов или артикулы товаров.
- По ячейке — лучше всего использовать для сравнения таблиц с одинаковым макетом и размером, таких как балансы или статистические отчеты.
Совет. Если вы не уверены, какой алгоритм подходит вам, выберите вариант по умолчанию (без ключевых столбцов). Какой бы алгоритм вы ни выбрали, надстройка найдет все различия, только выделит их по-разному (целые строки или отдельные ячейки).
На этом же шаге вы можете выбрать предпочтительный тип соответствия:
- Первое совпадение (по умолчанию) — сравнивает строку на листе 1 с первой найденной строкой на листе 2, которая имеет хотя бы одну совпадающую ячейку.
- Наилучшее совпадение — сравнивает строку на листе 1 со строкой на листе 2, которая имеет максимальное количество совпадающих ячеек.
- Полное совпадение — находит на обоих листах строки, которые имеют одинаковые значения во всех ячейках, и отмечает все остальные строки как уникальные.
В этом примере мы сначала будем искать наилучшее совпадение, используя режим сравнения без ключевых столбцов, который установлен по умолчанию.
- На следующем шаге укажите, какие различия следует выделить, а какие игнорировать, и как помечать различия.
Скрытые строки и столбцы не имеют значения, и мы говорим надстройке игнорировать их:
- Нажмите кнопку «Сравнить (Compare)» и подождите немного, пока программа обработает ваши данные и создаст их резервные копии. Резервные копии всегда создаются автоматически, поэтому вы можете не беспокоиться о сохранности своих данных.
После обработки листы открываются друг рядом с другом в специальном режиме просмотра различий с выбранным способом выделения отличий:
На скриншоте выше различия выделены цветами по умолчанию:
- Красные строки — строки, существующие только на Листе 2 (справа).
- Зеленые ячейки — различные ячейки в частично совпадающих строках.
А вот если мы выберем второй алгоритм сравнения — по ключевому столбцу, то нам будет предложено указать его. В нашем случае вполне можно ключевым столбцом обозначить «Товар».
После этого мы видим немного другой результат сравнения:
Как видите, основным здесь действительно является факт совпадения значений в столбцах B. Строки, в которых нет такого совпадения, сразу выделяются красным или фиолетовым. А вот если совпадение есть, тогда идем в столбец С и сравниваем записанную там цену. Зелёные ячейки как раз и показывают нам товары, которые имеются в обоих прайс-листах, но цена на них изменилась.
Не знаю как вам, но мне второй вариант представляется более информативным.
А что же дальше делать с этим сравнением?
Чтобы помочь вам просматривать различия и управлять ими, на каждом листе есть собственная вертикальная панель инструментов. Для неактивного рабочего листа (справа на нашем скриншоте) эта панель отключена. Чтобы активировать панель инструментов, просто выберите любую ячейку на соответствующем листе.
Используя её, вы последовательно просматриваете найденные различия и решаете, объединить их или игнорировать:
Как только последнее различие будет устранено, вам будет предложено сохранить книги и выйти из режима просмотра различий.
Если вы еще не закончили обработку различий, но хотели бы сделать перерыв, нажмите кнопку «Выйти из просмотра различий» в нижней части панели инструментов и выберите один из следующих вариантов:
- Сохраните внесенные вами изменения и сохраните оставшиеся различия (Save workbooks and keep difference marks),
- Сохраните внесенные вами изменения и удалите оставшиеся различия (Save workbooks and remove difference marks),
- Восстановите исходные книги из резервных копий (Restore workbooks from backup copies).
Вот как вы можете сравнить два листа в Excel при помощи инструмента сравнения Compare Two Sheets (надеюсь, он вам понравился
Если вам интересно попробовать, полнофункциональная ознакомительная версия доступна для загрузки здесь .
Это глава из книги: Майкл Гирвин. Ctrl+Shift+Enter. Освоение формул массива в Excel.
Предыдущая глава Оглавление Следующая глава
Выборки, основанные на одном или нескольких условиях. Ряд функций Excel используют операторы сравнения. Например, СУММЕСЛИ, СУММЕСЛИМН, СЧЁТЕСЛИ, СЧЁТЕСЛИМН, СРЗНАЧЕСЛИ и СРЗНАЧЕСЛИМН. Эти функции осуществляют выборки на основе одного или нескольких условий (критериев). Проблема в том, что эти функции могут только складывать, подсчитывать количество, и находить среднее. А если вы хотите наложить условия на поиск, например, максимального значения или стандартного отклонения? В этих случаях, поскольку не существует встроенной функции, вы должны изобрести формулу массива. Нередко это связано с использованием оператора сравнения массивов. Первый пример в этой главе, показывает, как рассчитать минимальное значения при одном условии.
Воспользуемся функцией ЕСЛИ, чтобы выбрать элементы массива, отвечающие условию. На рис. 4.1 в левой таблице присутствуют столбец с названиями городов и столбец с временем. Требуется найти минимальное время для каждого города и поместить это значение в соответствующую ячейку правой таблицы. Условие для выборки – название города. Если вы используете функцию МИН, то сможете найти минимальное значение столбца В. Но как вы выберите только те числа, что относятся только к Окленду? И как вам скопировать формулы вниз по колонке? Поскольку в Excel нет встроенной функции МИНЕСЛИ, вам необходимо написать оригинальную формулу, совмещающую функции ЕСЛИ и МИН.
Рис. 4.1. Цель формулы: выбрать минимальное время для каждого города
Скачать заметку в формате Word или pdf в формате Excel2013
Как показано на рис. 4.2, вам следует начать ввод формулы в ячейку E3 с функции МИН. Но вы же не можете поместить в аргумент число1 все значения столбца B!? Вы хотите отобрать только те значения, которые относятся к Окленду.
Рис. 4.2. Начните с ввода функции МИН
Как показано на рис. 4.3, на следующем этапе введите функцию ЕСЛИ в качестве аргумента число1 для МИН. Вы вложили ЕСЛИ внутрь МИН.
Рис. 4.3. Добавьте ЕСЛИ внутрь МИН
Разместив курсор в месте введения аргумента лог_выражение функции ЕСЛИ (рис. 4.4), вы выделяете диапазон с названиями городов А3:А8, а затем нажимаете F4, чтобы сделать ссылки на ячейки абсолютными (подробнее см., например, Относительные, абсолютные и смешанные ссылки на ячейки в Excel). Затем вы набираете сравнительный оператор – знак равенства. Наконец, вы выделите ячейку слева от формулы – D3, оставляя ссылку на нее относительной. Сформулированное условие позволит выбрать только Окленды при просмотре диапазона А3:А8.
Рис. 4.4. Создайте оператор массива в аргументе лог_выражение функции ЕСЛИ
Итак, вы создали оператор массива с помощью оператора сравнения. В любой момент обработки массива оператор массива является оператором сравнения, так что результатом его работы будет массив, состоящий из значений ИСТИНА и ЛОЖЬ. Чтобы убедиться в этом, выделите массив (для этого щелкните во всплывающей подсказке на аргумент лог_выражение) и нажмите F9 (рис. 4.5). Обычно вы используете один аргумент лог_выражение, возвращающее либо ИСТИНУ, либо ЛОЖЬ; здесь же результирующий массив вернет несколько значений ИСТИНЫ и ЛЖИ, так что функция МИН выберет минимальное число только для тех городов, которые соответствуют значению ИСТИНА.
Рис. 4.5. Чтобы увидеть массив, состоящий из значений ИСТИНА и ЛОЖь, щелкните во всплывающей подсказке на аргумент лог_выражение и нажмите F9
Надеюсь, вы не забыли (см. главу 2), чтобы «не испортить» формулу после F9 нажмите Ctrl+Z, и формула вернется в исходное состояние.
Как показано на рис. 4.7, далее следует ввести точку с запятой, чтобы перейти к вводу аргумента значение_если_истина функции ЕСЛИ (обратите внимание, что во всплывающей подсказке выделился второй аргумент функции ЕСЛИ). Ведите диапазон В3:В8 и нажмите F4. Выделенный диапазон должен иметь такой же размер, как и массив аргумента лог_выражение (в нашем случае в каждом массиве по 6 элементов). На этом ввод можно завершить, так как аргумент значение_если_ложь является необязательным, и вы, действительно, не хотите что-то считать, для тех ячеек, где аргумента лог_выражение принимает значение ЛОЖЬ. Функция МИН запрограммирована так, что проигнорирует логические значения.
Рис. 4.7. Введите диапазон в аргумент значение_если_истина
Как только вы ввели закрывающую скобку функции ЕСЛИ, всплывающая подсказка «сообразила», что ввод функции ЕСЛИ завершен, и стала показывать синтаксис функции МИН (рис. 4.8). Обратите внимание, что вся функция ЕСЛИ разместилась в аргументе число1 функции МИН.
Рис. 4.8. Функция ЕСЛИ заняла место число1 среди аргументов функции МИН
Чтобы увидеть массив, возвращаемый функцией ЕСЛИ, во всплывающей подсказке щелкните на аргумент1, и нажмите F9 (рис. 4.9). Видно, что массив вернул 4 ЛОЖНЫХ логических значения, когда город не совпадает с Oakland и два числа – 9 и 6 – когда город совпадает с Oakland. Это удивительное использование функции ЕСЛИ позволяет отфильтровать значения, которые вам не нужны и найти минимум только среду «нужных» значений. Аналогичным образом вы можете использовать функцию ЕСЛИ и в других агрегатных функций, таких как МАКС и СТАНДОТКЛОН (СТАНДОТКЛОН.В и СТАНДОТКЛОН.Г в версии Excel2010).
Рис. 4.9. Во всплывающей подсказке щелкните на аргумент1, и нажмите F9, чтобы увидеть результирующий массив
Введите вторую закрывающую скобку (для функции МИН). Чтобы убедится, что функция ЕСЛИ не была изначально запрограммирована для обработки массивов, поместите курсор обратно в аргумент лог_выражение функции ЕСЛИ (кликните во всплывающей подсказке на этом аргументе, чтобы выделить содержимое, относящееся к нему). Обратите внимание, что весь массив «сидит» в аргументе лог_выражение (рис. 4.10). Т.е. Excel не понимает, что перед ним функция массива, эта функция не была изначально запрограммирована для обработки массивов, поэтому чтобы завершить ввод формулы в ячейку нажмите Ctrl+Shift+Enter. После этого Excel поместит фигурные скобки в начале и в конце формулы.
Рис. 4.10. Функция ЕСЛИ изначально не предназначена для работы с массивами, поэтому для корректного ввода формулы нажмите Ctrl+Shift+Enter
Вы можете скопировать формулы массива вниз столбца; фигурные скобки также копируются (рис. 4.12). Если вы измените исходные данные (названия городов и/или время), формулы массива отработают эти изменения и немедленно покажут новый результат.
Рис. 4.12 Формулу массива можно «протащить» вниз по столбцу
Только что вы создали прекрасную формулу массива! Однако, чтобы в каждом конкретном случае быть способным выбирать оптимальные пути решения, предлагаю вам кратко ознакомиться с функциями баз данных и сводных таблиц.
Функции для работы с базами данных
В Excel есть группа из 12 функций для работы с базами данных (их еще называют БД-функции). Эти функции могут производить расчеты на основе критериев. Например, ДМИН, ДМАКС, БДСУММ. Эти функции отлично справятся с работой, если у вас один-единственный расчет, а колонки имеют заголовки. На рис. 4.13 показано, как можно использовать функцию ДМИН для вычисления минимального времени по городу Окленд. Преимущество БД-функций заключается в том, что если вам нужно сделать единственное вычисление, например, найти минимальное время для Окленда (а по Сиэтлу и др. не интересует), то ДМИН создать проще, чем описанную выше =МИН(ЕСЛИ()) формулу массива. Да и работать ДМИН будет быстрее, чем формула массива (что важно при больших объемах данных). К недостатку БД-функции можно отнести требование формировать аргумент критерий из двух полей: заголовка и собственно критерия (рис. 4.14).
Рис. 4.13. Функция ДМИН
Рис. 4.14. Аргумент критерий должен содержать заголовок (D2) и критерий (D3)
На рис. 4.15 показано, во что может превратиться конструкция с ДМИН, если вам необходимо извлечь данные для нескольких городов. К тому же вам не удастся «протянуть» формулу вдоль колонки. На рис. 4.15 показаны формулы, которые необходимые ввести для каждого города.
Рис. 4.15. «Протащить» БД-функцию по колонке не получится
Если бы вам требовалось извлечь минимальное время для большого числа городов, функция ДМИН доставила бы вам много хлопот. Рис. 4.16 показывает метод, который использует БД-функцию совместно с опцией Excel Таблицей данных для облегчения выборки по большому количеству городов (в главе 21 Таблицы данных рассматриваются более подробно).
Рис. 4.16. БД-функция и Таблица данных, работая вместе, могут заменить функцию массива
Чтобы получить результат как на рис. 4.16, выполните следующее:
Шаг 1. Создайте формулу ДМИН в ячейке Е3.
Шаг 2. Поместите названия городов в ячейки D6:D8.
Шаг 3. В ячейке Е5 создайте ссылку на ячейку Е3.
Шаг 4. Выделите область D5:Е8.
Шаг 5. Откройте диалоговое окно Таблицы данных, для чего нажмите Alt Д, а затем Т, или пройдите по меню Данные — Работа с данными — Анализ «что если» — Таблица данных
Шаг 6. Введите D3 в область «Подставлять значения по строкам в:» (всё равно, какую ссылку вы введете – абсолютную или относительную).
Итак, когда использовать ДМИН, а когда формулу массива МИН(ЕСЛИ(…))? Если вам нужно выполнить единственное вычисление, и данные у вас организованы надлежащим образом (имеются заголовки), используйте ДМИН. Если у вас много вычислений и/или данные не организованы для быстрого использования БД-функций, воспользуйтесь формулой массива. Рассмотрите также возможность совместного использования БД-функции и инструмента Таблица данных.
Сводные таблицы
Если вам не требуется, чтобы после внесения изменений в исходные данные, результаты мгновенно обновлялись (что характерно для формул), рассмотрите возможность использования сводной таблицы, которая позволит применить один или несколько критериев для отбора данных. Почему? Потому что сводные таблицы довольно легко создать. Особенно они будут полезны, если критериев много, и/или они весьма «заковыристые». Этот раздел просматривает одну-вычисление условия. Рис. 4.17 показан завершенный сводная Таблица для расчета минимального с одним условием.
Рис. 4.17. Создать сводную таблицу быстро и просто
Чтобы получить результат как на рис. 4.16, выполните следующее:
Шаг 1. Убедитесь, что все колонки имеют имена и нет пустых строк и колонок.
Шаг 2. Встаньте на любую ячейку исходных данных перейдите на вкладку ленты Вставить и в области Таблицы кликните на Сводная таблица.
Шаг 3. В открывшемся диалоговом окне Создание сводной таблицы включите На существующий лист и в поле Диапазон введите D1.
Шаг 4. Перетащите Город поле Строки и Время, ч в поле Значения.
Шаг 5. Щелкните правой кнопкой мыши на одной из ячеек диапазона Е1:Е4 и в контекстном меню выберите опцию Параметры полей значений; в открывшемся окне на вкладке Операция выберите Минимум.
Шаг 6. Встаньте на любую ячейку сводной таблицы, и сделайте активной вкладку Работа со сводными таблицами – Конструктор; в области Макет кликните на Общие итоги и выберите Отключить для строк и столбцов; там же (в области Макет) кликните на Макет отчета и выберите Показать в табличной форме.
Шаг 7. Кликните на ячейке D1 и введите Город, кликните на Е1 и введите Минимальное время.
Так что же предпочесть: сводную таблицу или формулу массива? Главный недостаток сводных таблиц заключается в том, что они не обновляются сразу же после изменения исходных данных (нужно встать на любую ячейку сводной таблицы, кликнуть правой кнопкой мыши и выбрать Обновить). В то же время формулы обновляются моментально. Если у вас несколько критериев для отбора, сводные таблицы позволяют проще справиться с ними, перетаскивая поля в области строк, колонн, значений и фильтра. Формулы массива с каждым дополнительным критерием становятся всё сложнее и сложнее. Если вы хотите изменить функцию, в сводной таблице вы просто щелкните правой кнопкой мыши и выберите одну из операций: Сумма, Количество, Минимум… (всего их 11). Используя формулу массива, необходимо перестроить формулу, но… в вашем распоряжении не 11, а 350 функций Excel. Сводные таблице занимают место на листе, их сложнее форматировать. Если в вашем арсенале будет и то, и другое, вы сможете гибче решать стоящие перед вами задачи.
Операции сравнения массивов с несколькими условиями
Если у вас нескольких критериев, вы можете использовать несколько функций ЕСЛИ в одной формуле (количество функций ЕСЛИ равно числу критериев). Например, определим максимальное количество продаж для каждого представителя в западном регионе (рис. 4.18).
Рис. 4.18. Цель – рассчитать максимальный объем продаж для каждого сотрудника на западе
Вы хотите написать формулу, которую можно «протянуть» по столбцу, также вы хотите, чтобы формула автоматически обновлялась при изменении исходных данных. Вы можете решить задачу с помощью функции МАКС с двумя вложенными функциями ЕСЛИ. Начните ввод формулы в ячейку F5 с функции МАКС; в качестве аргумента число1 вложите функцию ЕСЛИ, которая позволит вам выбрать только те значения, которые соответствуют вашим условиям (рис. 4.19).
Рис. 4.19. Наберите =МАКС(ЕСЛИ(
В качестве первого аргументу лог_выражение функции ЕСЛИ наберите оператор сравнения, спрашивающий: «совпадает ли значение в столбце Регион с условием в ячейке F2?» (рис. 4.20). В качестве результата оператор сравнения $A$3:$A$12=$F$2 вернет последовательность значений ИСТИНА и ЛОЖЬ.
Рис. 4.20. Введите оператор массива
Далее введите разделитель – точка с запятой, и всплывающая подсказка покажет, что вы переместились из области набора аргумента лог_выражение к набору аргумента значение_если_истина (рис. 4.21). Обычно, здесь вводят значение, которые хотят получить в случае если аргумент лог_выражение вернул значение ИСТИНА, но ведь у вас есть еще одно условие, поэтому введите еще одну функцию ЕСЛИ (рис. 4.22). В качестве первого аргумента введите оператор массива, спрашивающий: «совпадает ли значение в столбце Представитель с условием в ячейке Е5?»
Рис. 4.21. Введите разделитель – точку с запятой – это перенесет вас в область набора следующего аргумента
Рис. 4.22. Добавьте вторую функцию ЕСЛИ и оператор массива, проверяющий второе условие
Просто чтобы убедиться, что вторая ЕСЛИ «сидит» в аргументе значение_если_истина первой ЕСЛИ, встаньте курсором на втором слове ЕСЛИ (рис. 4.23). Видно, что во всплывающей подсказке выделился аргумент значение_если_истина. До Excel 2007, вы могли вложить друг в друга до семи функций ЕСЛИ; начиная с Excel 2007 вы можете вложить до 64 функций.
Рис. 4.23. Вторая ЕСЛИ «сидит» в аргументе значение_если_истина первой ЕСЛИ
Введите разделитель – точку с запятой. Теперь вы можете добавлять массив Продажи в качестве аргумента значение_если_истина второй ЕСЛИ (рис. 4.24). Эмпирическое правило для внедрения друг в друга функций ЕСЛИ гласит: продолжайте последовательно вводить функции ЕСЛИ в качестве аргумента лог_выражение предыдущей ЕСЛИ, пока у вас не закончатся условия. Затем вы можете ввести в качестве аргумента значение_если_истина. При этом все значения аргументов значение_если_ложь могут быть опущены, поскольку функция МАКС (и целый ряд других) игнорирует логические значения.
Рис. 4.24. Введите диапазон значений для аргумента значение_если_истина второй ЕСЛИ
Три закрывающие скобки завершат набор формулы (рис. 4.25). Вы можете проверить, что вы набрали правильное число закрывающих скобок, следя за их цветом. Последняя закрывающая скобка должна иметь тот же цвет, что и первая открывающая.
Рис. 4.25. Черная закрывающая скобка означает, что набор формулы завершен
Если во всплывающей подсказке вы щелкните на аргумент число1, а затем нажмете клавишу F9, то увидите, что две вложенные функции ЕСЛИ отобрали только те значения, которые соответствуют обоим критериям (рис. 4.26). Числа 914 и 610 были выбраны потому, что они относятся, как к региону Запад, так и к представителю Chin.
Рис. 4.26. Две вложенные функции ЕСЛИ отобрали только те значения, которые соответствуют обоим критериям
Примечание: рассмотренный пример демонстрирует И критерии. С И критериями, все условия функций ЕСЛИ должны вернуть значение ИСТИНА. В главе 11, вы познакомитесь с ИЛИ критерием; для истинности всего выражения, по крайней мере, одна ЕСЛИ должна вернуть значение ИСТИНА.
Еще пара слов о том, как работает формула. Каждая из двух функций ЕСЛИ проверяет свой массив: первая – А3:А12 на предмет совпадения со значением в F2, вторая – В3:В12 на совпадение с Е5. Только в том случае, когда оба условия выполнены, функция ЕСЛИ возвращает соответствующие значения из третьего массива – С3:С12. Формула выглядит так:
=МАКС(ЕСЛИ({ИСТИНА:ЛОЖЬ:ИСТИНА:ИСТИНА:ЛОЖЬ:ИСТИНА:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ИСТИНА}; ЕСЛИ({ИСТИНА:ЛОЖЬ:ЛОЖЬ:ИСТИНА:ЛОЖЬ:ЛОЖЬ:ИСТИНА:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ}; {914:355:590:610:506:825:710:280:363:685})))
Мы знаем, что функция ЕСЛИ не была изначально запрограммирована на работу с массивами, поэтому для ввода формулы в ячейку нажмите Ctrl+Shift+Enter. После того, как вы введете формулу массива, убедитесь, что появились фигурные скобки в начале и в конце формулы. Поскольку они есть, вы можете скопировать формулу вниз по столбцу (рис. 4.29).
Рис. 4.29. Формула массива работает в трех ячейках
После того, как вы создали формулу массива, можно задуматься и о том, как решать задачу другим способом? Как и в первом примере этой главы вам придут на помощь функция для работы с базами данных ДМАКС (рис. 4.30) и сводная таблица (рис. 4.31).
Рис. 4.30. ДМАКС легко найдет максимальное значение при двух условиях, а вот копирование формулы по столбцу затруднено
Рис. 4.31. Сводная таблица очень удобна для отыскания максимального значения при двух условиях, но она требует обновления, если исходные данные изменились
Следующий раздел описывает, как использовать оператор сравнения НЕ и некоторые новые удивительные функции Excel доступные с версии 2010 г., которые могут осуществлять выборки на основе условий (например, нахождение минимума или максимума), без Ctrl+Shift+Enter.
Определение минимума при двух условиях, одно из которых НЕ. Рис. 4.32 показаны результаты нескольких гонок на велосипедах BMX (маленькие гоночные велосипеды). Результаты представлены в трех колонках: название трассы, имя гонщика, время прохождения трассы. Задача – найти лучшее время каждого гонщика, но, поскольку трасса PI гораздо короче других, вы не хотите ее учитывать. Это значит, что вам нужна функция массива МИН с двумя условиями: соответствие имени гонщика и «все трассы, кроме PI». Можно использовать функцию МИН с двумя ЕСЛИ. Первая функция ЕСЛИ выбирает только трассы, которые не являются PI (обратите внимание, что оператор сравнения НЕ вводится как два последовательных символа «меньше» и «больше» <>). Вторая функция ЕСЛИ сравнивает имена гонщиков. (Для ввода функции используйте Ctrl+Shift+Enter.)
Рис. 4.32. Цель – найти минимальное время для каждого гонщика на всех трасса, кроме PI
Если вы используете Excel 2010 года или более позднюю версию, вы можете использовать новую функцию АГРЕГАТ, чтобы еще больше упростить расчет, и обойтись без Ctrl+Shift+Enter. (Функция АГРЕГАТ имеет множество различных применений, но в этой книге рассматриваются только те, что относятся к функциям массива.)
Функция АГРЕГАТ
Рассмотрим туже задачу, что и в предыдущем разделе. Как показано на рис. 4.33, если начать вводить в ячейку F5 название функции АГРЕГАТ, всплывающая подсказка предложит выбрать из двух вариантов. Выберите верхний, содержащий массива в качестве третьего аргумента. Наличие массива в качестве аргумент делает функцию АГРЕГАТ способной обрабатывать операции с массивами без использования Ctrl+Shift+Enter.
Рис. 4.33. Начните вводить АГРЕГАТ и подсказка предложит вам выбрать из двух вариантов
Первый аргумент функции АГРЕГАТ позволяет вам выбрать одну из 19 различных функций (рис. 4.34). Функции с 1-й по 13-ю не могут обработать массивы; функции с 14-й по 19-ю – могут. Кажется странным, что функция 5, МИН, не может быть использовано для операций с массивом, но вы сможете обойти эту проблему с помощью функции 15, НАИМЕНЬШИЙ, устанавливая четвертый аргумент (k) равным единице, т.е. выбирая первое наименьшее число, оно же минимальное.
Рис. 4.34. Первый аргумент функции АГРЕГАТ
Второй аргумент позволяет выбрать один из 7 вариантов обработки строк массива (рис. 4.35). Вариант №6 поможет в нашем случае, потому что позволит игнорировать ошибку, когда хотя бы одно из условий не выполняется.
Рис. 4.35. Второй аргумент функции АГРЕГАТ
Итак, начав набирать функцию АГРЕГАТ, выберите во всплывающем меню в качестве первого аргумента функцию 15, НАИМЕНЬШИЙ (рис. 4.36). А в качестве второго аргумента опцию под номером 6 (рис. 4.37).
Рис. 4.36. Выберите в качестве первого аргумента функцию 15, НАИМЕНЬШИЙ
Рис. 4.37. Выберите в качестве второго аргумента опцию 6 – Пропускать ошибочные значения
После ввода разделите – точки с запятой, третий аргумент функции АГРЕГАТ – массив – выделяется полужирным шрифтом (рис. 4.38). Т.е. третий аргумент функции АГРЕГАТ изначально запрограммирован для обработки массива без использования клавиш Ctrl+Shift+Enter (помните, что это верно только для функций с 14-й по 19-ю).
Рис. 4.38. Третий аргумент функции АГРЕГАТ – массив – изначально запрограммирован для обработки без использования клавиш Ctrl+Shift+Enter
Теперь можно в качестве третьего аргумента функции АГРЕГАТ ввести полученную ранее функцию ЕСЛИ (точнее две вложенные функции ЕСЛИ) для отбора по имени гонщика и всем трекам, кроме PI:
ЕСЛИ($A$3:$A$13<>$F$2;ЕСЛИ($B$3:$B$13=E5;$C$3:$C$13)
Заметим, что если у вас есть массив, который помещен в любой из аргументом функции ЕСЛИ ввод формулы требует нажатия Ctrl+Shift+Enter, даже несмотря на то, что саму функцию ЕСЛИ вы поместите внутрь функции, умеющей работать с массивами, например АГРЕГАТ или СУММПРОИЗВ. Образно говоря, функция ЕСЛИ является козырной и бьет другие функции. Если вы стремитесь избежать ввода Ctrl+Shift+Enter, постарайтесь обойтись без ЕСЛИ.
Чтобы проверить это правило, введите формулу:
=АГРЕГАТ(15;6;ЕСЛИ($A$3:$A$13<>$F$2;ЕСЛИ($B$3:$B$13=E5;$C$3:$C$13));1)
Вы получаете ошибку #ЗНАЧ! Если же вы введете формулу с помощью клавиш Ctrl+Shift+Enter, то формула будет работать, но… это признание вашего поражения, так как вспомните, что цель была – придумать формулу массива, которая не требовала нажатия Ctrl+Shift+Enter. Поэтому, если вы хотите остаться верным своей цели, вы должны скорректировать формулу в аргументе массив и избавиться от ЕСЛИ. Решение основано на замечательном свойстве функции АГРЕГАТ пропускать ошибочные значения! Замените ЕСЛИ($A$3:$A$13<>$F$2;ЕСЛИ($B$3:$B$13=E5;$C$3:$C$13) на $C$3:$C$13/(($A$3:$A$13<>$F$2)*($B$3:$B$13=E5)). Заметьте, что в знаменателе вы должны добавить скобки для каждого оператора сравнения, а также дополнительный набор скобок для всего знаменателя.
Вы поместили в числитель массив значений (время), а в знаменатель – произведение двух условий (операторы сравнения массивов). Только в том случае, когда оба условия вернут значение ИСТИНА, знаменатель будет равен единице.[1] Если хотя бы одно сравнение неверно, знаменатель обращается в ноль. Деление на ноль даст ошибку, и функция АГРЕГАТ ее пропустит.
Если вы выделите аргумент массив в формуле АГРЕГАТ и нажмете F9, то увидите результирующий массив (рис. 4.39).
Рис. 4.39. Выделите аргумент массив в формуле АГРЕГАТ (а) и нажмете F9 (б)
Результирующий массив содержит только числа, которые удовлетворяют обоим условиям (И критерий). Фактически ваша формула массива отфильтровала числа, отвечающие обоим условиям. Теперь вы, наверное, понимаете, почему следовало применить деление. Оно привело к возникновению ошибки #ДЕЛ/0! Произведение не подошло бы, так как привело к появлению элементов массива равным нулю. Именно один их этих нулей и выбрала бы функция МИН. В тоже время ошибки #ДЕЛ/0! не составляют проблемы для функции АГРЕГАТ, поскольку второй ее аргумент содержит опцию 6, дающий команду функции пропускать ошибочные значения. Поскольку мы избавились от функции ЕСЛИ внутри функции АГРЕГАТ, ввод нашей формулы не требует нажатия Ctrl+Shift+Enter. Вы с легкостью «протянете» формулу по столбцу F.
Так что же использовать, функцию АГРЕГАТ с двоичными условиями или формулу с МИН и двумя ЕСЛИ? По времени работы и сложности написания эти две конструкции примерно одинаковы. Но… функция АГРЕГАТ не требует нажатия Ctrl+Shift+Enter. Поэтому я предпочту ее.
Посмотрите, как можно решить эту же задачу с использованием ДМИН (рис. 4.41) и сводной таблицы (рис. 4.42). Обратите внимание на фильтр сводной таблицы не позволяет выбрать «НЕ PI». После создания сводной таблицы используйте фильтр в поле Трасса поставьте галочку в Выделить несколько элементов и снимите галочку напротив PI.
Рис. 4.41. Решение с помощью функции ДМИН и Таблицы данных
Рис. 4.42. Решение с помощью сводной таблицы
Использование условий при вычислении стандартного отклонения. Итак, в этой главе вы узнали, как сделать выборки для нахождения минимума или максимума с использованием функции АГРЕГАТ, конструкции ЕСЛИ(ЕСЛИ()), функции базы данных ДМИН или сводной таблицы. Однако, если бы вам потребовалось рассчитать стандартное отклонение вы могли бы использовать соответствующую БД-функцию, сводную таблицу и конструкцию с ЕСЛИ, но не функцию АГРЕГАТ. Почему? Потому что два стандартных отклонения функции АГРЕГАТ (под номерами 7 и 8 ) не могут обработать массивы.
Для расчета стандартного отклонения воспользуйтесь функцией СТАНДОТКЛОН.В (СТАНДОТКЛОН в версии Excel до 2010) и вложенными функциями ЕСЛИ (рис. 4.43).
Рис. 4.43. Вычисление стандартного отклонения с одним условием
Итак, в этой главе вы научились использовали функцию ЕСЛИ и логические операторы для фильтрации (отбора) значений внутри формулы. Это важные инструменты, которые пригодятся вам и в иных аспектах работы с Excel.
Какой метод выборки на основе критериев предпочесть?
Метод | Преимущества | Недостатки |
Сводные таблицы | • Легко создавать, особенно с использованием нескольких критериев.• Легко изменить. | • Требует команды Обновить.• Только 11 функций. |
Функции для работы с базой данных | • Просто создавать• Быстрая работа формул.• Отсутствие Ctrl+Shift+Enter. | • Нелегко скопировать.• Данные должны содержать заголовки. |
АГРЕГАТ | • Результат изменяется сразу при изменении данных.• Легко скопировать формулу по столбцу.• Отсутствие Ctrl+Shift+Enter. | • Нелегко создавать.• Время расчета больше, чем у БД-функции.• Всего 19 функций и только 6 из них работают с массивами. |
Конструкция с одним или несколькими ЕСЛИ | • Результат изменяется сразу при изменении данных.• Легко скопировать формулу по столбцу.• Позволяет воспользоваться 350 формулами Excel. | • Требует Ctrl+Shift+Enter.• Нелегко создавать.• Время расчета больше, чем у БД-функции. |
Время работы формул, использованных в этой главе. Как говорилось в главе 2, формулы массива обрабатывающие большие наборы данных, могут увеличить время расчета. Иногда я буду приводить данные о времени работы формул. Это неофициальные результаты, которые получил лично я. Время зависит от многих факторов, и в вашей конкретной ситуации могут время может отличаться (рис. 4.44).
Рис. 4.44. БД-функция работает быстрее, чем конструкция МИН(ЕСЛИ(ЕСЛИ(…))) и АГРЕГАТ
[1] В Excel есть так называемое неявное преобразование типов. Логическое значение ИСТИНА соответствует числу 1, а ЛОЖЬ = 0. Подробнее это будет рассмотрено в главе 11. См. также, например, Что такое -
-
или как превратить ИСТИНА в 1, а ЛОЖЬ в 0?
Содержание
- Способы сравнения
- Способ 1: простая формула
- Способ 2: выделение групп ячеек
- Способ 3: условное форматирование
- Способ 4: комплексная формула
- Способ 5: сравнение массивов в разных книгах
- Вопросы и ответы
Довольно часто перед пользователями Excel стоит задача сравнения двух таблиц или списков для выявления в них отличий или недостающих элементов. Каждый юзер справляется с этой задачей по своему, но чаще всего на решение указанного вопроса тратится довольно большое количество времени, так как далеко не все подходы к данной проблеме являются рациональными. В то же время, существует несколько проверенных алгоритмов действий, которые позволят сравнить списки или табличные массивы в довольно сжатые сроки с минимальной затратой усилий. Давайте подробно рассмотрим данные варианты.
Читайте также: Сравнение двух документов в MS Word
Способы сравнения
Существует довольно много способов сравнения табличных областей в Excel, но все их можно разделить на три большие группы:
Именно исходя из этой классификации, прежде всего, подбираются методы сравнения, а также определяются конкретные действия и алгоритмы для выполнения задачи. Например, при проведении сравнения в разных книгах требуется одновременно открыть два файла Excel.
Кроме того, следует сказать, что сравнивать табличные области имеет смысл только тогда, когда они имеют похожую структуру.
Способ 1: простая формула
Самый простой способ сравнения данных в двух таблицах – это использование простой формулы равенства. Если данные совпадают, то она выдает показатель ИСТИНА, а если нет, то – ЛОЖЬ. Сравнивать можно, как числовые данные, так и текстовые. Недостаток данного способа состоит в том, что ним можно пользоваться только в том случае, если данные в таблице упорядочены или отсортированы одинаково, синхронизированы и имеют равное количество строчек. Давайте посмотрим, как использовать данный способ на практике на примере двух таблиц, размещенных на одном листе.
Итак, имеем две простые таблицы со списками работников предприятия и их окладами. Нужно сравнить списки сотрудников и выявить несоответствия между столбцами, в которых размещены фамилии.
- Для этого нам понадобится дополнительный столбец на листе. Вписываем туда знак «=». Затем кликаем по первому наименованию, которое нужно сравнить в первом списке. Опять ставим символ «=» с клавиатуры. Далее кликаем по первой ячейке колонки, которую мы сравниваем, во второй таблице. Получилось выражение следующего типа:
=A2=D2
Хотя, конечно, в каждом конкретном случае координаты будут отличаться, но суть останется одинаковой.
- Щелкаем по клавише Enter, чтобы получить результаты сравнения. Как видим, при сравнении первых ячеек обоих списков программа указала показатель «ИСТИНА», что означает совпадение данных.
- Теперь нам нужно провести аналогичную операцию и с остальными ячейками обеих таблиц в тех колонках, которые мы сравниваем. Но можно просто провести копирование формулы, что позволит существенно сэкономить время. Особенно данный фактор важен при сравнивании списков с большим количеством строк.
Процедуру копирования легче всего выполнить при помощи маркера заполнения. Наводим курсор на правый нижний угол ячейки, где мы получили показатель «ИСТИНА». При этом он должен преобразоваться в черный крестик. Это и есть маркер заполнения. Жмем левую кнопку мыши и тянем курсор вниз на количество строчек в сравниваемых табличных массивах.
- Как видим, теперь в дополнительном столбце отобразились все результаты сравнения данных в двух колонках табличных массивов. В нашем случае не совпали данные только в одной строке. При их сравнении формула выдала результат «ЛОЖЬ». По всем остальным строчкам, как видим, формула сравнения выдала показатель «ИСТИНА».
- Кроме того, существует возможность с помощью специальной формулы подсчитать количество несовпадений. Для этого выделяем тот элемент листа, куда оно будет выводиться. Затем щелкаем по значку «Вставить функцию».
- В окне Мастера функций в группе операторов «Математические» выделяем наименование СУММПРОИЗВ. Щелкаем по кнопке «OK».
- Активируется окно аргументов функции СУММПРОИЗВ, главной задачей которой является вычисление суммы произведений выделенного диапазона. Но данную функцию можно использовать и для наших целей. Синтаксис у неё довольно простой:
=СУММПРОИЗВ(массив1;массив2;…)
Всего в качестве аргументов можно использовать адреса до 255 массивов. Но в нашем случае мы будем использовать всего два массива, к тому же, как один аргумент.
Ставим курсор в поле «Массив1» и выделяем на листе сравниваемый диапазон данных в первой области. После этого в поле ставим знак «не равно» (<>) и выделяем сравниваемый диапазон второй области. Далее обворачиваем полученное выражение скобками, перед которыми ставим два знака «-». В нашем случае получилось такое выражение:
--(A2:A7<>D2:D7)
Щелкаем по кнопке «OK».
- Оператор производит расчет и выводит результат. Как видим, в нашем случае результат равен числу «1», то есть, это означает, что в сравниваемых списках было найдено одно несовпадение. Если бы списки были полностью идентичными, то результат бы был равен числу «0».
Таким же образом можно производить сравнение данных в таблицах, которые расположены на разных листах. Но в этом случае желательно, чтобы строки в них были пронумерованы. В остальном процедура сравнения практически точно такая, как была описана выше, кроме того факта, что при внесении формулы придется переключаться между листами. В нашем случае выражение будет иметь следующий вид:
=B2=Лист2!B2
То есть, как видим, перед координатами данных, которые расположены на других листах, отличных от того, где выводится результат сравнения, указывается номер листа и восклицательный знак.
Способ 2: выделение групп ячеек
Сравнение можно произвести при помощи инструмента выделения групп ячеек. С его помощью также можно сравнивать только синхронизированные и упорядоченные списки. Кроме того, в этом случае списки должны располагаться рядом друг с другом на одном листе.
- Выделяем сравниваемые массивы. Переходим во вкладку «Главная». Далее щелкаем по значку «Найти и выделить», который располагается на ленте в блоке инструментов «Редактирование». Открывается список, в котором следует выбрать позицию «Выделение группы ячеек…».
Кроме того, в нужное нам окно выделения группы ячеек можно попасть и другим способом. Данный вариант особенно будет полезен тем пользователям, у которых установлена версия программы ранее Excel 2007, так как метод через кнопку «Найти и выделить» эти приложения не поддерживают. Выделяем массивы, которые желаем сравнить, и жмем на клавишу F5.
- Активируется небольшое окошко перехода. Щелкаем по кнопке «Выделить…» в его нижнем левом углу.
- После этого, какой бы из двух вышеперечисленных вариантов вы не избрали, запускается окно выделения групп ячеек. Устанавливаем переключатель в позицию «Выделить по строкам». Жмем по кнопке «OK».
- Как видим, после этого несовпадающие значения строк будут подсвечены отличающимся оттенком. Кроме того, как можно судить из содержимого строки формул, программа сделает активной одну из ячеек, находящуюся в указанных не совпавших строках.
Способ 3: условное форматирование
Произвести сравнение можно, применив метод условного форматирования. Как и в предыдущем способе, сравниваемые области должны находиться на одном рабочем листе Excel и быть синхронизированными между собой.
- Прежде всего, выбираем, какую табличную область будем считать основной, а в какой искать отличия. Последнее давайте будем делать во второй таблице. Поэтому выделяем список работников, находящийся в ней. Переместившись на вкладку «Главная», щелкаем по кнопке «Условное форматирование», которая имеет месторасположение на ленте в блоке «Стили». Из выпадающего списка переходим по пункту «Управление правилами».
- Активируется окошко диспетчера правил. Жмем в нем на кнопку «Создать правило».
- В запустившемся окне производим выбор позиции «Использовать формулу». В поле «Форматировать ячейки» записываем формулу, содержащую адреса первых ячеек диапазонов сравниваемых столбцов, разделенные знаком «не равно» (<>). Только перед данным выражением на этот раз будет стоять знак «=». Кроме того, ко всем к координатам столбцов в данной формуле нужно применить абсолютную адресацию. Для этого выделяем формулу курсором и трижды жмем на клавишу F4. Как видим, около всех адресов столбцов появился знак доллара, что и означает превращение ссылок в абсолютные. Для нашего конкретного случая формула примет следующий вид:
=$A2<>$D2
Данное выражение мы и записываем в вышеуказанное поле. После этого щёлкаем по кнопке «Формат…».
- Активируется окно «Формат ячеек». Идем во вкладку «Заливка». Тут в перечне цветов останавливаем выбор на цвете, которым хотим окрашивать те элементы, где данные не будут совпадать. Жмем на кнопку «OK».
- Вернувшись в окно создания правила форматирования, жмем на кнопку «OK».
- После автоматического перемещения в окно «Диспетчера правил» щелкаем по кнопке «OK» и в нем.
- Теперь во второй таблице элементы, которые имеют данные, несовпадающие с соответствующими значениями первой табличной области, будут выделены выбранным цветом.
Существует ещё один способ применения условного форматирования для выполнения поставленной задачи. Как и предыдущие варианты, он требует расположения обоих сравниваемых областей на одном листе, но в отличие от ранее описанных способов, условие синхронизации или сортировки данных не будет являться обязательным, что выгодно отличает данный вариант от ранее описанных.
- Производим выделение областей, которые нужно сравнить.
- Выполняем переход во вкладку под названием «Главная». Делаем щелчок по кнопке «Условное форматирование». В активировавшемся списке выбираем позицию «Правила выделения ячеек». В следующем меню делаем выбор позиции «Повторяющиеся значения».
- Запускается окно настройки выделения повторяющихся значений. Если вы все сделали правильно, то в данном окне остается только нажать на кнопку «OK». Хотя при желании в соответствующем поле данного окошка можно выбрать другой цвет выделения.
- После того, как мы произведем указанное действие, все повторяющиеся элементы будут выделены выбранным цветом. Те элементы, которые не совпадают, останутся окрашенными в свой изначальный цвет (по умолчанию белый). Таким образом, можно сразу визуально увидеть, в чем отличие между массивами.
При желании можно, наоборот, окрасить несовпадающие элементы, а те показатели, которые совпадают, оставить с заливкой прежним цветом. При этом алгоритм действий практически тот же, но в окне настройки выделения повторяющихся значений в первом поле вместо параметра «Повторяющиеся» следует выбрать параметр «Уникальные». После этого нажать на кнопку «OK».
Таким образом, будут выделены именно те показатели, которые не совпадают.
Урок: Условное форматирование в Экселе
Способ 4: комплексная формула
Также сравнить данные можно при помощи сложной формулы, основой которой является функция СЧЁТЕСЛИ. С помощью данного инструмента можно произвести подсчет того, сколько каждый элемент из выбранного столбца второй таблицы повторяется в первой.
Оператор СЧЁТЕСЛИ относится к статистической группе функций. Его задачей является подсчет количества ячеек, значения в которых удовлетворяют заданному условию. Синтаксис данного оператора имеет такой вид:
=СЧЁТЕСЛИ(диапазон;критерий)
Аргумент «Диапазон» представляет собой адрес массива, в котором производится подсчет совпадающих значений.
Аргумент «Критерий» задает условие совпадения. В нашем случае он будет представлять собой координаты конкретных ячеек первой табличной области.
- Выделяем первый элемент дополнительного столбца, в котором будет производиться подсчет количества совпадений. Далее щелкаем по пиктограмме «Вставить функцию».
- Происходит запуск Мастера функций. Переходим в категорию «Статистические». Находим в перечне наименование «СЧЁТЕСЛИ». После его выделения щелкаем по кнопке «OK».
- Происходит запуск окна аргументов оператора СЧЁТЕСЛИ. Как видим, наименования полей в этом окне соответствуют названиям аргументов.
Устанавливаем курсор в поле «Диапазон». После этого, зажав левую кнопку мыши, выделяем все значения столбца с фамилиями второй таблицы. Как видим, координаты тут же попадают в указанное поле. Но для наших целей следует сделать данный адрес абсолютным. Для этого выделяем данные координаты в поле и жмем на клавишу F4.
Как видим, ссылка приняла абсолютную форму, что характеризуется наличием знаков доллара.
Затем переходим к полю «Критерий», установив туда курсор. Щелкаем по первому элементу с фамилиями в первом табличном диапазоне. В данном случае оставляем ссылку относительной. После того, как она отобразилась в поле, можно щелкать по кнопке «OK».
- В элемент листа выводится результат. Он равен числу «1». Это означает, что в перечне имен второй таблицы фамилия «Гринев В. П.», которая является первой в списке первого табличного массива, встречается один раз.
- Теперь нам нужно создать подобное выражение и для всех других элементов первой таблицы. Для этого выполним копирование, воспользовавшись маркером заполнения, как это мы уже делали прежде. Ставим курсор в нижнюю правую часть элемента листа, который содержит функцию СЧЁТЕСЛИ, и после преобразования его в маркер заполнения зажимаем левую кнопку мыши и тянем курсор вниз.
- Как видим, программа произвела вычисление совпадений, сравнив каждую ячейку первой таблицы с данными, которые расположены во втором табличном диапазоне. В четырех случаях результат вышел «1», а в двух случаях – «0». То есть, программа не смогла отыскать во второй таблице два значения, которые имеются в первом табличном массиве.
Конечно, данное выражение для того, чтобы сравнить табличные показатели, можно применять и в существующем виде, но есть возможность его усовершенствовать.
Сделаем так, чтобы те значения, которые имеются во второй таблице, но отсутствуют в первой, выводились отдельным списком.
- Прежде всего, немного переработаем нашу формулу СЧЁТЕСЛИ, а именно сделаем её одним из аргументов оператора ЕСЛИ. Для этого выделяем первую ячейку, в которой расположен оператор СЧЁТЕСЛИ. В строке формул перед ней дописываем выражение «ЕСЛИ» без кавычек и открываем скобку. Далее, чтобы нам легче было работать, выделяем в строке формул значение «ЕСЛИ» и жмем по иконке «Вставить функцию».
- Открывается окно аргументов функции ЕСЛИ. Как видим, первое поле окна уже заполнено значением оператора СЧЁТЕСЛИ. Но нам нужно дописать кое-что ещё в это поле. Устанавливаем туда курсор и к уже существующему выражению дописываем «=0» без кавычек.
После этого переходим к полю «Значение если истина». Тут мы воспользуемся ещё одной вложенной функцией – СТРОКА. Вписываем слово «СТРОКА» без кавычек, далее открываем скобки и указываем координаты первой ячейки с фамилией во второй таблице, после чего закрываем скобки. Конкретно в нашем случае в поле «Значение если истина» получилось следующее выражение:
СТРОКА(D2)
Теперь оператор СТРОКА будет сообщать функции ЕСЛИ номер строки, в которой расположена конкретная фамилия, и в случае, когда условие, заданное в первом поле, будет выполняться, функция ЕСЛИ будет выводить этот номер в ячейку. Жмем на кнопку «OK».
- Как видим, первый результат отображается, как «ЛОЖЬ». Это означает, что значение не удовлетворяет условиям оператора ЕСЛИ. То есть, первая фамилия присутствует в обоих списках.
- С помощью маркера заполнения, уже привычным способом копируем выражение оператора ЕСЛИ на весь столбец. Как видим, по двум позициям, которые присутствуют во второй таблице, но отсутствуют в первой, формула выдает номера строк.
- Отступаем от табличной области вправо и заполняем колонку номерами по порядку, начиная от 1. Количество номеров должно совпадать с количеством строк во второй сравниваемой таблице. Чтобы ускорить процедуру нумерации, можно также воспользоваться маркером заполнения.
- После этого выделяем первую ячейку справа от колонки с номерами и щелкаем по значку «Вставить функцию».
- Открывается Мастер функций. Переходим в категорию «Статистические» и производим выбор наименования «НАИМЕНЬШИЙ». Щелкаем по кнопке «OK».
- Функция НАИМЕНЬШИЙ, окно аргументов которой было раскрыто, предназначена для вывода указанного по счету наименьшего значения.
В поле «Массив» следует указать координаты диапазона дополнительного столбца «Количество совпадений», который мы ранее преобразовали с помощью функции ЕСЛИ. Делаем все ссылки абсолютными.
В поле «K» указывается, какое по счету наименьшее значение нужно вывести. Тут указываем координаты первой ячейки столбца с нумерацией, который мы недавно добавили. Адрес оставляем относительным. Щелкаем по кнопке «OK».
- Оператор выводит результат – число 3. Именно оно наименьшее из нумерации несовпадающих строк табличных массивов. С помощью маркера заполнения копируем формулу до самого низа.
- Теперь, зная номера строк несовпадающих элементов, мы можем вставить в ячейку и их значения с помощью функции ИНДЕКС. Выделяем первый элемент листа, содержащий формулу НАИМЕНЬШИЙ. После этого переходим в строку формул и перед наименованием «НАИМЕНЬШИЙ» дописываем название «ИНДЕКС» без кавычек, тут же открываем скобку и ставим точку с запятой (;). Затем выделяем в строке формул наименование «ИНДЕКС» и кликаем по пиктограмме «Вставить функцию».
- После этого открывается небольшое окошко, в котором нужно определить, ссылочный вид должна иметь функция ИНДЕКС или предназначенный для работы с массивами. Нам нужен второй вариант. Он установлен по умолчанию, так что в данном окошке просто щелкаем по кнопке «OK».
- Запускается окно аргументов функции ИНДЕКС. Данный оператор предназначен для вывода значения, которое расположено в определенном массиве в указанной строке.
Как видим, поле «Номер строки» уже заполнено значениями функции НАИМЕНЬШИЙ. От уже существующего там значения следует отнять разность между нумерацией листа Excel и внутренней нумерацией табличной области. Как видим, над табличными значениями у нас только шапка. Это значит, что разница составляет одну строку. Поэтому дописываем в поле «Номер строки» значение «-1» без кавычек.
В поле «Массив» указываем адрес диапазона значений второй таблицы. При этом все координаты делаем абсолютными, то есть, ставим перед ними знак доллара уже ранее описанным нами способом.
Жмем на кнопку «OK».
- После вывода результат на экран протягиваем функцию с помощью маркера заполнения до конца столбца вниз. Как видим, обе фамилии, которые присутствуют во второй таблице, но отсутствуют в первой, выведены в отдельный диапазон.
Способ 5: сравнение массивов в разных книгах
При сравнении диапазонов в разных книгах можно использовать перечисленные выше способы, исключая те варианты, где требуется размещение обоих табличных областей на одном листе. Главное условие для проведения процедуры сравнения в этом случае – это открытие окон обоих файлов одновременно. Для версий Excel 2013 и позже, а также для версий до Excel 2007 с выполнением этого условия нет никаких проблем. Но в Excel 2007 и Excel 2010 для того, чтобы открыть оба окна одновременно, требуется провести дополнительные манипуляции. Как это сделать рассказывается в отдельном уроке.
Урок: Как открыть Эксель в разных окнах
Как видим, существует целый ряд возможностей сравнить таблицы между собой. Какой именно вариант использовать зависит от того, где именно расположены табличные данные относительно друг друга (на одном листе, в разных книгах, на разных листах), а также от того, как именно пользователь желает, чтобы это сравнение выводилось на экран.
Колонки сравнивают для того, чтобы, например, в отчетах не было дубликатов. Или, наоборот, для проверки правильности заполнения — с поиском непохожих значений. И проще всего выполнять сравнение двух столбцов на совпадение в Excel — для этого есть 6 способов.
1 Сравнение с помощью простого поиска
При наличии небольшой по размеру таблицы заниматься сравнением можно практически вручную. Для этого достаточно выполнить несколько простых действий.
- Перейти на главную вкладку табличного процессора.
- В группе «Редактирование» выбрать пункт поиска.
- Выделить столбец, в котором будет выполняться поиск совпадений — например, второй.
- Вручную задавать значения из основного столбца (в данном случае — первого) и искать совпадения.
Если значение обнаружено, результатом станет выделение нужной ячейки. Однако с помощью такого способа можно работать только с небольшими столбцами. И, если это просто цифры, так можно сделать и без поиска — определяя совпадения визуально. Впрочем, если в колонках записаны большие объемы текста, даже такая простая методика позволит упростить поиск точного совпадения.
2 Операторы ЕСЛИ и СЧЕТЕСЛИ
Еще один способ сравнения значений в двух столбцах Excel подходит для таблиц практически неограниченного размера. Он основан на применении условного оператора ЕСЛИ и отличается от других методик тем, что для анализа совпадений берется только указанная в формуле часть, а не все значения массива. Порядок действий при использовании методики тоже не слишком сложный и подойдет даже для начинающего пользователя Excel.
- Сравниваемые столбцы размещаются на одном листе. Не обязательно, чтобы они находились рядом друг с другом.
- В третьем столбце, например, в ячейке J6, ввести формулу такого типа: =ЕСЛИ(ЕОШИБКА(ПОИСКПОЗ(H6;$I$6:$I$14;0));»;H6)
- Протянуть формулу до конца столбца.
Результатом станет появление в третьей колонке всех совпадающих значений. Причем H6 в примере — это первая ячейка одного из сравниваемых столбцов. А диапазон $I$6:$I$14 — все значения второй участвующей в сравнении колонки. Функция будет последовательно сравнивать данные и размещать только те из них, которые совпали. Однако выделения обнаруженных совпадений не происходит, поэтому методика подходит далеко не для всех ситуаций.
Еще один способ предполагает поиск не просто дубликатов в разных колонках, но и их расположения в пределах одной строки. Для этого можно применить все тот же оператор ЕСЛИ, добавив к нему еще одну функцию Excel — И. Формула поиска дубликатов для данного примера будет следующей: =ЕСЛИ(И(H6=I6); «Совпадают»; «») — ее точно так же размещают в ячейке J6 и протягивают до самого низа проверяемого диапазона. При наличии совпадений появится указанная надпись (можно выбрать «Совпадают» или «Совпадение»), при отсутствии — будет выдаваться пустота.
Тот же способ подойдет и для сравнения сразу большого количества колонок с данными на точное совпадение не только значения, но и строки. Для этого применяется уже не оператор ЕСЛИ, а функция СЧЕТЕСЛИ. Принцип написания и размещения формулы похожий.
Она имеет вид =ЕСЛИ(СЧЕТЕСЛИ($H6:$J6;$H6)=3; «Совпадают»;») и должна размещаться в верхней части следующего столбца с протягиванием вниз. Однако в формулу добавляется еще количество сравниваемых колонок — в данном случае, три.
Если поставить вместо тройки двойку, результатом будет поиск только тех совпадений с первой колонкой, которые присутствуют в одном из других столбцов. Причем, тройные дубликаты формула проигнорирует. Так же как и совпадения второй и третьей колонки.
3 Формула подстановки ВПР
Принцип действия еще одной функции для поиска дубликатов напоминает первый способ использованием оператора ЕСЛИ. Но вместо ПОИСКПОЗ применяется ВПР, которую можно расшифровать как «Вертикальный Просмотр». Для сравнения двух столбцов из похожего примера следует ввести в верхнюю ячейку (J6) третьей колонки формулу =ВПР(H6;$I$6:$I$15;1;0) и протянуть ее в самый низ, до J15.
С помощью этой функции не просто просматриваются и сравниваются повторяющиеся данные — результаты проверки устанавливаются четко напротив сравниваемого значения в первом столбце. Если программа не нашла совпадений, выдается #Н/Д.
4 Функция СОВПАД
Достаточно просто выполнить в Эксель сравнение двух столбцов с помощью еще двух полезных операторов — распространенного ИЛИ и встречающейся намного реже функции СОВПАД. Для ее использования выполняются такие действия:
- В третьем столбце, где будут размещаться результаты, вводится формула =ИЛИ(СОВПАД(I6;$H$6:$H$19))
- Вместо нажатия Enter нажимается комбинация клавиш Ctr + Shift + Enter. Результатом станет появление фигурных скобок слева и справа формулы.
- Формула протягивается вниз, до конца сравниваемой колонки — в данном случае проверяется наличие данных из второго столбца в первом. Это позволит изменяться сравниваемому показателю, тогда как знак $ закрепляет диапазон, с которым выполняется сравнение.
Результатом такого сравнения будет вывод уже не найденного совпадающего значения, а булевой переменной. В случае нахождения это будет «ИСТИНА». Если ни одного совпадения не было обнаружено — в ячейке появится надпись «ЛОЖЬ».
Стоит отметить, что функция СОВПАД сравнивает и числа, и другие виды данных с учетом верхнего регистра. А одним из самых распространенных способом использования такой формулы сравнения двух столбцов в Excel является поиска информации в базе данных. Например, отдельных видов мебели в каталоге.
5 Сравнение с выделением совпадений цветом
В поисках совпадений между данными в 2 столбцах пользователю Excel может понадобиться выделить найденные дубликаты, чтобы их было легко найти. Это позволит упростить поиск ячеек, в которых находятся совпадающие значения. Выделять совпадения и различия можно цветом — для этого понадобится применить условное форматирование.
Порядок действий для применения методики следующий:
- Перейти на главную вкладку табличного процессора.
- Выделить диапазон, в котором будут сравниваться столбцы.
- Выбрать пункт условного форматирования.
- Перейти к пункту «Правила выделения ячеек».
- Выбрать «Повторяющиеся значения».
- В открывшемся окне указать, как именно будут выделяться совпадения в первой и второй колонке. Например, красным текстом, если цвет остальных сообщений стандартный черный. Затем указать, что выделяться будут именно повторяющиеся ячейки.
Теперь можно снять выделение и сравнить совпадающие значения, которые будут заметно отличаться от остальной информации. Точно так же можно выделить, например, и уникальную информацию. Для этого следует выбрать вместо «повторяющихся» второй вариант — «уникальные».
6 Надстройка Inquire
Начиная с версий MS Excel 2013 табличный процессор позволяет воспользоваться еще одной методикой — специальной надстройкой Inquire. Она предназначена для того, чтобы сравнивать не колонки, а два файла .XLS или .XLSX в поисках не только совпадений, но и другой полезной информации.
Для использования способа придется расположить столбцы или целые блоки информации в разных книгах и удалить все остальные данные, кроме сравниваемой информации. Кроме того, для проверки необходимо, чтобы оба файла были одновременно открытыми.
Процесс использования надстройки включает такие действия:
- Перейти к параметрам электронной таблицы.
- Выбрать сначала надстройки, а затем управление надстройками COM.
- Отметить пункт Inquire и нажать «ОК».
- Перейти к вкладке Inquire.
- Нажать на кнопку Compare Files, указать, какие именно файлы будут сравниваться, и выбрать Compare.
- В открывшемся окне провести сравнения, используя показанные совпадения и различия между данными в столбцах.
У каждого варианта сравнения — свое цветовое решение. Так, зеленым цветом на примере выделены отличия. У совпадающих данных отсутствует выделение. А сравнение расчетных формул показало, что результаты отличаются все — и для выделения использован бирюзовый цвет.
Читайте также:
- 5 программ для совместной работы с документами
-
Как в Экселе протянуть формулу по строке или столбцу: 5 способов