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

Вход

Регистрация

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

 

= Мир MS Excel/Добавить к диапазону колонку с фиксированным значением - Мир MS Excel

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

2021
Соединяю строки с двух страниц формулой:
={'Настя'!A2:E100;'Мария'!A2:E100}
У меня на странице получается 100 строк с листа "Настя", потом 100 строк с листа "Мария".
Как красиво добавить колонку, в которой видел лист, с которого взяты строки?

Конечно, можно добавить колонку "Имя листа" на лист "Настя" и там растянуть одинаковое значение, но уж больно неудобно.
 
Ответить
СообщениеСоединяю строки с двух страниц формулой:
={'Настя'!A2:E100;'Мария'!A2:E100}
У меня на странице получается 100 строк с листа "Настя", потом 100 строк с листа "Мария".
Как красиво добавить колонку, в которой видел лист, с которого взяты строки?

Конечно, можно добавить колонку "Имя листа" на лист "Настя" и там растянуть одинаковое значение, но уж больно неудобно.

Автор - Стасилло
Дата добавления - 25.05.2023 в 10:21
Gustav Дата: Четверг, 25.05.2023, 17:47 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2759
Репутация: 1140 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Как-то так можно:
[vba]
Код
=LET(
range1;  'Настя'!A2:E100;
range2;  'Мария'!A2:E100;

sheet1;  REGEXEXTRACT(CELL("address"; range1); "([^']*)'*!");
sheet2;  REGEXEXTRACT(CELL("address"; range2); "([^']*)'*!");
result1; BYROW(range1; LAMBDA(row; {sheet1 \ row}));
result2; BYROW(range2; LAMBDA(row; {sheet2 \ row}));

{result1; result2}
)
[/vba]

Либо, не заморачиваясь на вытаскивание имени листа из ссылки, упрощаемся до:
[vba]
Код
=LET(
range1;  'Настя'!A2:E100;
range2;  'Мария'!A2:E100;

result1; BYROW(range1; LAMBDA(row; {"Настя" \ row}));
result2; BYROW(range2; LAMBDA(row; {"Мария" \ row}));

{result1; result2}
)
[/vba]

Либо, если еще не выработана привычка к LET, то совсем "по-древнему":
[vba]
Код
={BYROW('Настя'!A2:E100; LAMBDA(row; {"Настя" \ row}))
; BYROW('Мария'!A2:E100; LAMBDA(row; {"Мария" \ row}))}
[/vba]


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

Сообщение отредактировал Gustav - Пятница, 26.05.2023, 10:19
 
Ответить
СообщениеКак-то так можно:
[vba]
Код
=LET(
range1;  'Настя'!A2:E100;
range2;  'Мария'!A2:E100;

sheet1;  REGEXEXTRACT(CELL("address"; range1); "([^']*)'*!");
sheet2;  REGEXEXTRACT(CELL("address"; range2); "([^']*)'*!");
result1; BYROW(range1; LAMBDA(row; {sheet1 \ row}));
result2; BYROW(range2; LAMBDA(row; {sheet2 \ row}));

{result1; result2}
)
[/vba]

Либо, не заморачиваясь на вытаскивание имени листа из ссылки, упрощаемся до:
[vba]
Код
=LET(
range1;  'Настя'!A2:E100;
range2;  'Мария'!A2:E100;

result1; BYROW(range1; LAMBDA(row; {"Настя" \ row}));
result2; BYROW(range2; LAMBDA(row; {"Мария" \ row}));

{result1; result2}
)
[/vba]

Либо, если еще не выработана привычка к LET, то совсем "по-древнему":
[vba]
Код
={BYROW('Настя'!A2:E100; LAMBDA(row; {"Настя" \ row}))
; BYROW('Мария'!A2:E100; LAMBDA(row; {"Мария" \ row}))}
[/vba]

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

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