
Derzeit habe ich die folgende Tabellenstruktur:
Ich habe versucht, zwei Spalten mit der Serie auszuwählen und sie zum automatischen Ausfüllen nach unten zu ziehen, aber das schien nicht zu funktionieren. Ich brauche so etwas wie unten. Gibt es eine Möglichkeit, dies mit Excel, Google Sheets oder so zu tun?
Antwort1
Wenn Sie eine aktuelle Version von Excel haben,E2Geben Sie denArray-Formel:
=TEXTJOIN(",",TRUE,ROW(INDIRECT(C2 & ":" & D2)))
und kopiere nach unten:
Array-FormelnCtrlmuss mit + Shift+ eingegeben werden, Enternicht nur mit der EnterTaste.
Andernfalls geben Sie die folgende benutzerdefinierte Funktion in einem Standardmodul ein:
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
Dann inE2eingeben:
=CSList(C2,D2)
und kopiere nach unten:
Benutzerdefinierte Funktionen (UDFs) sind sehr einfach zu installieren und zu verwenden:
- ALT-F11 öffnet das VBE-Fenster
- ALT-I ALT-M öffnet ein neues Modul
- Füge das Material ein und schließe das VBE-Fenster
Wenn Sie die Arbeitsmappe speichern, wird die UDF mit gespeichert. Wenn Sie eine neuere Version von Excel als 2003 verwenden, müssen Sie die Datei speichern als.xlsmstatt.xlsx
So entfernen Sie die UDF:
- Öffnen Sie das VBE-Fenster wie oben
- Löschen Sie den Code
- Schließen Sie das VBE-Fenster
So verwenden Sie die UDF aus Excel:
=CSList(A1,B1)
Weitere Informationen zu Makros im Allgemeinen finden Sie unter:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
Und
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
Einzelheiten zu UDFs finden Sie unter:
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
Damit dies funktioniert, müssen Makros aktiviert sein!
Antwort2
Obwohl die obige Lösung bei mir mit MS Excel funktioniert hat, konnte ich das Problem später in Google Sheets lösen. Ich füge diese Antwort hier für diejenigen hinzu, die möglicherweise keinen Zugriff auf MS Excel haben.
Schritte:
- Gehen Sie zum Menü „Extras“ und klicken Sie auf „Skript-Editor …“
Fügen Sie in der geöffneten Codedatei den unten angegebenen Code ein und speichern Sie.
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; } }
Jetzt können Sie die Funktion mit Google Sheets verwenden. Klicken Sie einfach auf eine Spalte und geben Sie ein =range2series(CELL)
, zum Beispiel range2series(D4)
.
Für mehr Details,verweisen.