Array in Zelle schreiben
Schritt-für-Schritt-Anleitung
Um ein Array in einer einzigen Zelle anzuzeigen und dabei 0- bzw. Fehlerwerte auszuschließen, kannst du eine benutzerdefinierte Funktion (UDF) verwenden. Hier ist eine Schritt-für-Schritt-Anleitung, wie du dies in Excel umsetzen kannst:
-
Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
-
Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
-
Kopiere und füge den folgenden VBA-Code in das Modul ein:
Function Chris(rKrit As Range, sMatch As String, rDann As Range, sSonst As Variant) As String
Dim arrTmp As Variant, i As Long, n As Integer, arr() As Variant
ReDim arrTmp(rKrit.Cells.Count)
For i = 1 To rKrit.Cells.Count
If rKrit(i) = sMatch Then
arrTmp(i - 1) = rDann(i)
Else
arrTmp(i - 1) = sSonst
End If
Next i
For i = 0 To UBound(arrTmp)
If Not IsError(arrTmp(i)) Then
If arrTmp(i) <> 0 Then
ReDim Preserve arr(n)
arr(n) = arrTmp(i)
n = n + 1
End If
End If
Next i
Chris = Join(arr, ";")
End Function
-
Schließe den VBA-Editor.
-
Verwende die Funktion in einer Zelle, zum Beispiel: =Chris(B1:B5;"";A1:A5;0). Damit erhältst du die gewünschten Werte als Text in einer einzigen Zelle.
Häufige Fehler und Lösungen
-
Fehler: #NAME?
Dieser Fehler tritt auf, wenn Excel die UDF nicht erkennt. Stelle sicher, dass der VBA-Code korrekt eingefügt wurde und dass die Makros aktiviert sind.
-
Fehler: Ergebnis zeigt unerwartete Werte
Überprüfe, ob die Zellreferenzen in deiner Funktion korrekt sind. Achte darauf, dass die Bereiche in den Argumenten rKrit und rDann die gleiche Größe haben.
Alternative Methoden
Wenn du keine UDF verwenden möchtest, kannst du auch alternative Formeln nutzen. Hier ist ein Beispiel:
-
Verwende die Funktion TEXTVERKETTEN(), um die Werte zusammenzuführen, wenn du Excel 365 oder Excel 2021 verwendest:
=TEXTVERKETTEN(";" ; WAHR ; WENN(B1:B5="";"";A1:A5))
-
Eine weitere Möglichkeit ist die Verwendung der FILTER()-Funktion in Kombination mit TEXTVERKETTEN(), um nur die gewünschten Werte anzuzeigen:
=TEXTVERKETTEN(";" ; WAHR ; FILTER(A1:A5; B1:B5<>""))
Diese Methoden sind besonders nützlich, wenn du keine Programmierkenntnisse hast.
Praktische Beispiele
Hier ist ein praktisches Beispiel, das zeigt, wie du die oben genannten Techniken anwenden kannst:
Angenommen, du hast folgende Werte in den Zellen:
Verwende die UDF in einer Zelle:
=Chris(B1:B5;"";A1:A5;0)
Das Ergebnis wird 1;3;5 sein, da die 0- und Fehlerwerte ausgeschlossen werden.
Tipps für Profis
- Experimentiere mit der
TEXTVERKETTEN()-Funktion, um eine flexible Lösung zu erhalten, die auch in Zellen ohne UDF funktioniert.
- Nutze den
FILTER()-Befehl, um dynamische Arrays zu erstellen, die sich automatisch aktualisieren, wenn sich die Eingabewerte ändern.
- Wenn du große Datenmengen bearbeitest, achte auf die Effizienz deiner Formeln und Funktionen, um die Ladezeiten in Excel zu minimieren.
FAQ: Häufige Fragen
1. Wie kann ich die UDF in einer anderen Arbeitsmappe verwenden?
Du musst den VBA-Code in das Modul der anderen Arbeitsmappe kopieren. Stelle sicher, dass die Makros aktiviert sind.
2. Funktioniert diese Methode in älteren Excel-Versionen?
Die UDF sollte in Excel 2010 und späteren Versionen funktionieren. Die Formeln wie TEXTVERKETTEN() sind jedoch nur in Excel 365 und 2021 verfügbar.
3. Kann ich diese Technik auch für andere Datentypen verwenden?
Ja, du kannst die gleiche Logik auch für andere Datentypen anwenden, solange du die entsprechenden Bedingungen in der UDF anpasst.