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

Вход

Регистрация

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

 

= Мир MS Excel/Изменение размеров просматриваемого массива - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Изменение размеров просматриваемого массива
JustMe Дата: Четверг, 28.11.2013, 11:03 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Доброго дня, добрые люди. Разрабатываю таблицу для расчёта отпусков иностранных граждан. Отпуска она считает замечательно. Однако нужно сформировать сводную таблицу.
Сводную делал по стандартной схеме Индекс(массив2;Поискпоз($имя1;$масив$1)). Есть вариант со статичными массивами, он работает прекрасно. Но там, естественно, ограничено количество сотрудников, которое может быть вписано в таблицу.
Поэтому стал попытался сделать "динамический" массив с АДРЕС(); ДВССЫЛ() а теперь дошёл ещё и до СМЕЩ().
Как я понял адрес() возвращает текст. А ДВССЫЛ() сразу берёт значение из ссылки, так что возвращает не саму ссылку, а значение в ссылаемой ячейки. И вот теперь не могу понять почему не работает СМЕЩ(), если она должна возвращать именно ссылку без её мгновенного вычисления.
Заранее благодарен.

ЗЫ. Сводная располагается на втором листе файла и ссылается на первый. Относительная позиция у имени и у искомого значения будет одна и та же в массивах - смещаются сами массивы. Во всяком случае я представляю себе это именно так.
К сообщению приложен файл: prob.xlsx (89.1 Kb)


Сообщение отредактировал JustMe - Четверг, 28.11.2013, 11:14
 
Ответить
СообщениеДоброго дня, добрые люди. Разрабатываю таблицу для расчёта отпусков иностранных граждан. Отпуска она считает замечательно. Однако нужно сформировать сводную таблицу.
Сводную делал по стандартной схеме Индекс(массив2;Поискпоз($имя1;$масив$1)). Есть вариант со статичными массивами, он работает прекрасно. Но там, естественно, ограничено количество сотрудников, которое может быть вписано в таблицу.
Поэтому стал попытался сделать "динамический" массив с АДРЕС(); ДВССЫЛ() а теперь дошёл ещё и до СМЕЩ().
Как я понял адрес() возвращает текст. А ДВССЫЛ() сразу берёт значение из ссылки, так что возвращает не саму ссылку, а значение в ссылаемой ячейки. И вот теперь не могу понять почему не работает СМЕЩ(), если она должна возвращать именно ссылку без её мгновенного вычисления.
Заранее благодарен.

ЗЫ. Сводная располагается на втором листе файла и ссылается на первый. Относительная позиция у имени и у искомого значения будет одна и та же в массивах - смещаются сами массивы. Во всяком случае я представляю себе это именно так.

Автор - JustMe
Дата добавления - 28.11.2013 в 11:03
mechanix85 Дата: Четверг, 28.11.2013, 11:13 | Сообщение № 2
Группа: Друзья
Ранг: Форумчанин
Сообщений: 240
Репутация: 34 ±
Замечаний: 0% ±

красиво написано... на этом все, без примера
 
Ответить
Сообщениекрасиво написано... на этом все, без примера

Автор - mechanix85
Дата добавления - 28.11.2013 в 11:13
JustMe Дата: Четверг, 28.11.2013, 11:15 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Исправил. В первый раз почему то не прикрепилось.... Только там АДъ и Израиль. Хотя для понимания у всех формул должен быть примерно такой вид.
Код
=ИНДЕКС(СМЕЩ(Сотрудники!$A$1;4+C$3;'Сводная таблица'!C$7):СМЕЩ(Сотрудники!$A$1;4+$D$5+C$3;'Сводная таблица'!C$7);ПОИСКПОЗ($B7;СМЕЩ(Сотрудники!$A$1;4;'Сводная таблица'!$B$7):СМЕЩ(Сотрудники!$A$1;4+$D$5;'Сводная таблица'!$B$7);0))


Где $А$1 - тупо точка отсчёта.
C$7 - в седьмой строке указывается смещение по столбцам.
C$3 - в третьей строке указывается дополнительное смещение по строкам.
$D$5 - указано количество строк на предельное количество сотрудников. В процессе лепки из говна конфетки значение там не до конца верное, но это не должно повлиять на результат.
Само это смещение задаёт узкий длинный массив, в котором должны искать позицию, полученную в ПОИСКПОЗ()
В самой поискпоз() просматривается колонка имён из первого листа.


Сообщение отредактировал JustMe - Четверг, 28.11.2013, 11:37
 
Ответить
СообщениеИсправил. В первый раз почему то не прикрепилось.... Только там АДъ и Израиль. Хотя для понимания у всех формул должен быть примерно такой вид.
Код
=ИНДЕКС(СМЕЩ(Сотрудники!$A$1;4+C$3;'Сводная таблица'!C$7):СМЕЩ(Сотрудники!$A$1;4+$D$5+C$3;'Сводная таблица'!C$7);ПОИСКПОЗ($B7;СМЕЩ(Сотрудники!$A$1;4;'Сводная таблица'!$B$7):СМЕЩ(Сотрудники!$A$1;4+$D$5;'Сводная таблица'!$B$7);0))


Где $А$1 - тупо точка отсчёта.
C$7 - в седьмой строке указывается смещение по столбцам.
C$3 - в третьей строке указывается дополнительное смещение по строкам.
$D$5 - указано количество строк на предельное количество сотрудников. В процессе лепки из говна конфетки значение там не до конца верное, но это не должно повлиять на результат.
Само это смещение задаёт узкий длинный массив, в котором должны искать позицию, полученную в ПОИСКПОЗ()
В самой поискпоз() просматривается колонка имён из первого листа.

Автор - JustMe
Дата добавления - 28.11.2013 в 11:15
JustMe Дата: Четверг, 28.11.2013, 12:04 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Снимаю вопрос. Допёрло. Заработало.
 
Ответить
СообщениеСнимаю вопрос. Допёрло. Заработало.

Автор - JustMe
Дата добавления - 28.11.2013 в 12:04
  • Страница 1 из 1
  • 1
Поиск:

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