Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Слияние строк в одну результирующую (при совпадении) - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Слияние строк в одну результирующую (при совпадении)
FreeZeMan186 Дата: Понедельник, 11.12.2017, 22:09 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте!
Имеется таблица со столбцами следующего вида (Д- данные):
ФИО1/Д11/Д12/Д13/Д14/Д15/Д16/Д17/Д18
ФИО2/Д21/Д22/Д23/Д24/Д25/Д26/Д27/Д28
...
ФИОn/Дn1/Дn2/Дn3/Дn4/Дn5/Дn6/Дn7/Дn8

При этом значение ФИО иногда повторяется, но, при таком совпадении, всегда если значение Дх в одной из совпавших по параметру ФИО ячеек не "нулевое" (ячейка с каким-либо значением), то соответствующее значение Дnх будет нулевым (пустая ячейка). Данное условие справедливо для любого Д, кроме Дn8. Значение Д это номер телефона - он может иметь либо вид "городского" хх-хх-хх, либо записан в международном формате +7 ххх ххх хх хх. Вот что требуется:
1. При нахождении совпадений по параметру ФИО такие строки нужно преобразовать в одну (совпадений не будет больше 2х);
2. При этом значения Д1-Д7 нужно просуммировать, точнее, с учетом того что в одной из строк значение всегда будет "нулевым" (пустая ячейка), нужно оставить в объедененной строке ненулевое значение (если оба нулевые, то оставить нулевое);
3. При объединении Д8 нужно оставить значение которое имеет больше символов.
В файле пример таблицы и желаемый результат.
Заранее благодарю за помощь.
П. С. Если возможно это сделать формулами было бы отлично.
К сообщению приложен файл: PRIMER.xls (23.0 Kb)
 
Ответить
СообщениеЗдравствуйте!
Имеется таблица со столбцами следующего вида (Д- данные):
ФИО1/Д11/Д12/Д13/Д14/Д15/Д16/Д17/Д18
ФИО2/Д21/Д22/Д23/Д24/Д25/Д26/Д27/Д28
...
ФИОn/Дn1/Дn2/Дn3/Дn4/Дn5/Дn6/Дn7/Дn8

При этом значение ФИО иногда повторяется, но, при таком совпадении, всегда если значение Дх в одной из совпавших по параметру ФИО ячеек не "нулевое" (ячейка с каким-либо значением), то соответствующее значение Дnх будет нулевым (пустая ячейка). Данное условие справедливо для любого Д, кроме Дn8. Значение Д это номер телефона - он может иметь либо вид "городского" хх-хх-хх, либо записан в международном формате +7 ххх ххх хх хх. Вот что требуется:
1. При нахождении совпадений по параметру ФИО такие строки нужно преобразовать в одну (совпадений не будет больше 2х);
2. При этом значения Д1-Д7 нужно просуммировать, точнее, с учетом того что в одной из строк значение всегда будет "нулевым" (пустая ячейка), нужно оставить в объедененной строке ненулевое значение (если оба нулевые, то оставить нулевое);
3. При объединении Д8 нужно оставить значение которое имеет больше символов.
В файле пример таблицы и желаемый результат.
Заранее благодарю за помощь.
П. С. Если возможно это сделать формулами было бы отлично.

Автор - FreeZeMan186
Дата добавления - 11.12.2017 в 22:09
Светлый Дата: Вторник, 12.12.2017, 09:08 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1867
Репутация: 536 ±
Замечаний: 0% ±

Excel 2013, 2016
Не мудрствуя лукаво, без оптимизации.
Для ФИО (массивная):
Код
=ПОДСТАВИТЬ(ИНДЕКС(A:A;МИН(ЕСЛИ(ЕНД(ПОИСКПОЗ(A$2:A$11;A$26:A26;));СТРОКА($2:$11))));A$1;"")

Для остальных (массивная):
Код
=ЕСЛИ($A27="";"";ЕСЛИ(ДЛСТР(ПОДСТАВИТЬ(ИНДЕКС(B:B;НАИБОЛЬШИЙ(ЕСЛИ($A27=$A$2:$A$11;СТРОКА($2:$11););2));B$1;""))>ДЛСТР(ИНДЕКС(B:B;МАКС(ЕСЛИ($A27=$A$2:$A$11;СТРОКА($2:$11);))));ИНДЕКС(B:B;НАИБОЛЬШИЙ(ЕСЛИ($A27=$A$2:$A$11;СТРОКА($2:$11););2));ИНДЕКС(B:B;МАКС(ЕСЛИ($A27=$A$2:$A$11;СТРОКА($2:$11);)))))
К сообщению приложен файл: PRIMER-1.xls (64.5 Kb)


Программировать проще, чем писать стихи.
 
Ответить
СообщениеНе мудрствуя лукаво, без оптимизации.
Для ФИО (массивная):
Код
=ПОДСТАВИТЬ(ИНДЕКС(A:A;МИН(ЕСЛИ(ЕНД(ПОИСКПОЗ(A$2:A$11;A$26:A26;));СТРОКА($2:$11))));A$1;"")

Для остальных (массивная):
Код
=ЕСЛИ($A27="";"";ЕСЛИ(ДЛСТР(ПОДСТАВИТЬ(ИНДЕКС(B:B;НАИБОЛЬШИЙ(ЕСЛИ($A27=$A$2:$A$11;СТРОКА($2:$11););2));B$1;""))>ДЛСТР(ИНДЕКС(B:B;МАКС(ЕСЛИ($A27=$A$2:$A$11;СТРОКА($2:$11);))));ИНДЕКС(B:B;НАИБОЛЬШИЙ(ЕСЛИ($A27=$A$2:$A$11;СТРОКА($2:$11););2));ИНДЕКС(B:B;МАКС(ЕСЛИ($A27=$A$2:$A$11;СТРОКА($2:$11);)))))

Автор - Светлый
Дата добавления - 12.12.2017 в 09:08
_Boroda_ Дата: Вторник, 12.12.2017, 09:38 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16885
Репутация: 6599 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Если сначала выделить столбец I - Данные - Текст по столбцам - Готово
то можно сводной таблицей
Эдинственно что - столбец Д5 придется поставить вторым
К сообщению приложен файл: PRIMER-17-1.xls (28.5 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЕсли сначала выделить столбец I - Данные - Текст по столбцам - Готово
то можно сводной таблицей
Эдинственно что - столбец Д5 придется поставить вторым

Автор - _Boroda_
Дата добавления - 12.12.2017 в 09:38
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!