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

Вход

Регистрация

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

 

= Мир MS Excel/Как добавить вычисляемую колонку в массив? - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Как добавить вычисляемую колонку в массив?
Стасилло Дата: Вторник, 21.12.2021, 06:12 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

2021
Заполняю страницу массивом:
[vba]
Код
={FILTER('Таня'!A2:E; ДЛСТР('Таня'!A2:A));FILTER('Маня'!A2:E; ДЛСТР('Маня'!A2:A))}
[/vba]
Длина массива заранее неизвестна (зависит от того, сколько заполнено на тех страницах, из которых собираю).
При этом мне надо добавить расчётную колонку. Для формулы расчётной колонки берётся значение из массива. В конкретном случае у меня такое, хотя это не важно:
Код
=ВПР(B2;'Клиенты'!A$2:D$1200;4;ЛОЖЬ)

Как добавить расчётную колонку в массив?
 
Ответить
СообщениеЗаполняю страницу массивом:
[vba]
Код
={FILTER('Таня'!A2:E; ДЛСТР('Таня'!A2:A));FILTER('Маня'!A2:E; ДЛСТР('Маня'!A2:A))}
[/vba]
Длина массива заранее неизвестна (зависит от того, сколько заполнено на тех страницах, из которых собираю).
При этом мне надо добавить расчётную колонку. Для формулы расчётной колонки берётся значение из массива. В конкретном случае у меня такое, хотя это не важно:
Код
=ВПР(B2;'Клиенты'!A$2:D$1200;4;ЛОЖЬ)

Как добавить расчётную колонку в массив?

Автор - Стасилло
Дата добавления - 21.12.2021 в 06:12
aliramora191 Дата: Вторник, 21.12.2021, 09:01 | Сообщение № 2
Группа: Проверенные
Ранг: Новичок
Сообщений: 36
Репутация: 17 ±
Замечаний: 0% ±

2016
ничего не понятно, пришлите ссылку на пример таблицы.
И фигурные скобки - это для Excel, в ГТ - ARRAYFORMULA(...)


Анастасия
 
Ответить
Сообщениеничего не понятно, пришлите ссылку на пример таблицы.
И фигурные скобки - это для Excel, в ГТ - ARRAYFORMULA(...)

Автор - aliramora191
Дата добавления - 21.12.2021 в 09:01
Gustav Дата: Вторник, 21.12.2021, 09:47 | Сообщение № 3
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Цитата Стасилло, 21.12.2021 в 06:12, в сообщении № 1 ()
При этом мне надо добавить расчётную колонку

Просто приставляйте её справа от массива в первую свободную колонку. Как понимаю, это будет колонка F и, если данные массива начинаются со 2-й строки, то в ячейку F2 можно записать примерно такую самопротягивающуюся формулу:
[vba]
Код
=ArrayFormula(VLOOKUP(B2:INDEX(B:B;MAX(2;ROW(A2:A)*(A2:A<>"")));'Клиенты'!A$2:D$1200;4;FALSE))
[/vba]
Если надо добавить не одну, а несколько колонок (скажем, две), то использование фрагмента:
[vba]
Код
MAX(2;ROW(A2:A)*(A2:A<>""))
[/vba]
в каждой из них (а, возможно, и не один раз в одной формуле) выглядит громоздко и расточительно. В этом случае можно применить следующий подход с вычислением этого фрагмента только один раз (формула тоже для F2):
[vba]
Код
=ArrayFormula(ARRAY_CONSTRAIN({
VLOOKUP(B2:B;'Клиенты'!A$2:D$1200;4;FALSE)\
VLOOKUP(B2:B;'Клиенты'!A$2:D$1200;3;FALSE)
};MAX(2;ROW(A2:A)*(A2:A<>""))-1;2))
[/vba]
Цитата Стасилло, 21.12.2021 в 06:12, в сообщении № 1 ()
В конкретном случае у меня такое, хотя это не важно:
=ВПР(B2;'Клиенты'!A$2:D$1200;4;ЛОЖЬ)

К сожалению, важно, ибо далеко не каждую формулу можно сделать самопротягивающейся в принципе. Но в данном конкретном (и счастливом) случае функция ВПР является пригодной для подобной самопротяжки.


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Вторник, 21.12.2021, 09:57
 
Ответить
Сообщение
Цитата Стасилло, 21.12.2021 в 06:12, в сообщении № 1 ()
При этом мне надо добавить расчётную колонку

Просто приставляйте её справа от массива в первую свободную колонку. Как понимаю, это будет колонка F и, если данные массива начинаются со 2-й строки, то в ячейку F2 можно записать примерно такую самопротягивающуюся формулу:
[vba]
Код
=ArrayFormula(VLOOKUP(B2:INDEX(B:B;MAX(2;ROW(A2:A)*(A2:A<>"")));'Клиенты'!A$2:D$1200;4;FALSE))
[/vba]
Если надо добавить не одну, а несколько колонок (скажем, две), то использование фрагмента:
[vba]
Код
MAX(2;ROW(A2:A)*(A2:A<>""))
[/vba]
в каждой из них (а, возможно, и не один раз в одной формуле) выглядит громоздко и расточительно. В этом случае можно применить следующий подход с вычислением этого фрагмента только один раз (формула тоже для F2):
[vba]
Код
=ArrayFormula(ARRAY_CONSTRAIN({
VLOOKUP(B2:B;'Клиенты'!A$2:D$1200;4;FALSE)\
VLOOKUP(B2:B;'Клиенты'!A$2:D$1200;3;FALSE)
};MAX(2;ROW(A2:A)*(A2:A<>""))-1;2))
[/vba]
Цитата Стасилло, 21.12.2021 в 06:12, в сообщении № 1 ()
В конкретном случае у меня такое, хотя это не важно:
=ВПР(B2;'Клиенты'!A$2:D$1200;4;ЛОЖЬ)

К сожалению, важно, ибо далеко не каждую формулу можно сделать самопротягивающейся в принципе. Но в данном конкретном (и счастливом) случае функция ВПР является пригодной для подобной самопротяжки.

Автор - Gustav
Дата добавления - 21.12.2021 в 09:47
  • Страница 1 из 1
  • 1
Поиск:

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