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

Вход

Регистрация

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

 

= Мир MS Excel/Преобразование интервала чисел в перечисление этих чисел - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Преобразование интервала чисел в перечисление этих чисел (Формулы/Formulas)
Преобразование интервала чисел в перечисление этих чисел
antonpolyakov161 Дата: Пятница, 05.02.2021, 15:12 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Всем доброго времени суток, возникла срочная необходимость в преобразовании ячеек с интервалов годом (например первая ячейка содержит текст "18-21") в список годов в него входящих (вторая ячейка на основе первой выдает "2018, 2019, 2020, 2021")
Подскажите каким образом можно это реализовать, я так и не смог найти решение.
Заранее спасибо!
К сообщению приложен файл: 9115649.jpg (35.5 Kb)
 
Ответить
СообщениеВсем доброго времени суток, возникла срочная необходимость в преобразовании ячеек с интервалов годом (например первая ячейка содержит текст "18-21") в список годов в него входящих (вторая ячейка на основе первой выдает "2018, 2019, 2020, 2021")
Подскажите каким образом можно это реализовать, я так и не смог найти решение.
Заранее спасибо!

Автор - antonpolyakov161
Дата добавления - 05.02.2021 в 15:12
Serge_007 Дата: Пятница, 05.02.2021, 15:37 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Здравствуйте

Средствами Excel можно реализовать, но это будет довольно громоздкая формула и результат будет не в одной ячейке (можно вторым этапом конкатенировать)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеЗдравствуйте

Средствами Excel можно реализовать, но это будет довольно громоздкая формула и результат будет не в одной ячейке (можно вторым этапом конкатенировать)

Автор - Serge_007
Дата добавления - 05.02.2021 в 15:37
Pelena Дата: Пятница, 05.02.2021, 15:49 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 19174
Репутация: 4413 ±
Замечаний: ±

Excel 365 & Mac Excel
Вариант через UDF, макросы должны быть разрешены
К сообщению приложен файл: years.xlsm (14.2 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеВариант через UDF, макросы должны быть разрешены

Автор - Pelena
Дата добавления - 05.02.2021 в 15:49
antonpolyakov161 Дата: Пятница, 05.02.2021, 15:50 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Serge_007, а возможно ли как-то не сильно сложно (пусть и криво) это сделать если в этих интервалах будет не сильно много вариантов, допустим минимальный год в интервале 2010, максимальный 2021, может можно сделать 11 ячеек с годами и проверять есть ли в этих ячейках год из диапазона, и если есть добавлять его в ячейку с результатом(или каждый в новую, не важно)?
 
Ответить
СообщениеSerge_007, а возможно ли как-то не сильно сложно (пусть и криво) это сделать если в этих интервалах будет не сильно много вариантов, допустим минимальный год в интервале 2010, максимальный 2021, может можно сделать 11 ячеек с годами и проверять есть ли в этих ячейках год из диапазона, и если есть добавлять его в ячейку с результатом(или каждый в новую, не важно)?

Автор - antonpolyakov161
Дата добавления - 05.02.2021 в 15:50
antonpolyakov161 Дата: Пятница, 05.02.2021, 15:53 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Pelena, спасибо огромное за готовое решение!
 
Ответить
СообщениеPelena, спасибо огромное за готовое решение!

Автор - antonpolyakov161
Дата добавления - 05.02.2021 в 15:53
Serge_007 Дата: Пятница, 05.02.2021, 16:11 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата antonpolyakov161, 05.02.2021 в 15:50, в сообщении № 4 ()
можно сделать 11 ячеек с годами и проверять есть ли в этих ячейках год из диапазона, и если есть добавлять его в ячейку с результатом
Да, так проще будет:
Код
=ЕСЛИ(--ЛЕВБ($A1;2)+СТОЛБЕЦ()-4>--ПРАВБ($A1;2);"";"20"&ЛЕВБ($A1;2)+СТОЛБЕЦ()-4)
К сообщению приложен файл: 20210205_antonp.xls (33.0 Kb)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата antonpolyakov161, 05.02.2021 в 15:50, в сообщении № 4 ()
можно сделать 11 ячеек с годами и проверять есть ли в этих ячейках год из диапазона, и если есть добавлять его в ячейку с результатом
Да, так проще будет:
Код
=ЕСЛИ(--ЛЕВБ($A1;2)+СТОЛБЕЦ()-4>--ПРАВБ($A1;2);"";"20"&ЛЕВБ($A1;2)+СТОЛБЕЦ()-4)

Автор - Serge_007
Дата добавления - 05.02.2021 в 16:11
прохожий2019 Дата: Пятница, 05.02.2021, 16:45 | Сообщение № 7
Группа: Проверенные
Ранг: Старожил
Сообщений: 1241
Репутация: 317 ±
Замечаний: 0% ±

365 Beta Channel
PQ [vba]
Код
let
    f=(x)=>Expression.Evaluate("{"&Text.Replace(x,"-","..")&"}"),
    g=(x)=>Text.Combine(List.Transform(f(x),(x)=>Text.From(x+2000)),";"),
    from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    to = Table.AddColumn(from,"to",each g([from]))
in
    to
[/vba]
К сообщению приложен файл: 2665980.xlsm (21.5 Kb)
 
Ответить
СообщениеPQ [vba]
Код
let
    f=(x)=>Expression.Evaluate("{"&Text.Replace(x,"-","..")&"}"),
    g=(x)=>Text.Combine(List.Transform(f(x),(x)=>Text.From(x+2000)),";"),
    from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    to = Table.AddColumn(from,"to",each g([from]))
in
    to
[/vba]

Автор - прохожий2019
Дата добавления - 05.02.2021 в 16:45
bmv98rus Дата: Пятница, 05.02.2021, 22:06 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4106
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
для до 7 лет
Код
=MID(SUBSTITUTE(TEXT(SUMPRODUCT((ROW(INDEX(A:A;LEFT(A1;FIND("-";A1)-1)+1):INDEX(A:A;MID(A1;FIND("-";A1)+1;2)+1))-1)*100^
(MID(A1;FIND("-";A1)+1;2)+2-LEFT(A1;FIND("-";A1)-1)-ROW($A$1:INDEX(A:A;MID(A1;FIND("-";A1)+1;2)+1-LEFT(A1;FIND("-";A1)-1)))-1));
REPT("\;00";MID(A1;FIND("-";A1)+1;2)+1-LEFT(A1;FIND("-";A1)-1)));";";"; 20");3;99)

для новых версий где есть TEXTJOIN будет и проще и без ограничений.
Код
=TEXTJOIN("; ";;20&(ROW(INDEX(A:A;LEFT(A1;FIND("-";A1)-1)+1):INDEX(A:A;MID(A1;FIND("-";A1)+1;2)+1))-1))
К сообщению приложен файл: example2077.xlsm (17.5 Kb)


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Пятница, 05.02.2021, 22:16
 
Ответить
Сообщениедля до 7 лет
Код
=MID(SUBSTITUTE(TEXT(SUMPRODUCT((ROW(INDEX(A:A;LEFT(A1;FIND("-";A1)-1)+1):INDEX(A:A;MID(A1;FIND("-";A1)+1;2)+1))-1)*100^
(MID(A1;FIND("-";A1)+1;2)+2-LEFT(A1;FIND("-";A1)-1)-ROW($A$1:INDEX(A:A;MID(A1;FIND("-";A1)+1;2)+1-LEFT(A1;FIND("-";A1)-1)))-1));
REPT("\;00";MID(A1;FIND("-";A1)+1;2)+1-LEFT(A1;FIND("-";A1)-1)));";";"; 20");3;99)

для новых версий где есть TEXTJOIN будет и проще и без ограничений.
Код
=TEXTJOIN("; ";;20&(ROW(INDEX(A:A;LEFT(A1;FIND("-";A1)-1)+1):INDEX(A:A;MID(A1;FIND("-";A1)+1;2)+1))-1))

Автор - bmv98rus
Дата добавления - 05.02.2021 в 22:06
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Преобразование интервала чисел в перечисление этих чисел (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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