Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2019, 15:45   #1
whtfcka
 
Регистрация: 16.05.2019
Сообщений: 4
По умолчанию Сбор и сравнение текстовых значений на сводный лист

Доброго дня
Возникла проблема с созданием формулы, которая бы на нескольких листах по формулам ИНДЕКС+ПОИСКПОЗ искала текстовые значения и сравнивала их между собой, НО при этом не учитывала пустые ячейки, и листы, на которых нет такой комбинации.
Если значения не совпадают, то выводится ERROR, если все ок, то с любого листа.

Вытянуть значения получается, как и сравнить, но все формулы не пропускают пустые ячейки и считают их 0, по итогу имеем ERROR.
Пытался сначала сделать хотя бы без проверки на равенство, но оказалось что функция ЕПУСТО считает, что если на листе нет такой комбинации, и мы имеем #Н/Д, то это Ок.
=ЕСЛИ(ЕСЛИОШИБКА(ЕПУСТО(ИНДЕКС(Plas tic!$E$6:$AI$1000;ПОИСКПОЗ($A6;Plas tic!$A$6:$A$1000;0);ПОИСКПОЗ(G$4;Pl astic!$E$4:$AI$4;0)));ИСТИНА);1;ИНД ЕКС(Plastic!$E$6:$AI$1000;ПОИСКПОЗ( $A6;Plastic!$A$6:$A$1000;0);ПОИСКПО З(G$4;Plastic!$E$4:$AI$4;0)))
Вложения
Тип файла: xlsx табель.xlsx (97.4 Кб, 12 просмотров)
whtfcka вне форума Ответить с цитированием
Старый 16.05.2019, 17:00   #2
whtfcka
 
Регистрация: 16.05.2019
Сообщений: 4
По умолчанию q

Добавлено:
Сделал проверку на пустую ячейку + еслиошибка,т.е. если один из этих условий верно, то возращает ИСТИНУ. Но как это распространить далее (если для первого листа ИСТИНА, чтобы он брал второй, если нет, то значение с первого листа. Осложняется тем, что необходимо использовать формат .xls который не поддерживает большое кол-во подуровней формул.
Код:
=ЕСЛИОШИБКА(ИНДЕКС(Plastic!$E$6:$AI$1000;ПОИСКПОЗ($A6;Plastic!$A$6:$A$1000;0);ПОИСКПОЗ(G$4;Plastic!$E$4:$AI$4;0))=0;ИСТИНА)
whtfcka вне форума Ответить с цитированием
Старый 16.05.2019, 18:56   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

в Е6
Код:
=ЕСЛИ(НЕ(ЕПУСТО(ИНДЕКС(Plastic!$A$1:$AI$12;ПОИСКПОЗ(Свод!$A6;Plastic!$A:$A;);СТОЛБЕЦ())))*(ИНДЕКС(Plastic!$A$1:$AI$12;ПОИСКПОЗ(Свод!$A6;Plastic!$A:$A;);СТОЛБЕЦ())=ИНДЕКС(Plastic2!$A$1:$AI$12;ПОИСКПОЗ(Свод!$A6;Plastic2!$A:$A;);СТОЛБЕЦ()));ИНДЕКС(Plastic!$A$1:$AI$12;ПОИСКПОЗ(Свод!$A6;Plastic!$A:$A;);СТОЛБЕЦ());"Err!!!")
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 17.05.2019, 11:51   #4
whtfcka
 
Регистрация: 16.05.2019
Сообщений: 4
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
в Е6
Код:
=ЕСЛИ(НЕ(ЕПУСТО(ИНДЕКС(Plastic!$A$1:$AI$12;ПОИСКПОЗ(Свод!$A6;Plastic!$A:$A;);СТОЛБЕЦ())))*(ИНДЕКС(Plastic!$A$1:$AI$12;ПОИСКПОЗ(Свод!$A6;Plastic!$A:$A;);СТОЛБЕЦ())=ИНДЕКС(Plastic2!$A$1:$AI$12;ПОИСКПОЗ(Свод!$A6;Plastic2!$A:$A;);СТОЛБЕЦ()));ИНДЕКС(Plastic!$A$1:$AI$12;ПОИСКПОЗ(Свод!$A6;Plastic!$A:$A;);СТОЛБЕЦ());"Err!!!")
Спасибо,

Данная формула все таки учитывает для сравнения пустую ячейку, и #Н/Д
Проблема найти формулу, которая не будет этого делать.
Т.е. если ячейка на одном листе пустая, или значения не найдено(#Н/Д), то в формуле этот лист не участвует(при сравнении не берется в расчет), и действие переходит на следующий лист

Последний раз редактировалось whtfcka; 17.05.2019 в 11:57.
whtfcka вне форума Ответить с цитированием
Старый 17.05.2019, 11:58   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

проблема в том, что нужно условия задачи описывать, а не свои формулы
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 17.05.2019, 13:52   #6
whtfcka
 
Регистрация: 16.05.2019
Сообщений: 4
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
проблема в том, что нужно условия задачи описывать, а не свои формулы
Извиняюсь, переформулировал

Исходная задача : имеется файл с n-ым кол-вом листов (в примере 4 – Plastic1-4). На этих листах содержатся текстовые значения типа Я,НН, В и т.п.
Все эти данные надо собрать со всех листов в один сводный лист по пересечению код/дата по ИНДЕКС + ПОИСКПОЗ,

Условие для сбора – формула не должна учитывать лист если ячейка пустая, и если данных нет (#Н/Д). Если значение на листе есть, то оно должно быть равно значениям на других листах, в противном случае возвращаем ERR!

Попытался сделать, но даже без условия сравнения, формула имеет очень много вхождений (что неподдерживается .xls - его использовать обязательно)

Спасибо заранее
Вложения
Тип файла: xlsx табель.xlsx (115.6 Кб, 12 просмотров)
whtfcka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнение двух столбцов Excel и вывод на другой лист общих значений - MS Excel MupoH4uk1989 Microsoft Office Excel 2 09.04.2018 07:48
Сравнение текстовых значений climber Microsoft Office Excel 2 24.01.2013 17:09
Сравнение текстовых значений в подтягиваемых ячейках Alexander Shurov Microsoft Office Excel 12 14.11.2012 08:06
Сравнение данных по определенному диапазону строк и при совпадении значений копирование данных в другой лист Volk358 Microsoft Office Excel 6 02.10.2012 09:54
Сбор информации в один лист по запросу Жанна Ефимчук Microsoft Office Excel 2 20.01.2011 15:07