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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2010, 16:48   #1
PhilAT
Пользователь
 
Аватар для PhilAT
 
Регистрация: 22.04.2010
Сообщений: 15
По умолчанию Выборка нескольких данных по значению поля

Необходимо выбрать несколько значений (несколько строк) по критерию поля и вставить в другое место. Я тут прилагаю пример, чтобы можно было понять о чем я.
Так вот, введя в ячейку F2 значение "14" хочу получить рядом данные из строк области A2:D16, содержащих в поле "Код" значение "14". Строк при этом получится четыре.
А введя, например, в ячейку F2 значение "19" хочу получить рядом данные из строк, содержащих в поле "Код" значение "19". При этом, строк будет всего две.
Важно: количество строк всегда разное, поле "Код" неотсортировано.

Возможно ли подобное без использования VBA? То есть, можно ли прописать формулу в одной ячейке (G2, если говорить о примере), чтобы в нескольких ячейках ниже вставились все данные, соответствующие критерию?

Либо Excel не умеет этого по некоторым причинам, либо об этом все знают, кроме меня.

Спасибо, за внимание! Заранее благодарен за помощь!
Вложения
Тип файла: zip CopyArea01.zip (7.3 Кб, 35 просмотров)
PhilAT вне форума Ответить с цитированием
Старый 20.05.2010, 17:09   #2
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Вот как-то так можно.

А вот насчет "можно ли прописать формулу в одной ячейке, чтобы в нескольких ячейках ниже вставились все данные" - нереально. Формула не может возвращать результат в другую ячейку, равно как и изменять значения других ячеек.
Вложения
Тип файла: rar CopyArea01_2.rar (9.5 Кб, 54 просмотров)
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru

Последний раз редактировалось The_Prist; 20.05.2010 в 17:12.
The_Prist вне форума Ответить с цитированием
Старый 20.05.2010, 18:09   #3
mchip
Форумчанин
 
Регистрация: 24.06.2008
Сообщений: 516
По умолчанию

Вообще то возможность есть.
Правда не совсем такая как описана, но...
Посмотри прикрепленный файл. Там есть несколько слабых мест но я пользуюсь таким способом.
Вложения
Тип файла: zip CopyArea01.zip (9.9 Кб, 42 просмотров)
Можно сделать все! Было бы время, да деньги...
mchip вне форума Ответить с цитированием
Старый 20.05.2010, 18:12   #4
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Цитата:
Сообщение от mchip Посмотреть сообщение
Вообще то возможность есть.
Формул у Вас более одной, впрочем, как и у меня. Но автор темы указал:
Цитата:
Сообщение от PhilAT
Важно: количество строк всегда разное, поле "Код" неотсортировано
Я думаю, расположение данных очень важно для автора...
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 20.05.2010, 18:15   #5
PhilAT
Пользователь
 
Аватар для PhilAT
 
Регистрация: 22.04.2010
Сообщений: 15
По умолчанию

Ура!
Кажется нашел самостоятельно, здесь:
http://www.youtube.com/watch?v=SAZ5an3lUeU

Из файла примера выковырял как это выглядит. Препарирую - и все будет Ok.
Только нифига не рад я такой полной русификации. Английский вариант

=IF(ROWS(F$22:F22)<=$H$19;INDEX(A$2 2:A$698;SMALL(IF($C$22:$C$698=$G$17 ;IF($D$22:$D$698=$G$18;ROW($C$22:$C $698)-ROW($C$22)+1));ROWS(F$22:F22)));"")

в этом плане понятнее, чем

=ЕСЛИ(ЧСТРОК(F$22:F22)<=$H$19;ИНДЕК С(A$22:A$698;НАИМЕНЬШИЙ(ЕСЛИ($C$22: $C$698=$G$17;ЕСЛИ($D$22:$D$698=$G$1 8;СТРОКА($C$22:$C$698)-СТРОКА($C$22)+1));ЧСТРОК(F$22:F22)) );"")


Оп-па! А тут уже есть ответы!
"Сейчас мы их проверим, сейчас мы их сравним."

Последний раз редактировалось PhilAT; 20.05.2010 в 18:18. Причина: Не обновил окно перед отправкой...
PhilAT вне форума Ответить с цитированием
Старый 20.05.2010, 18:17   #6
mchip
Форумчанин
 
Регистрация: 24.06.2008
Сообщений: 516
По умолчанию

Я же сказал:
Цитата:
Там есть несколько слабых мест но я пользуюсь таким способом.
Можно сделать все! Было бы время, да деньги...
mchip вне форума Ответить с цитированием
Старый 20.05.2010, 18:34   #7
PhilAT
Пользователь
 
Аватар для PhilAT
 
Регистрация: 22.04.2010
Сообщений: 15
По умолчанию

2 mchip

Да, то, что поле "Код" неотсортировано - действительно важно. Там сортировка по дате. К тому же, это все располагается на разных Листах. Но, все равно, спасибо!
Я бы сказал еще спасибо The_Prist, но у него написано, что это много, а на мое СПАСИБО сдачи не хватит.
PhilAT вне форума Ответить с цитированием
Старый 21.05.2010, 10:07   #8
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Для таких задач мне больше нравится применение доп. столбца - существенно разгружаются формулы.
Вложения
Тип файла: rar 1.rar (7.3 Кб, 33 просмотров)
vikttur вне форума Ответить с цитированием
Старый 21.05.2010, 11:13   #9
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

на уровне идеи без формул и ВБА

Данные - Раширенный фильтр - Скопировать результат в другое место

Для удобства вынесите кнопку "расширенный фильтр" на панель инструментов Эксель (Сервис - Настройка - Команды - Данные - Расширенный фильтр)

Недостатки:
1. Форма вывода результата не совпадает с требуемой (присутствует столбец "Код")
2. Необходимо вручную удалять данные перед нажатием кнопки "расширенный фильтр"
3. При нажатии "расширенный фильтр" необходимо выбрать опцию "Скопировать результат в другое место"
Вложения
Тип файла: zip CopyArea01option.zip (6.7 Кб, 31 просмотров)
EugeneS вне форума Ответить с цитированием
Старый 21.05.2010, 11:47   #10
kzld
Форумчанин
 
Регистрация: 24.01.2009
Сообщений: 625
По умолчанию

Цитата:
Сообщение от The_Prist Посмотреть сообщение
Вот как-то так можно.
Мне понравилось.
Хочу углубить вопрос
А если надо взять данные с нескольких листов?
Возможно ли такое
Листы имеют название, но среди нужных листов имеются сводные, с которых брать данные не надо
kzld вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отобразить данные по значению поля (Делфи) grom333 Помощь студентам 7 14.04.2010 10:04
Выборка чисел по значению другого столбца faker Microsoft Office Excel 4 10.11.2009 14:40
Фильтрование БД по значению поля ИВАНьКа Общие вопросы C/C++ 7 23.08.2009 10:09
Выявление одинаковости значений поля в одной талице по значению поля в другой nikmay SQL, базы данных 4 13.08.2009 12:51
Выборка строк из таблицы по значению TDBLookupComboBox Gringo БД в Delphi 4 28.10.2008 05:45