
решение1
Если у вас установлена последняя версия Excel, вЕ2введитеформула массива:
=TEXTJOIN(",",TRUE,ROW(INDIRECT(C2 & ":" & D2)))
и скопируйте вниз:
Формулы массиванеобходимо ввести с помощью Ctrl+ Shift+, Enterа не просто Enterклавиши.
В противном случае введите следующую пользовательскую функцию в стандартном модуле:
Public Function CSList(n1 As Long, n2 As Long) As String
Dim i As Long
For i = n1 To n2
CSList = CSList & "," & i
Next i
CSList = Mid(CSList, 2)
End Function
Затем вЕ2входить:
=CSList(C2,D2)
и скопируйте вниз:
Пользовательские функции (UDF) очень просты в установке и использовании:
- ALT-F11 открывает окно VBE
- ALT-I ALT-M открывает новый модуль
- вставьте текст и закройте окно VBE
Если вы сохраните книгу, UDF будет сохранен вместе с ней. Если вы используете версию Excel позже 2003, вы должны сохранить файл как.xlsmскорее, чем.xlsx
Чтобы удалить UDF:
- откройте окно VBE, как указано выше
- очистить код
- закрыть окно VBE
Чтобы использовать UDF из Excel:
=CSList(A1,B1)
Чтобы узнать больше о макросах в целом, см.:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
и
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
а для получения подробной информации о UDF см.:
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
Для работы этого метода должны быть включены макросы!
решение2
Хотя указанное выше решение сработало для меня с использованием Ms Excel, позже я смог решить эту проблему в Google Sheets. Я добавляю этот ответ здесь для тех, у кого может не быть доступа к Ms Excel.
Шаги:
- Перейдите в меню «Инструменты» и нажмите «Редактор скриптов...».
В открывшемся файле кода вставьте указанный ниже код и сохраните.
function range2series(input) { try { var r = input.split("-"); var exist = r[1]; //get the start and stop value var start = r[0]; var last = r[1]; var current = start; var output = ""; while (current <= last) { output += current; output += ","; current++; } //remove the last comma. output = output.substring(0, output.length - 1); return output; } catch(err) { //if single value and not range send back the input. return input; } }
Теперь вы можете использовать функцию с Google Sheets. Просто нажмите на столбец и введите =range2series(CELL)
, например range2series(D4)
.
Больше подробностей,ссылаться.