Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проверка вводимых в ячейку значений (список...)

1.3K
04 декабря 2002 года
IKor
116 / / 04.12.2002
Excel 2000
Цель: создание разных списков возможных значений, вводимых в одну и туже ячейку, в зависимости от параметра (например, значения соседней ячейки).
Условие: минимальное использование VBA, идеально было бы обойтись одними стандартными функциями.
Примерное направление решения: создание отсортированных списков возможных значений на отдельном листе, использование функций ИНДЕКС, ПОИСКПОЗ и СЧЕТЕСЛИ (для предварительно отсортированных списков уже получилось, но некрасиво и наворочено).
Вопросы:
1. Как создать (и получится ли использовать) ссылку на несмежные диапазоны ячеек?
2. Можно ли "виртуально" (т.е. без создания на листе) отсортировать массив (вектор) и получить ссылку на действительный элемент ( а лучше на несмежные элементы) массива?
3. Есть ли в VBA функции, которые возвращает ссылку на несмежный диапазон?
Спасибо!
267
04 декабря 2002 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by IKor
Excel 2000
Цель: создание разных списков возможных значений, вводимых в одну и туже ячейку, в зависимости от параметра (например, значения соседней ячейки).
Условие: минимальное использование VBA, идеально было бы обойтись одними стандартными функциями.
Примерное направление решения: создание отсортированных списков возможных значений на отдельном листе, использование функций ИНДЕКС, ПОИСКПОЗ и СЧЕТЕСЛИ (для предварительно отсортированных списков уже получилось, но некрасиво и наворочено).
Вопросы:
1. Как создать (и получится ли использовать) ссылку на несмежные диапазоны ячеек?
2. Можно ли "виртуально" (т.е. без создания на листе) отсортировать массив (вектор) и получить ссылку на действительный элемент ( а лучше на несмежные элементы) массива?
3. Есть ли в VBA функции, которые возвращает ссылку на несмежный диапазон?
Спасибо!



Чего-то плохо я понимаю, что ты хочешь.
Кстати, тебе могут помочь функции НАИБОЛЬШИЙ и НАИМЕНЬШИЙ. Не забывай, что у ПОИСКПОЗ есть последний аргумент, который сильно меняет использование этой функции.

1.3K
04 декабря 2002 года
IKor
116 / / 04.12.2002
Спасибо, что откликнулся.
Попробую объяснить на примере, (см вложенный файл):
Есть список стран и городов, в этих странах.
Надо дать возможность выбрать город в зависимости от выбранной страны.
В приведенном примере (далеко не оптимальном) найдено частное решение для отсортированного по странам списка.
Было бы неплохо найти решение для неотсортированного списка.
Отсюда и вопросы по поводу виртуальной сортировки и/или функций, возвращающих ссылки на несмежный диапазон ячеек. К стати, какие стандартные функции возвращают ссылки на диапазоны. Я нашел только: ИНДЕКС-ПОИСКПОЗ, СМЕЩ, ДВССЫЛКА.

P.S. Возник еще один вопрос: можно ли, использую стандартные функции Excel, получить ссылку на уникальные значения вектора (список стран в моем случае), в котором допускаются повторения элементов и пустые ячейки?
1.3K
04 декабря 2002 года
IKor
116 / / 04.12.2002
За-zip-ованный .xls файл.
2.8K
05 декабря 2002 года
Fuzzy
6 / / 05.12.2002
Цитата:
Originally posted by IKor
За-zip-ованный .xls файл.



Можно извратиться с функциями листа.
Вот архив, посмотри

267
05 декабря 2002 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by Fuzzy


Можно извратиться с функциями листа.
Вот архив, посмотри



Да, Fuzzy молодец.

1.3K
05 декабря 2002 года
IKor
116 / / 04.12.2002
Цитата:
Originally posted by Cutty Sark


Да, Fuzzy молодец.



Спасибо, господа, идея хороша, да только такой способ годится для одной ячейки со списком допустимых значений..., а если их сотни?...

Лучше уж сортировать один список городов после добавления нового, чем создавать кучу несортированных дополнительных списков.

А нет ли у вас идей как получить:
список уникальных значений из полного списка, где встречаются повторы, или из списка где встречаются пустые ячейки (см. файл).

Мне кажется, что это можно сделать, только с использованием VBA, но я не знаю в каком виде надо возвращать данные из функции. Это будут уже не ссылки на ячейки, а векрор типа Variant, но я не уверен.

Если кто-нибудь откликнится буду чрезвычайно признателен.

267
05 декабря 2002 года
Cutty Sark
1.2K / / 17.10.2002
Вот так ещё можно извратиться.
1.3K
05 декабря 2002 года
IKor
116 / / 04.12.2002
Цитата:
Originally posted by Cutty Sark
Вот так ещё можно извратиться.



Спасибо за идеи. Думаю поможет. :D

Если возникнут мысли про VBA-шные функции, то получится сделать красивее - в одно касание

2.8K
05 декабря 2002 года
Fuzzy
6 / / 05.12.2002
Цитата:
Originally posted by IKor


Спасибо, господа, идея хороша, да только такой способ годится для одной ячейки со списком допустимых значений..., а если их сотни?...

Лучше уж сортировать один список городов после добавления нового, чем создавать кучу несортированных дополнительных списков.

А нет ли у вас идей как получить:
список уникальных значений из полного списка, где встречаются повторы, или из списка где встречаются пустые ячейки (см. файл).

Мне кажется, что это можно сделать, только с использованием VBA, но я не знаю в каком виде надо возвращать данные из функции. Это будут уже не ссылки на ячейки, а векрор типа Variant, но я не уверен.

Если кто-нибудь откликнится буду чрезвычайно признателен.





Ну, способ годится не только для одной ячейки, легко переделать на любое количество ячеек, но для каждой из них нужно собственный список создавать - это точно :)

Насчёт списка значений - а что нужно с ним потом делать? Можно возвращать в массив, а можно, например, возвращать область, или даже список адресов.

267
05 декабря 2002 года
Cutty Sark
1.2K / / 17.10.2002
Наверное, в данном случае правильнее VBA подключить. Обойтись без Бейсика - это всегда прикольно, но только не ценой огромных нагромождений.
1.3K
05 декабря 2002 года
IKor
116 / / 04.12.2002
Цитата:
Originally posted by Fuzzy




Ну, способ годится не только для одной ячейки, легко переделать на любое количество ячеек, но для каждой из них нужно собственный список создавать - это точно :)

Насчёт списка значений - а что нужно с ним потом делать? Можно возвращать в массив, а можно, например, возвращать область, или даже список адресов.



На счет дальнейшего применения:

Во-первых, по аналогии с городами - получить очейку с ограничениями по списку стран; (:) но без этого можно обойтись - нечего выпендриваться, создам отдельный список стран и заставлю выбирать страны только из него; а города все-таки буду сортировать по станам)
Во-вторых, см. вложенный файл

Вот если бы написать такую функцию, чтобы обойтись без промежуточных массивов...

2.8K
06 декабря 2002 года
Fuzzy
6 / / 05.12.2002
Цитата:
Originally posted by IKor


На счет дальнейшего применения:

Во-первых, по аналогии с городами - получить очейку с ограничениями по списку стран; (:) но без этого можно обойтись - нечего выпендриваться, создам отдельный список стран и заставлю выбирать страны только из него; а города все-таки буду сортировать по станам)
Во-вторых, см. вложенный файл

Вот если бы написать такую функцию, чтобы обойтись без промежуточных массивов...



Нет проблем, функция может возвращать данные в массив. Код неоптимальный, разумеется, но смысл ясен.

1.3K
06 декабря 2002 года
IKor
116 / / 04.12.2002
Цитата:
Originally posted by Fuzzy


Нет проблем, функция может возвращать данные в массив. Код неоптимальный, разумеется, но смысл ясен.


Спасибо за науку, будем опитмизировать. Когда получится, наверное, выложу...

1.3K
06 декабря 2002 года
IKor
116 / / 04.12.2002
Цитата:
Originally posted by Fuzzy


Нет проблем, функция может возвращать данные в массив. Код неоптимальный, разумеется, но смысл ясен.



Да, кстати, эта функцция неработает в ограничениях на значения ячейки...
Туда надо возвращать не массив Variant, а что-то другое.

2.8K
06 декабря 2002 года
Fuzzy
6 / / 05.12.2002
Цитата:
Originally posted by IKor


Да, кстати, эта функцция неработает в ограничениях на значения ячейки...
Туда надо возвращать не массив Variant, а что-то другое.



IMHO, в ограничениях на значения ячейки не работает вообще ничего, кроме ссылки на непрерывный диапазон. Больше ничего не хочет жрать.

1.3K
06 декабря 2002 года
IKor
116 / / 04.12.2002
Цитата:
Originally posted by Fuzzy


IMHO, в ограничениях на значения ячейки не работает вообще ничего, кроме ссылки на непрерывный диапазон. Больше ничего не хочет жрать.


Очень странно, потаму что туда можно вписать текстовые константы через запятую (по-моему), а вот на функцию, возвращающую тоже самое, Excel ругается.

2.8K
07 декабря 2002 года
Fuzzy
6 / / 05.12.2002
Цитата:
Originally posted by IKor

Очень странно, потаму что туда можно вписать текстовые константы через запятую (по-моему), а вот на функцию, возвращающую тоже самое, Excel ругается.



А по-моему нельзя текстовые константы через запятую и вообще никак. Эксел при этом даже ругается, что, мол, константы массивов указывать нельзя.

1.3K
09 декабря 2002 года
IKor
116 / / 04.12.2002
Цитата:
Originally posted by Fuzzy


А по-моему нельзя текстовые константы через запятую и вообще никак. Эксел при этом даже ругается, что, мол, константы массивов указывать нельзя.


Я имею в виду, что ручками в список можно записать либо ссылку на непрерывный диапазон ячеек (если он находится на другом листе, то он должен быть поименован), либо текстовые константы, записанные через запятую (возможно, перед ними не нужно ставить '=), однако, у меня не получилась своя функция, возвращающая значения, которые можно подставить в список ограничений (массив Variant). Хотя, если взглянуть на свойства ячейки со списком ограничений-констант, то они имеют тип String.

2.8K
09 декабря 2002 года
Fuzzy
6 / / 05.12.2002
Цитата:
Originally posted by IKor

Я имею в виду, что ручками в список можно записать либо ссылку на непрерывный диапазон ячеек (если он находится на другом листе, то он должен быть поименован), либо текстовые константы, записанные через запятую (возможно, перед ними не нужно ставить '=), однако, у меня не получилась своя функция, возвращающая значения, которые можно подставить в список ограничений (массив Variant). Хотя, если взглянуть на свойства ячейки со списком ограничений-констант, то они имеют тип String.



Послушайте, поделитесь способом записать в список текстовые константы, записанные через запятую. Мне казалось, что это невозможно, можно указать только ссылку на непрерывный диапазон!

1.3K
09 декабря 2002 года
IKor
116 / / 04.12.2002
Цитата:
Originally posted by Fuzzy


Послушайте, поделитесь способом записать в список текстовые константы, записанные через запятую. Мне казалось, что это невозможно, можно указать только ссылку на непрерывный диапазон!


Sorry, через точку с запятой - но это, конечно, зависит от настроек "Языки и Стандарты"

1.3K
10 декабря 2002 года
IKor
116 / / 04.12.2002
Цитата:
Originally posted by Fuzzy


Можно извратиться с функциями листа.
Вот архив, посмотри



Возникла непредвиденная сложность.
Речь идет не о VBA-шных нункциях, а об извращениях со встроенными функциями.
Представим себе ссылку на непрерывный диапазон из n ячеек. Для любого n>1 диапазон воспринимается функцией массива как вектор, имеющий n значений и элементы функции массива для всех m>n возвращают #НД. Однако, при n=1 диапазон воспринимается как одна ячейка, и ее значение заносится во все элементы функции массива. Включается какой-то "метод заполнения".

Кто-нибудь знает как его отключить? (но только для функций массива!)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог