|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
24.11.2010, 00:34 | #1 |
Пользователь
Регистрация: 31.10.2010
Сообщений: 10
|
Формула для выборки данных из динамического ряда столбцов
В наличии: ряд парных столбцов, содержащих "Критерий"+"Кол-во Критериев" (диапазон Е4:Р9) и формулы в диапазонах С4:С9, S14:V18, которые работают только при фиксированном количестве рядов парных столбцов.
Помогите, пожалуйста, модифицировать формулы для неопределенного количества этих самых парных рядов. Файл "Заявка" во вложении. |
24.11.2010, 02:38 | #2 |
Форумчанин
Регистрация: 23.03.2010
Сообщений: 101
|
В голубых ячейках немного поправил...
|
24.11.2010, 13:57 | #3 |
Пользователь
Регистрация: 31.10.2010
Сообщений: 10
|
Правила ввода и изменения формул массива:
Содержимое отдельной ячейки в формуле массива изменить нельзя, Формулу массива можно переместить или удалить только целиком, В формулу массива с несколькими строками нельзя вставить пустые строки или удалить строки из нее….. Прочтя однажды такое при знакомстве с формулами массива решил, что они для постоянно обновляемых данных - только головная боль (и близко знакомиться не стал). Однако ж можно, если нужно… Хочется спросить "а как???" Этого Спрашивать не буду - скажу только БОЛЬШОЕ спасибо. И если не затруднит ответить - спрошу другое: 1. Что такое есть "яяя"? Соответственно не могу определить границы диапазона $E$4:ИНДЕКС($Q:$Q;ПОИСКПОЗ("яяя";$B :$B) 2. Насколько необходимо задавать дипазоны $Q:$Q, $B:$B как весь столбец? Ограничение диапазона усложнит формулу или требуется обеспечить одинаковый размер диапазонов? |
24.11.2010, 23:41 | #4 |
Пользователь
Регистрация: 31.10.2010
Сообщений: 10
|
kim2 - ответь, пожалуйста. И почему формула не работает при вводе в "" латинских символов?
|
25.11.2010, 00:00 | #5 |
Участник клуба
Регистрация: 16.05.2010
Сообщений: 1,249
|
Я за него, можно?
Цитата, которую Вы показали, касается тех формул массива, которые введены не в одну ячейку, а в выделенный диапазон ячеек. 1. ПОИСКПОЗ("яяя";$B :$B;1) "яяя" - можете себе представить вариант, когда в ячейку будет введен текст, который по алфавиту окажется ниже этого сочетания букв ("яяяа", например)? Т.е. ПОИСКПОЗ честно ищет "яяя", не находит его и показывает позицию последней ячейки с текстом. В этом ему помогает указание типа сопоставления "1" (полнее - в справке). Для чисел ищется наибольшее возможное число - 9Е+307 Диапазон от Е4 до Qпоследняя_ячейка_с_текстом 2. Смотрите по своей задаче. Меньше диапазон - меньше пересчетов. Но не увлекайтесь, диапазон должен быть достаточен для добавления данных. |
25.11.2010, 00:04 | #6 |
Участник клуба
Регистрация: 16.05.2010
Сообщений: 1,249
|
|
25.11.2010, 00:46 | #7 |
Пользователь
Регистрация: 31.10.2010
Сообщений: 10
|
vikttur - спасибо большое за ответ. Мой домашний офис не имеет встроенной справки, но дело не в этом (посмотрим в инете и на работе). Просто ни в какой справке microsoft не увидишь подобных примеров манипуляций с функциями как на этом и подобных форумах. Интуитивно полагаю что ";0" ищет точное совпадение, а ";1" предполагает поиск ближайшего значения -почитаю, конечно. Только все равно не понятно как это работает - при вводе "яяя" в различные ячейки диапазона $B:$B (ПОИСКПОЗ при этом и в варианте ;0 и в варианте ;1) формулы работают как швейцарские часы.
Еще раз спасибо и удачи. |
25.11.2010, 00:48 | #8 |
Пользователь
Регистрация: 31.10.2010
Сообщений: 10
|
|
25.11.2010, 00:55 | #9 |
Форумчанин
Регистрация: 23.03.2010
Сообщений: 101
|
Пока писал ответ, уже тут понаотвечали но не пропадать же добру.
0. Формулы массива можно вводить как в диапазон (в описанном тобой случае), так и в одну ячейку (затем эту формулу можно растягивать на диапазон, перемещать, вставлять строки), все зависит от требуемого результата (то ли это будет массив данных, то ли одно значение). Формулы массива отличаются от обычных не только методом ввода, но и обработкой данных, производя иногда сложнейшие вычисления массивов данных в оперативной памяти, и потому требующие больших затрат системных ресурсов. Это конечно большой минус, но в решении некоторых задач без формул массива просто не обойтись. 1. По поводу "яяя" - справка по ПОИСКПОЗ() с опущенным или равным единице третьим параметром гласит: <<Функция ПОИСКПОЗ находит наибольшее значение, которое меньше или равно значению аргумента. Просматриваемый_массив должен быть упорядочен по возрастанию: ..., -2, -1, 0, 1, 2, ..., A-Z, ЛОЖЬ, ИСТИНА.>> Здесь мы ищем текст, состоящий из набора символов, имеющих наибольший возможный код из таблицы символов - 255 или "я". ПОИСКПОЗ() ничего не остается как только пробежаться по заданному диапазону, не найдя ничего равного по рангу искомому значению, остановиться на последней ячейке содержащей текст и вернуть ее позицию в диапазоне. Таким образом, динамически определяется размерность диапазона. 2. Одинаковая рамерность диапазонов в данном конкретном случае не нужна, главное чтобы размерность задаваемого диапазона превышала возможную размерность диапазона с данными (но на всякий случай лучше делать ее одинаковой). Нужно учитывать, что в формулах массива, в версии Эксель 2003 и ниже, целые столбцы указывать нельзя - в таком случае вместо $Q:$Q нужно задавать $Q$1:$Q$65536 или $Q$1:$Q$16384 для Эксель ниже 97. 3. Последнего вопроса не понял - поподробнее пож-та. Кстати, с фразой Виктора: <<2. Смотрите по своей задаче. Меньше диапазон - меньше пересчетов.>> не совсем согласен - все что находится ниже найденной границы диапазона с помощью ПОИСКПОЗ() в расчетах никак не учавствует. Последний раз редактировалось kim2; 25.11.2010 в 00:59. |
25.11.2010, 01:04 | #10 |
Форумчанин
Регистрация: 23.03.2010
Сообщений: 101
|
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Реализация выборки данных | S@fer | БД в Delphi | 5 | 03.08.2010 12:47 |
Прошу помочь с макросами для выборки определенных данных по нескольким критериям | rdt | Microsoft Office Excel | 6 | 30.07.2010 13:12 |
Формула для сравнения двух столбцов с выводом результат в третьем | ramiras777 | Microsoft Office Excel | 23 | 19.03.2010 20:52 |
Как получить количество столбцов из выборки | ssdm | Java Базы данных (JDBC, JPA, Hibernate) | 1 | 25.01.2010 19:21 |
Формула или макрос для работы с массивом данных | dondavis | Microsoft Office Excel | 3 | 21.09.2009 05:14 |