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

Вход

Регистрация

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

 

= Мир MS Excel/Вывод всех непустых ячеек из массива - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Вывод всех непустых ячеек из массива
Маришкин Дата: Пятница, 19.06.2015, 13:34 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день! Нужна помощь квалифицированных специалистов)
Есть двухмерный массив с данными (А2:J3), в массиве есть пустые ячейки. Нужно в отдельный столбец (К) прописать все значения из массива, даже если они повторяются, а во второй столбец (L) прописать данные из строки 1, которые находятся на пересечении со столбцом, в котором стоит непустая ячейка из массива.
Во вложении пример, у меня получилось все это сделать с одномерным массивом, все работает с данными из 2ой строки, но вот охватить несколько строк у меня никак не получается(
Заранее большое спасибо за помощь!
К сообщению приложен файл: 2548893.xlsx (8.7 Kb)
 
Ответить
СообщениеДобрый день! Нужна помощь квалифицированных специалистов)
Есть двухмерный массив с данными (А2:J3), в массиве есть пустые ячейки. Нужно в отдельный столбец (К) прописать все значения из массива, даже если они повторяются, а во второй столбец (L) прописать данные из строки 1, которые находятся на пересечении со столбцом, в котором стоит непустая ячейка из массива.
Во вложении пример, у меня получилось все это сделать с одномерным массивом, все работает с данными из 2ой строки, но вот охватить несколько строк у меня никак не получается(
Заранее большое спасибо за помощь!

Автор - Маришкин
Дата добавления - 19.06.2015 в 13:34
_Boroda_ Дата: Пятница, 19.06.2015, 13:54 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16714
Репутация: 6503 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Такой вариант (для любого количества строк, только диапазон поменять)
Код
=ЕСЛИОШИБКА(ИНДЕКС(A$1:J$3;НАИМЕНЬШИЙ(ЕСЛИ(A$2:J$3;СТРОКА(A$2:J$3));СТРОКА());ОСТАТ(НАИМЕНЬШИЙ(ЕСЛИ(A$2:J$3;СТРОКА(A$2:J$3)+СТОЛБЕЦ(A$2:J$3)%);СТРОКА());1)/1%);"")

Код
=ЕСЛИОШИБКА(ИНДЕКС(A$1:J$1;1;ОСТАТ(НАИМЕНЬШИЙ(ЕСЛИ(A$2:J$3;СТРОКА(A$2:J$3)+СТОЛБЕЦ(A$2:J$3)%);СТРОКА());1)/1%);"")
К сообщению приложен файл: 2548893_1.xlsx (9.2 Kb)


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

Код
=ЕСЛИОШИБКА(ИНДЕКС(A$1:J$1;1;ОСТАТ(НАИМЕНЬШИЙ(ЕСЛИ(A$2:J$3;СТРОКА(A$2:J$3)+СТОЛБЕЦ(A$2:J$3)%);СТРОКА());1)/1%);"")

Автор - _Boroda_
Дата добавления - 19.06.2015 в 13:54
Маришкин Дата: Пятница, 19.06.2015, 13:59 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
То что нужно! А я уже пол дня мучаюсь) Спасибо огромное!
 
Ответить
СообщениеТо что нужно! А я уже пол дня мучаюсь) Спасибо огромное!

Автор - Маришкин
Дата добавления - 19.06.2015 в 13:59
Маришкин Дата: Суббота, 20.06.2015, 08:09 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Я рано обрадовалась - прописала формулу в свой файл, а у меня он выводит либо "0" либо ошибки. Что я не так делаю? Мне нужно для всех непустых ячеек с листа Исходные данные перетянуть соответствующую информацию на лист Расчет, чтобы была возможность работать со сводной таблицей.
 
Ответить
СообщениеЯ рано обрадовалась - прописала формулу в свой файл, а у меня он выводит либо "0" либо ошибки. Что я не так делаю? Мне нужно для всех непустых ячеек с листа Исходные данные перетянуть соответствующую информацию на лист Расчет, чтобы была возможность работать со сводной таблицей.

Автор - Маришкин
Дата добавления - 20.06.2015 в 08:09
китин Дата: Суббота, 20.06.2015, 08:55 | Сообщение № 5
Группа: Модераторы
Ранг: Экселист
Сообщений: 7029
Репутация: 1078 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Маришкин, проверьте диапазоны в вашем реальном файле, или выложите сюда кусок РЕАЛЬНОГО файла.данные лучше заменить на вымышленные


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеМаришкин, проверьте диапазоны в вашем реальном файле, или выложите сюда кусок РЕАЛЬНОГО файла.данные лучше заменить на вымышленные

Автор - китин
Дата добавления - 20.06.2015 в 08:55
ikki Дата: Суббота, 20.06.2015, 09:19 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
возможно, не обратили внимание, что предложенные формулы - формулы массива.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki


Сообщение отредактировал ikki - Суббота, 20.06.2015, 09:19
 
Ответить
Сообщениевозможно, не обратили внимание, что предложенные формулы - формулы массива.

Автор - ikki
Дата добавления - 20.06.2015 в 09:19
Маришкин Дата: Суббота, 20.06.2015, 09:43 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Я думала прикрепила файл к сообщению, извиняюсь
К сообщению приложен файл: _15--.xlsx (46.7 Kb)
 
Ответить
СообщениеЯ думала прикрепила файл к сообщению, извиняюсь

Автор - Маришкин
Дата добавления - 20.06.2015 в 09:43
китин Дата: Суббота, 20.06.2015, 11:00 | Сообщение № 8
Группа: Модераторы
Ранг: Экселист
Сообщений: 7029
Репутация: 1078 ±
Замечаний: 0% ±

Excel 2007;2010;2016
файл не читается у меня :'(


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщениефайл не читается у меня :'(

Автор - китин
Дата добавления - 20.06.2015 в 11:00
Маришкин Дата: Суббота, 20.06.2015, 11:18 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
китин, а так?
К сообщению приложен файл: _15--.xls (94.5 Kb)
 
Ответить
Сообщениекитин, а так?

Автор - Маришкин
Дата добавления - 20.06.2015 в 11:18
китин Дата: Суббота, 20.06.2015, 12:19 | Сообщение № 10
Группа: Модераторы
Ранг: Экселист
Сообщений: 7029
Репутация: 1078 ±
Замечаний: 0% ±

Excel 2007;2010;2016
точно диапазоны.попробуйте так
Код
=ЕСЛИОШИБКА(ИНДЕКС('Исходные данные'!H$1:HO$110;НАИМЕНЬШИЙ(ЕСЛИ('Исходные данные'!H$3:HO$110;СТРОКА('Исходные данные'!H$3:HO$110));СТРОКА());ОСТАТ(НАИМЕНЬШИЙ(ЕСЛИ('Исходные данные'!H$3:HO$110;СТРОКА('Исходные данные'!H$3:HO$110)+(СТОЛБЕЦ('Исходные данные'!H$3:HO$110)-7)%);СТРОКА());1)/1%);"")
массивная,не забудьте.
К сообщению приложен файл: -15-.xls (86.5 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852


Сообщение отредактировал китин - Суббота, 20.06.2015, 12:23
 
Ответить
Сообщениеточно диапазоны.попробуйте так
Код
=ЕСЛИОШИБКА(ИНДЕКС('Исходные данные'!H$1:HO$110;НАИМЕНЬШИЙ(ЕСЛИ('Исходные данные'!H$3:HO$110;СТРОКА('Исходные данные'!H$3:HO$110));СТРОКА());ОСТАТ(НАИМЕНЬШИЙ(ЕСЛИ('Исходные данные'!H$3:HO$110;СТРОКА('Исходные данные'!H$3:HO$110)+(СТОЛБЕЦ('Исходные данные'!H$3:HO$110)-7)%);СТРОКА());1)/1%);"")
массивная,не забудьте.

Автор - китин
Дата добавления - 20.06.2015 в 12:19
китин Дата: Суббота, 20.06.2015, 12:25 | Сообщение № 11
Группа: Модераторы
Ранг: Экселист
Сообщений: 7029
Репутация: 1078 ±
Замечаний: 0% ±

Excel 2007;2010;2016
прошу пардону файл не тот был.перезалил :'(


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщениепрошу пардону файл не тот был.перезалил :'(

Автор - китин
Дата добавления - 20.06.2015 в 12:25
ShAM Дата: Суббота, 20.06.2015, 13:03 | Сообщение № 12
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
И еще раз пардон :)
Вместо "СТРОКА()" нужно или "СТРОКА()-1" или "СТРОКА(A1)".
Код
=ЕСЛИОШИБКА(ИНДЕКС('Исходные данные'!H$1:HO$110;НАИМЕНЬШИЙ(ЕСЛИ('Исходные данные'!H$3:HO$110;СТРОКА(H$3:HO$110));СТРОКА(A1));ОСТАТ(НАИМЕНЬШИЙ(ЕСЛИ('Исходные данные'!H$3:HO$110;СТРОКА(H$3:HO$110)+(СТОЛБЕЦ(H$3:HO$110)-7)%);СТРОКА(A1));1)/1%);"")
К сообщению приложен файл: -16-.xls (96.0 Kb)
 
Ответить
СообщениеИ еще раз пардон :)
Вместо "СТРОКА()" нужно или "СТРОКА()-1" или "СТРОКА(A1)".
Код
=ЕСЛИОШИБКА(ИНДЕКС('Исходные данные'!H$1:HO$110;НАИМЕНЬШИЙ(ЕСЛИ('Исходные данные'!H$3:HO$110;СТРОКА(H$3:HO$110));СТРОКА(A1));ОСТАТ(НАИМЕНЬШИЙ(ЕСЛИ('Исходные данные'!H$3:HO$110;СТРОКА(H$3:HO$110)+(СТОЛБЕЦ(H$3:HO$110)-7)%);СТРОКА(A1));1)/1%);"")

Автор - ShAM
Дата добавления - 20.06.2015 в 13:03
китин Дата: Суббота, 20.06.2015, 13:05 | Сообщение № 13
Группа: Модераторы
Ранг: Экселист
Сообщений: 7029
Репутация: 1078 ±
Замечаний: 0% ±

Excel 2007;2010;2016
ShAM, мдя Алишер ты прав.невнимательность меня погубит :'( yahoo
[p.s.]гы, :D Сашину формулу переделали


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852


Сообщение отредактировал китин - Суббота, 20.06.2015, 13:10
 
Ответить
СообщениеShAM, мдя Алишер ты прав.невнимательность меня погубит :'( yahoo
[p.s.]гы, :D Сашину формулу переделали

Автор - китин
Дата добавления - 20.06.2015 в 13:05
ShAM Дата: Суббота, 20.06.2015, 13:20 | Сообщение № 14
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
:D Я над ней час бился.
Александр, спасибо за "СТРОКА+СТОЛБЕЦ"
[p.s.]гы, напомнило "спасибо за сына и за дочь" yahoo [/p.s.]
 
Ответить
Сообщение:D Я над ней час бился.
Александр, спасибо за "СТРОКА+СТОЛБЕЦ"
[p.s.]гы, напомнило "спасибо за сына и за дочь" yahoo [/p.s.]

Автор - ShAM
Дата добавления - 20.06.2015 в 13:20
Маришкин Дата: Суббота, 20.06.2015, 13:30 | Сообщение № 15
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Ребята, вы настоящие гении! Спасибо! Осталось только разобраться во всем этом) по такой же схеме получится прописать данные из соответствующих строк? Чтобы автоматом прописывались Название, Артикул и т.д.?
 
Ответить
СообщениеРебята, вы настоящие гении! Спасибо! Осталось только разобраться во всем этом) по такой же схеме получится прописать данные из соответствующих строк? Чтобы автоматом прописывались Название, Артикул и т.д.?

Автор - Маришкин
Дата добавления - 20.06.2015 в 13:30
китин Дата: Суббота, 20.06.2015, 13:31 | Сообщение № 16
Группа: Модераторы
Ранг: Экселист
Сообщений: 7029
Репутация: 1078 ±
Замечаний: 0% ±

Excel 2007;2010;2016
да простит нас строгий модератор за оффтоп :p , но я примерно столько же, около часа, вникал в суть формулы и искал ошибку


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщениеда простит нас строгий модератор за оффтоп :p , но я примерно столько же, около часа, вникал в суть формулы и искал ошибку

Автор - китин
Дата добавления - 20.06.2015 в 13:31
Маришкин Дата: Суббота, 20.06.2015, 13:56 | Сообщение № 17
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
А как у вас получилось в функции СТРОКА проставить последовательные номера ячеек?
 
Ответить
СообщениеА как у вас получилось в функции СТРОКА проставить последовательные номера ячеек?

Автор - Маришкин
Дата добавления - 20.06.2015 в 13:56
ShAM Дата: Суббота, 20.06.2015, 15:19 | Сообщение № 18
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
Марина, посмотрите эту статью. Во многом сможете сами разобраться. Если не получится милости просим, поможем, чем сможем.
-----------------------
Блин, ссылку забыл вставить, вот она: http://www.excelworld.ru/publ....1-0-142


Сообщение отредактировал ShAM - Суббота, 20.06.2015, 15:29
 
Ответить
СообщениеМарина, посмотрите эту статью. Во многом сможете сами разобраться. Если не получится милости просим, поможем, чем сможем.
-----------------------
Блин, ссылку забыл вставить, вот она: http://www.excelworld.ru/publ....1-0-142

Автор - ShAM
Дата добавления - 20.06.2015 в 15:19
Маришкин Дата: Суббота, 20.06.2015, 15:27 | Сообщение № 19
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Я с удовольствием, но вот только какую статью?)
 
Ответить
СообщениеЯ с удовольствием, но вот только какую статью?)

Автор - Маришкин
Дата добавления - 20.06.2015 в 15:27
_Boroda_ Дата: Суббота, 20.06.2015, 15:30 | Сообщение № 20
Группа: Админы
Ранг: Местный житель
Сообщений: 16714
Репутация: 6503 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
китин, ShAM,
Сашину формулу переделали
шалуны :D
А почто тогда общей концепции не следуем?
Для чего кусок ИНДЕКС('Исходные данные'!H$1:HO$110 начинается с первой строки? Для того, чтобы можно было написать СТРОКА(H$3:HO$110), а не СТРОКА(H$3:HO$110)-2.
Тогда, для того, чтобы вместо СТОЛБЕЦ('Исходные данные'!H$3:HO$110)-7 можно было написать СТОЛБЕЦ('Исходные данные'!H$3:HO$110), нужно начать ИНДЕКС с первого столбца, вот так: ИНДЕКС('Исходные данные'!A$1:HO$110
Еще - суть конструкции СТРОКА(диапазон)+СТОЛБЕЦ(диапазон)% в том, чтобы добавить к номерам строк небольшой кусочек, МЕНЬШИЙ единицы (для того, чтобы НАИМЕНЬШИЙ сначала работал по номерам строк, а потом, уже внутри каждого номера строки, выбирал k-й наименьший по столбцу). И все бы хорошо, но диапазон значений по столбцам Н:НО - с 8 по 223 столбец, в куске (СТОЛБЕЦ(H$3:HO$110)-7) вы получаете диапазон 1:216 и процентом делите его на 100, получаете 0,01:2,16. Смотрим двумя предложениями выше и понимаем, что что-то не так: предположим, для строки 9 нам нужны столбцы CL и DF (номера 90 и 110); минус 7 - получаем 83 и 103, строка 9+83% - получаем 9,83 (все нормально), а вот строка 9+103% получаем уже 10,03 - а это уже строка 10, а не 9. А для столбца НО вообще получится 9+216%=11,16 - одиннадцатая строка.
Вывод - строки, большие 106-й, перепутают весь массив.
Что делать - вместо деления на 100 написать деление на число, заведомо большее количества столбцов в формуле. Например, на 10000 - вместо % написать %%
Код
=ЕСЛИОШИБКА(ИНДЕКС('Исходные данные'!A$1:HO$110;НАИМЕНЬШИЙ(ЕСЛИ('Исходные данные'!H$3:HO$110;СТРОКА(H$3:HO$110));СТРОКА(A1));ОСТАТ(НАИМЕНЬШИЙ(ЕСЛИ('Исходные данные'!H$3:HO$110;СТРОКА(H$3:HO$110)+СТОЛБЕЦ(H$3:HO$110)%%);СТРОКА(A1));1)/1%%);"")


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщениекитин, ShAM,
Сашину формулу переделали
шалуны :D
А почто тогда общей концепции не следуем?
Для чего кусок ИНДЕКС('Исходные данные'!H$1:HO$110 начинается с первой строки? Для того, чтобы можно было написать СТРОКА(H$3:HO$110), а не СТРОКА(H$3:HO$110)-2.
Тогда, для того, чтобы вместо СТОЛБЕЦ('Исходные данные'!H$3:HO$110)-7 можно было написать СТОЛБЕЦ('Исходные данные'!H$3:HO$110), нужно начать ИНДЕКС с первого столбца, вот так: ИНДЕКС('Исходные данные'!A$1:HO$110
Еще - суть конструкции СТРОКА(диапазон)+СТОЛБЕЦ(диапазон)% в том, чтобы добавить к номерам строк небольшой кусочек, МЕНЬШИЙ единицы (для того, чтобы НАИМЕНЬШИЙ сначала работал по номерам строк, а потом, уже внутри каждого номера строки, выбирал k-й наименьший по столбцу). И все бы хорошо, но диапазон значений по столбцам Н:НО - с 8 по 223 столбец, в куске (СТОЛБЕЦ(H$3:HO$110)-7) вы получаете диапазон 1:216 и процентом делите его на 100, получаете 0,01:2,16. Смотрим двумя предложениями выше и понимаем, что что-то не так: предположим, для строки 9 нам нужны столбцы CL и DF (номера 90 и 110); минус 7 - получаем 83 и 103, строка 9+83% - получаем 9,83 (все нормально), а вот строка 9+103% получаем уже 10,03 - а это уже строка 10, а не 9. А для столбца НО вообще получится 9+216%=11,16 - одиннадцатая строка.
Вывод - строки, большие 106-й, перепутают весь массив.
Что делать - вместо деления на 100 написать деление на число, заведомо большее количества столбцов в формуле. Например, на 10000 - вместо % написать %%
Код
=ЕСЛИОШИБКА(ИНДЕКС('Исходные данные'!A$1:HO$110;НАИМЕНЬШИЙ(ЕСЛИ('Исходные данные'!H$3:HO$110;СТРОКА(H$3:HO$110));СТРОКА(A1));ОСТАТ(НАИМЕНЬШИЙ(ЕСЛИ('Исходные данные'!H$3:HO$110;СТРОКА(H$3:HO$110)+СТОЛБЕЦ(H$3:HO$110)%%);СТРОКА(A1));1)/1%%);"")

Автор - _Boroda_
Дата добавления - 20.06.2015 в 15:30
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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