Страницы: 1
RSS
Разбить диапазон в ячейке на несколько значений
 
Здравствуйте!

Помогите, пожалуйтса. Есть таблица, в колонке "Год" указаны значения интервалом с дефисом в качестве разделителя, например 1996-2003. Можно ли сделать так, чтобы создалась рядом еще одна колонка, в которой интервал автоматически был расписан начиная с первого значения и заканчивая последним включая промежуточные с разделителями запятые или точка с запятой. Т.е. вот так 1996,1997,1998,1999,2000,2001,2002,2003.

Спасибо!
 
PavelR, можно, через макрос или УДФку.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Спасибо, я, к сожалению, в этом вообще не силен. Буду признателен, если что-то подробное смогу получить.
 
UDF
Код
Function Diapazon(cell As String) As String
Dim iTemp As String
Dim iBegin As Integer
Dim iEnd As Integer
  iBegin = Split(cell, "-")(0)
  iEnd = Split(cell, "-")(1)
   Do
     iTemp = iTemp & CStr(iBegin) & ";"
     iBegin = iBegin + 1
   Loop While iBegin <> iEnd
     Diapazon = iTemp & iEnd
End Function
 
Недавно The_Prist показывал. Но это был пример применения нормальный.
У меня - только для неленивых :)

=ТРАНСП(СТРОКА(ДВССЫЛ(ЛЕВСИМВ(K2;4)&":"&ПРАВСИМВ(K2;4))))
Протянуть формулу.
Теперь то, чего ленивые (и умные?) делать не будут:
каждую формулу выделить в строке формул, нажать F9. Формула примет вид массива констант:
={2015:2016:2017}

Дальше простая работа:
Выделить диапазон, инструмент НАЙТИ/ЗАМЕНИТЬ, убираем "=", "{", "}" .
Наслаждаемся, если до этого не выкинули компьютер через окно :)

Смех - смехом, но для десятка ячеек вполне приемлемый вариант.
 
Здравствуйте, похожая ситуация только нужно разделить не через ";" а что бы каждый год был в отдельной ячейке. Использовал UDF - но потом не могу разделить все года ибо читает ячейку как "Diapazon()", а не как год.
 
Цитата
LeonUa написал:
а что бы каждый год был в отдельной ячейке.
Попробуйте формулу с протяжкой вправо по строке
Код
=ЕСЛИ((ЛЕВБ($K$2;4)+СТОЛБЕЦ(A2)-1)<=--ПРАВБ($K$2;4);ЛЕВБ($K$2;4)+СТОЛБЕЦ(A2)-1;"")
 
Цитата
gling написал:
=ЕСЛИ((ЛЕВБ($K$2;4)+СТОЛБЕЦ(A2)-1)<=--ПРАВБ($K$2;4);ЛЕВБ($K$2;4)+СТОЛБЕЦ(A2)-1;"")
Спасибо, но я не знаю как применить данную формулу.

Сделал так. С помощью UDF кода сделал раздел.  Вышло вместо 2000-2004,  {2000;2001;2002;2003;2004} в одной ячейке. После чего сохранил файл и открыл его с помощью Notepad++ (любой редактор кода подойдет).
Все года там представленные в таком формате "2000;2001;2002;2003;2004", с помощью Ctrl+H, удалил скобки (").
В результате получаться так 2000;2001;2002;2003;2004. Сохранил и открыл потом в csv где знак ";" являться разделителям по ячейкам.

После чего получился нужный мне вариант таблицы. Уверен, есть и другие способы, но мне помог этот. Может кому пригодиться.
Изменено: LeonUa - 16.05.2019 13:46:56
 
Цитата
LeonUa написал:
Спасибо, но я не знаю как применить данную формулу.
Не думал, что это сложно. Вариант в примере, такой как я себе надумал. Если не так,то покажите в Вашем примере, как должно быть.
Страницы: 1
Наверх