
Respuesta1
Si tiene una versión reciente de Excel, enE2introducir elfórmula matricial:
=TEXTJOIN(",",TRUE,ROW(INDIRECT(C2 & ":" & D2)))
y copie:
Fórmulas de matrizdebe ingresarse con Ctrl+ Shift+ Enteren lugar de solo la Enterclave.
De lo contrario, ingrese la siguiente función definida por el usuario en un módulo estándar:
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
Luego enE2ingresar:
=CSList(C2,D2)
y copie:
Las funciones definidas por el usuario (UDF) son muy fáciles de instalar y utilizar:
- ALT-F11 abre la ventana VBE
- ALT-I ALT-M abre un módulo nuevo
- pegue las cosas y cierre la ventana de VBE
Si guarda el libro de trabajo, la UDF se guardará con él. Si está utilizando una versión de Excel posterior a 2003, debe guardar el archivo como.xlsmen vez de.xlsx
Para eliminar la UDF:
- abrir la ventana VBE como arriba
- borrar el código
- cerrar la ventana VBE
Para utilizar la UDF desde Excel:
=CSList(A1,B1)
Para obtener más información sobre las macros en general, consulte:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
y
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
y para obtener detalles sobre las UDF, consulte:
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
¡Las macros deben estar habilitadas para que esto funcione!
Respuesta2
Aunque la solución anterior funcionó para mí usando Ms Excel, luego pude resolver esto en Google Sheets. Estoy agregando esta respuesta aquí para aquellos que no tengan acceso a Ms Excel.
Pasos:
- Vaya al menú 'Herramientas' y haga clic en 'Editor de scripts...'
En el archivo de código abierto, pegue el código que se proporciona a continuación y guárdelo.
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; } }
Ahora puedes utilizar la función con las hojas de Google. Simplemente haga clic en una columna y escriba =range2series(CELL)
, por ejemplo range2series(D4)
.
Para más detalles,referirse.