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

Вход

Регистрация

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

 

= Мир MS Excel/ВПР+ПОИСКПОЗ+СТРОКА+и еще не знаю что... - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
ВПР+ПОИСКПОЗ+СТРОКА+и еще не знаю что...
Мур Дата: Вторник, 09.10.2012, 16:16 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 436
Репутация: 19 ±
Замечаний: 0% ±

Приветствую участников форума!
В процессе работы столкнулся со следующей задачей:
из таблицы с данными, состоящей из двух столбцов необходимо разнести эти самые данные
в более развернутую таблицу (СМ Пример).
Понятия не имею какими средствами это можно сделать.
Был бы признателен как за готовое решение, так и за подсказку к решению.
К сообщению приложен файл: 0620113.xlsx (14.0 Kb)
 
Ответить
СообщениеПриветствую участников форума!
В процессе работы столкнулся со следующей задачей:
из таблицы с данными, состоящей из двух столбцов необходимо разнести эти самые данные
в более развернутую таблицу (СМ Пример).
Понятия не имею какими средствами это можно сделать.
Был бы признателен как за готовое решение, так и за подсказку к решению.

Автор - Мур
Дата добавления - 09.10.2012 в 16:16
DJ_Marker_MC Дата: Вторник, 09.10.2012, 16:30 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 991
Репутация: 213 ±
Замечаний: 0% ±

Excel 2019
вот так не подойдет?
К сообщению приложен файл: 2207469.xlsx (13.4 Kb)
 
Ответить
Сообщениевот так не подойдет?

Автор - DJ_Marker_MC
Дата добавления - 09.10.2012 в 16:30
_Boroda_ Дата: Вторник, 09.10.2012, 16:43 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16715
Репутация: 6504 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Для первого варианта
Code
=ЕСЛИОШИБКА(НАИМЕНЬШИЙ(ЕСЛИ($A$2:$A$26=$R2;$B$2:$B$26);СТОЛБЕЦ()-СТОЛБЕЦ($R2))/($R2<>0);"")
К сообщению приложен файл: 0620113_1.xlsx (17.6 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеДля первого варианта
Code
=ЕСЛИОШИБКА(НАИМЕНЬШИЙ(ЕСЛИ($A$2:$A$26=$R2;$B$2:$B$26);СТОЛБЕЦ()-СТОЛБЕЦ($R2))/($R2<>0);"")

Автор - _Boroda_
Дата добавления - 09.10.2012 в 16:43
Serge_007 Дата: Вторник, 09.10.2012, 16:45 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Вариант:
Code
=НАИМЕНЬШИЙ(ЕСЛИ(($F2=$A$2:$A$26);$B$2:$B$26);СТОЛБЕЦ(G2)-6)
К сообщению приложен файл: 8371777.xls (51.5 Kb)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеВариант:
Code
=НАИМЕНЬШИЙ(ЕСЛИ(($F2=$A$2:$A$26);$B$2:$B$26);СТОЛБЕЦ(G2)-6)

Автор - Serge_007
Дата добавления - 09.10.2012 в 16:45
Мур Дата: Вторник, 09.10.2012, 16:46 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 436
Репутация: 19 ±
Замечаний: 0% ±

Уважаемый, marker_mc, это не то что требовалось.
В Вашем решении конечная таблица будет равна по количеству строк исходному диапазону, а это неприемлимо,т.к.
исходный диапазон может составлять до 4 000 строк, в среднем 500. Смысл разноски в обеспечении наглядности. В любом случае спасибо!
Мне пища для размышления!
 
Ответить
СообщениеУважаемый, marker_mc, это не то что требовалось.
В Вашем решении конечная таблица будет равна по количеству строк исходному диапазону, а это неприемлимо,т.к.
исходный диапазон может составлять до 4 000 строк, в среднем 500. Смысл разноски в обеспечении наглядности. В любом случае спасибо!
Мне пища для размышления!

Автор - Мур
Дата добавления - 09.10.2012 в 16:46
vikttur Дата: Вторник, 09.10.2012, 16:48 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Откуда у авторов уверенность, что нужны именно такие функции?

Формула массива:
Code
=МАКС(ЕСЛИ($A$2:$A$26=$F2;ЕСЛИ($B$2:$B$26=СТОЛБЕЦ(A:A);СТОЛБЕЦ(A:A);"");""))

Нужно установить в параметрах листа галку "не отображать нули".

Проще: создаем доп. столбец (например, С):
Code
=A2&B2

С помощью допстолбца:
Code
=ЕСЛИ(ЕЧИСЛО(ПОИСКПОЗ($F2&СТОЛБЕЦ(A:A);$C$2:$C$26;));СТОЛБЕЦ(A:A);"")

Нули не отображаются.
 
Ответить
СообщениеОткуда у авторов уверенность, что нужны именно такие функции?

Формула массива:
Code
=МАКС(ЕСЛИ($A$2:$A$26=$F2;ЕСЛИ($B$2:$B$26=СТОЛБЕЦ(A:A);СТОЛБЕЦ(A:A);"");""))

Нужно установить в параметрах листа галку "не отображать нули".

Проще: создаем доп. столбец (например, С):
Code
=A2&B2

С помощью допстолбца:
Code
=ЕСЛИ(ЕЧИСЛО(ПОИСКПОЗ($F2&СТОЛБЕЦ(A:A);$C$2:$C$26;));СТОЛБЕЦ(A:A);"")

Нули не отображаются.

Автор - vikttur
Дата добавления - 09.10.2012 в 16:48
Мур Дата: Вторник, 09.10.2012, 16:52 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 436
Репутация: 19 ±
Замечаний: 0% ±

_Boroda_, Спасибо за помощь, судя по скорости. для Вас это было несложно!
Вроде решение подходит, для проверки, лично мне нужно время. Пока посмотрю остальные предложенные варианты!
 
Ответить
Сообщение_Boroda_, Спасибо за помощь, судя по скорости. для Вас это было несложно!
Вроде решение подходит, для проверки, лично мне нужно время. Пока посмотрю остальные предложенные варианты!

Автор - Мур
Дата добавления - 09.10.2012 в 16:52
Мур Дата: Вторник, 09.10.2012, 16:53 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 436
Репутация: 19 ±
Замечаний: 0% ±

Serge_007, большое спасибо, попытаюсь разобраться, в полученной информации.
 
Ответить
СообщениеSerge_007, большое спасибо, попытаюсь разобраться, в полученной информации.

Автор - Мур
Дата добавления - 09.10.2012 в 16:53
Мур Дата: Вторник, 09.10.2012, 16:59 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 436
Репутация: 19 ±
Замечаний: 0% ±

vikttur, И Вам спасибо!
Только вот уверенности у меня совсем никакой и не было

Я вообще на представлял с какой стороны подступиться, а вариантов оказалось много,
сейчас отпишусь и начну пробовать.
Еще раз спасибо всем, кто откликнулся!
 
Ответить
Сообщениеvikttur, И Вам спасибо!
Только вот уверенности у меня совсем никакой и не было

Я вообще на представлял с какой стороны подступиться, а вариантов оказалось много,
сейчас отпишусь и начну пробовать.
Еще раз спасибо всем, кто откликнулся!

Автор - Мур
Дата добавления - 09.10.2012 в 16:59
_Boroda_ Дата: Вторник, 09.10.2012, 19:55 | Сообщение № 10
Группа: Админы
Ранг: Местный житель
Сообщений: 16715
Репутация: 6504 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Для второго варианта
Code
=СУММПРОИЗВ(($R2=$A$2:$A$26)*(СТОЛБЕЦ()-СТОЛБЕЦ($R2)=$B$2:$B$26)*$B$2:$B$26)

ну или
Code
=СУММПРОИЗВ(($R2=$A$2:$A$26)*(СТОЛБЕЦ(A2)=$B$2:$B$26)*$B$2:$B$26)

но так мне меньше нравится - нельзя вставлять столбец А
Объяснялка
У СУММПРОИЗВ в данном случае один аргумент - ($R3=$A$2:$A$26)*(СТОЛБЕЦ()-СТОЛБЕЦ($R3)=$B$2:$B$26)*$B$2:$B$26. Рассмотрим его по частям.
1) $R3=$A$2:$A$26. Есть массив номеров $A$2:$A$26, в том случае, когда элемент этого массива равен значению в столбце R, формула $R3=этот_элемент даст ИСТИНА, в противном - ЛОЖЬ. Итогом получаем массив из 25-ти ИСТИНА и ЛОЖЬ.
2) СТОЛБЕЦ()-СТОЛБЕЦ($R2)=$B$2:$B$26. 2а) СТОЛБЕЦ() дает нам номер столбца, в котором эта формула расположена, 2б) СТОЛБЕЦ ($R2) дает номер столбца R, 2в) их разница при растягивании формулы по столбцам дает 1 для столбца S, 2 для Т и т.д. Приравнивая 2в) массиву $B$2:$B$26 получаем массив из ИСТИНА и ЛОЖЬ в случае равенства и неравенства соответственно.
3) Перемножение 1) и 2) дает массив из единиц и нулей (арифметические действия с ИСТИНА и ЛОЖЬ преобразуют их в 1 и 0 соответственно). 1 только в том случае, когда в столбце А находится нужный нам номер задания и соответствующий ему день в столбце В равен номеру позиции ячейки с формулой в нашей таблице S2:AB27. Поскольку в таблице А:В совпадений нет, получаем массив, в котором всего одна единица, а остальные нули. Если нужного дня в столбце В нет, то массив из нулей.
4) Потом просто умножаем этот массив 3) на массив $B$2:$B$26. Получаем массив нулей, в котором есть только одно число (если есть).
5) Складываем все это СУММПРОИЗВом. Получаем или нужное нам число, или ноль.
6) Скрываем нули (у меня скрыто с помощью формата ячейки, можно УФ, можно прописать в формуле с помощью ЕСЛИ, ...).
К сообщению приложен файл: 0620113_2.xlsx (18.8 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеДля второго варианта
Code
=СУММПРОИЗВ(($R2=$A$2:$A$26)*(СТОЛБЕЦ()-СТОЛБЕЦ($R2)=$B$2:$B$26)*$B$2:$B$26)

ну или
Code
=СУММПРОИЗВ(($R2=$A$2:$A$26)*(СТОЛБЕЦ(A2)=$B$2:$B$26)*$B$2:$B$26)

но так мне меньше нравится - нельзя вставлять столбец А
Объяснялка
У СУММПРОИЗВ в данном случае один аргумент - ($R3=$A$2:$A$26)*(СТОЛБЕЦ()-СТОЛБЕЦ($R3)=$B$2:$B$26)*$B$2:$B$26. Рассмотрим его по частям.
1) $R3=$A$2:$A$26. Есть массив номеров $A$2:$A$26, в том случае, когда элемент этого массива равен значению в столбце R, формула $R3=этот_элемент даст ИСТИНА, в противном - ЛОЖЬ. Итогом получаем массив из 25-ти ИСТИНА и ЛОЖЬ.
2) СТОЛБЕЦ()-СТОЛБЕЦ($R2)=$B$2:$B$26. 2а) СТОЛБЕЦ() дает нам номер столбца, в котором эта формула расположена, 2б) СТОЛБЕЦ ($R2) дает номер столбца R, 2в) их разница при растягивании формулы по столбцам дает 1 для столбца S, 2 для Т и т.д. Приравнивая 2в) массиву $B$2:$B$26 получаем массив из ИСТИНА и ЛОЖЬ в случае равенства и неравенства соответственно.
3) Перемножение 1) и 2) дает массив из единиц и нулей (арифметические действия с ИСТИНА и ЛОЖЬ преобразуют их в 1 и 0 соответственно). 1 только в том случае, когда в столбце А находится нужный нам номер задания и соответствующий ему день в столбце В равен номеру позиции ячейки с формулой в нашей таблице S2:AB27. Поскольку в таблице А:В совпадений нет, получаем массив, в котором всего одна единица, а остальные нули. Если нужного дня в столбце В нет, то массив из нулей.
4) Потом просто умножаем этот массив 3) на массив $B$2:$B$26. Получаем массив нулей, в котором есть только одно число (если есть).
5) Складываем все это СУММПРОИЗВом. Получаем или нужное нам число, или ноль.
6) Скрываем нули (у меня скрыто с помощью формата ячейки, можно УФ, можно прописать в формуле с помощью ЕСЛИ, ...).

Автор - _Boroda_
Дата добавления - 09.10.2012 в 19:55
Мур Дата: Среда, 10.10.2012, 08:49 | Сообщение № 11
Группа: Проверенные
Ранг: Обитатель
Сообщений: 436
Репутация: 19 ±
Замечаний: 0% ±

_Boroda_, Ваша

=СУММПРОИЗВ(($R2=$A$2:$A$26)*(СТОЛБЕЦ()-СТОЛБЕЦ($R2)=$B$2:$B$26)*$B$2:$B$26)
Супер!!!
Не понимаю как это работает, но просто супер.
Вставил в рабочий файл, растянул ввниз и в сторону, все корректно.
Если объясните принцип, буду признателен.
 
Ответить
Сообщение_Boroda_, Ваша

=СУММПРОИЗВ(($R2=$A$2:$A$26)*(СТОЛБЕЦ()-СТОЛБЕЦ($R2)=$B$2:$B$26)*$B$2:$B$26)
Супер!!!
Не понимаю как это работает, но просто супер.
Вставил в рабочий файл, растянул ввниз и в сторону, все корректно.
Если объясните принцип, буду признателен.

Автор - Мур
Дата добавления - 10.10.2012 в 08:49
Мур Дата: Среда, 10.10.2012, 11:59 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 436
Репутация: 19 ±
Замечаний: 0% ±

_Boroda_, большое спасибо!
Посижу поизучаю. Надо по всем этапам объяснялки пройтись.
Нули я скрываю всегда с помощью "если".
Повысить репутацию не могу, пишет "........сможете через 5 часов"
 
Ответить
Сообщение_Boroda_, большое спасибо!
Посижу поизучаю. Надо по всем этапам объяснялки пройтись.
Нули я скрываю всегда с помощью "если".
Повысить репутацию не могу, пишет "........сможете через 5 часов"

Автор - Мур
Дата добавления - 10.10.2012 в 11:59
  • Страница 1 из 1
  • 1
Поиск:

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