Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Mehrere Werte in einer Zelle Ausgeben.

Mehrere Werte in einer Zelle Ausgeben.
25.08.2014 11:22:16
Hans
Hallo,
aus einer Liste soll der Text in eine Tabelle übertragen werden (siehe Datei).
D. h. in Zelle B3 (AA) soll der Text „Ball“ erscheinen, in Zelle D4 (BC) der Text „Haus“ und „Baum“ usw., jeweils getrennt durch einen Zeilenumbruch.
Wie müsste die entsprechende Formel lauten?
Gruß
HN

Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrere Werte in einer Zelle Ausgeben.
25.08.2014 11:28:01
{Boris}
Hallo Hans,
was hast Du denn im Nachgang mit den Werten vor?
Ich frag deshalb, weil es meistens früher oder später wieder darum geht, die Werte zu ENTketten - und dann kommt das nächste Problem.
VG, Boris

AW: Mehrere Werte in einer Zelle ausgeben.
25.08.2014 12:25:56
Hans
Hallo Boris,
im Grunde genommen ist die Tabelle schon das "Endprodukt".
Zumindest soweit ich das bis jetzt einschätzen kann.
Probleme könnte es mir u.U. machen, wie und woher die Daten in die Liste kommen.
Das habe ich aber (noch?!) im Griff.
Gruß
HN

Anzeige
AW: Mehrere Werte in einer Zelle ausgeben.
25.08.2014 12:39:28
{Boris}
Hi Hans,
hier mal eine Formel bis zu 3 Treffern.
In Deiner Excelversion kannst Du das noch etwas kürzer unter Zuhilfenahme der Funktion WENNFEHLER gestalten - hier hab ich aber gerade nur Excel 2003.
B3 (und dann nach rechts und nach unten kopieren) - ARRAY(!)formel:
{=WENN(ZÄHLENWENN($H$3:$H$9;B$2&$A3);INDEX($I$3:$I$9;MIN(WENN($H$3:$H$9=B$2&$A3;ZEILE($1:$7))));"") &WENN(ZÄHLENWENN($H$3:$H$9;B$2&$A3)>1;ZEICHEN(10)&INDEX($I$3:$I$9; KKLEINSTE(WENN($H$3:$H$9=B$2&$A3;ZEILE($1:$7));2));"")&WENN(ZÄHLENWENN($H$3:$H$9;B$2&$A3)>2; ZEICHEN(10)&INDEX($I$3:$I$9;KKLEINSTE(WENN($H$3:$H$9=B$2&$A3;ZEILE($1:$7));3));"") }
Und die Zellen mit Zeilenumbruch formatieren!
VG, Boris

Anzeige
Könnte es sein, dass eher $A#&B$# als ...
26.08.2014 02:28:05
Luc:-?
…B$#&$A# gemeint ist, Boris (& Hans)?
Morrn, Luc :-?

AW: Könnte es sein, dass eher $A#&B$# als ...
26.08.2014 08:44:27
Hans
Hallo Luc :-?
stimmt, das ist mir anfangs garnicht aufgefallen, vielen Dank für den Hinweis.
Jetzt werden die Werte korrekt eingeordnet.
Gruß
HN

Versteh ich nicht...
26.08.2014 09:07:31
{Boris}
Hi Luc,
ich hab doch formuliert: B$2&$A3 ?!
VG, Boris

Anzeige
Jetzt hab ich kapiert....
26.08.2014 09:15:04
{Boris}
...vergesst meine "Irritation" bitte ;-))
Ihr habt natürlich Recht.
VG, Boris

AW: Mehrere Werte in einer Zelle ausgeben.
26.08.2014 08:39:12
Hans
Hallo Boris,
für die Beispieldatei funktioniert dein Lösungsansatz tadellos (den kleinen Dreher - siehe Anmerkung von Luc:-? - habe ich korrigiert), danke dafür.
Für meine eigentliche Aufgabe kann ich diese Formel aber nur bedingt einsetzen, da es u.U. mehr als 3 Treffer geben kann.
Die Formel zu erweitern oder gar umzuschreiben ist mir bisher leider nicht geglückt.
Hier benötige ich wohl noch Hilfe.
Gruß
HN

Anzeige
AW: Mehrere Werte in einer Zelle ausgeben.
26.08.2014 09:43:08
{Boris}
Hi Hans,
wie viele Treffer können es denn maximal sein?
Ich frage deshalb, weil man mit einer Excelformel Elemente eines Arrays leider nicht verketten kann und daher für jeden möglichen Treffer dieser Formelteil angehängt werden muss:
&WENN(ZÄHLENWENN($H$3:$H$9;$A3&B$2)>2; ZEICHEN(10)&INDEX($I$3:$I$9;KKLEINSTE(WENN($H$3:$H$9=$A3&B$2;ZEILE($1:$7));3));"")
wobei die ZÄHLENWENN-Treffer-Abfrage immer um 1 erhöht werden muss (hier: von >2 auf >3) und selbiges auch für den Parameter k der Funktion KKLEINSTE gilt (hier: 3 -> erhöhen auf 4 usw.).
Und wenn das nachher zu viele Treffer sein können, wird das ne Monsterformel. Dann wäre wohl eher VBA das probate Mittel zur Lösung.
VG, Boris

Anzeige
Falls du dich für VBA-Einsatz entscheidest, ...
26.08.2014 13:05:55
Luc:-?
…Hans,
kannst du die UDF MxJoin, die du hier findest, auch in einer ZellFml verwenden, die dadurch auch wesentlich kürzer wird.
Gruß, Luc :-?

AW: Falls du dich für VBA-Einsatz entscheidest, ...
26.08.2014 13:55:29
Hans
Hallo Luc,
vielen Dank für den Hinweis.
VBA ist leider (noch) nichts für mich.
Gruß
HN

Anzeige
Für dein Bsp würde das dann so aussehen, ...
26.08.2014 20:12:15
Luc:-?
…Hans:
 KLMNOP
2 ABCDE
3ABall    
4B  Haus
Baum
  
5C    Auto
6D Hammer
Glas
Hallo
   
7Formel:L3[:P6]: {=MxJoin(WENN($H$3:$H$9=$A3&B$2;$I$3:$I$9;"");ZEICHEN(10))}
Die UDF musst du in ein allgemeines VBA-Modul (VBEditor - Rechtsklick auf Strukturbaum - Einfügen - Modul) deiner Mappe kopieren.
Gruß, Luc :-?

Anzeige
AW: Für dein Bsp würde das dann so aussehen, ...
28.08.2014 17:58:55
Hans
Hallo Luc,
funktioniert perfekt, auch wenn ich nicht verstehe warum und was diese neue Funktion insgesamt noch kann.
Vielen Dank.
Gruß
HN
PS: Wie hast du den Auszug des Tabellenblattes in deinen letzten Post bekommen?

Richtig vermutet, die kann noch mehr in ...
29.08.2014 02:11:15
Luc:-?
…dieser Richtung verarbeiten bzw erzeugen, Hans,
zB das, was im verlinkten Thread gefordert wurde. Das wirst du schon noch herausfinden…
Zur TabDarstellung:
Das ist eine HTML-Tabelle, die ich mit eigenem VBA-Pgm (alte 1.AusbauStufe) erzeugt und dann in den Beitragsentwurf hineinkopiert habe. So etwas ist bereits mehrfach entwickelt worden und mindestens 3 im W³ angebotene einschlägige Tools fktionieren auch in diesem Forum.
Morrn, Luc :-?

Anzeige
AW: Mehrere Werte in einer Zelle ausgeben.
26.08.2014 13:45:11
Hans
Hallo Boris,
ja, leider kann es soviele Treffer geben wie es Zeilen in der Liste gibt und die ist zu allem Überfluß variabel.
Ich habe die Formel für mögliche 6 Treffer erweitert und in der Tat, die Formel ist inzwischen ellenlang geworden.
Gruß
HN
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Mehrere Werte in einer Zelle Ausgeben


Schritt-für-Schritt-Anleitung

Um mehrere Werte in einer Zelle auszugeben, kannst Du die folgende Array-Formel verwenden. Diese Formel zeigt bis zu 3 Ergebnisse an, die durch einen Zeilenumbruch getrennt sind:

  1. Wähle die Zelle aus, in der die Werte angezeigt werden sollen (z. B. B3).
  2. Gib die folgende Formel ein:
    {=WENN(ZÄHLENWENN($H$3:$H$9;B$2&$A3);INDEX($I$3:$I$9;MIN(WENN($H$3:$H$9=B$2&$A3;ZEILE($1:$7))));"") & WENN(ZÄHLENWENN($H$3:$H$9;B$2&$A3)>1;ZEICHEN(10)&INDEX($I$3:$I$9;KKLEINSTE(WENN($H$3:$H$9=B$2&$A3;ZEILE($1:$7));2));"") & WENN(ZÄHLENWENN($H$3:$H$9;B$2&$A3)>2;ZEICHEN(10)&INDEX($I$3:$I$9;KKLEINSTE(WENN($H$3:$H$9=B$2&$A3;ZEILE($1:$7));3));"")}
  3. Drücke Strg + Shift + Enter, um die Formel als Array-Formel einzugeben.
  4. Stelle sicher, dass die Zelle für Zeilenumbrüche formatiert ist (Rechtsklick -> Zellen formatieren -> Ausrichtung -> Zeilenumbruch aktivieren).

Diese Methode ermöglicht es Dir, bis zu 3 Werte in einer Zelle anzuzeigen. Möchtest Du mehr als 3 Werte ausgeben, musst Du die Formel entsprechend erweitern.


Häufige Fehler und Lösungen

  1. Formel gibt keine Werte zurück: Überprüfe, ob die Zellenbereiche (z. B. $H$3:$H$9) korrekt sind und die Kriterien in den Zellen B2 und A3 stimmen.

  2. Werte werden nicht durch Zeilenumbrüche getrennt: Stelle sicher, dass die Zelle mit Zeilenumbruch formatiert ist. Wenn die Zelle nicht so formatiert ist, werden alle Werte in einer Zeile angezeigt.

  3. Array-Formel nicht aktiviert: Wenn Du die Formel nicht mit Strg + Shift + Enter eingibst, wird sie nicht als Array-Formel erkannt und funktioniert nicht korrekt.


Alternative Methoden

Falls Du eine einfachere Lösung suchst, kannst Du auch VBA verwenden, um mehrere Werte in einer Zelle zu entketten. Eine nützliche Funktion ist MxJoin, die Du in einem Modul im VBA-Editor bereitstellen kannst. Hier ist ein einfacher Ansatz:

  1. Öffne den VBA-Editor (Alt + F11).

  2. Füge ein neues Modul ein (Rechtsklick im Projektfenster -> Einfügen -> Modul).

  3. Kopiere den folgenden Code in das Modul:

    Function MxJoin(rng As Range, Optional delimiter As String = vbCrLf) As String
       Dim cell As Range
       Dim result As String
       For Each cell In rng
           If cell.Value <> "" Then
               result = result & cell.Value & delimiter
           End If
       Next
       MxJoin = Left(result, Len(result) - Len(delimiter))
    End Function
  4. Verwende die Funktion in Excel:

    =MxJoin(WENN($H$3:$H$9=$A3&B$2;$I$3:$I$9;"");ZEICHEN(10))

Praktische Beispiele

Angenommen, Du hast folgende Daten:

H I
A Ball
A Flugzeug
B Haus
B Baum
C Auto
D Hammer
D Glas

Wenn Du nun die Formel in Zelle B3 verwendest, erhältst Du für den Wert A zwei Ergebnisse in einer Zelle:

Ball
Flugzeug

Für den Wert B kannst Du in der Zelle D4 folgendes sehen:

Haus
Baum

Tipps für Profis

  • Verwende die Funktion WENNFEHLER, um die Handhabung von Fehlern in Deiner Formel zu verbessern, besonders wenn keine Daten vorhanden sind.
  • Wenn Du regelmäßig mit vielen Daten arbeitest, ziehe in Betracht, ein VBA-Skript zu nutzen, um die Effizienz zu steigern und die Formeln zu vereinfachen.
  • Halte Deine Formeln so kurz wie möglich; lange Formeln können schwer zu lesen und zu warten sein.

FAQ: Häufige Fragen

1. Wie viele Werte kann ich in einer Zelle ausgeben?
Theoretisch kannst Du so viele Werte ausgeben, wie Du möchtest, aber praktisch wird es kompliziert, wenn die Formel zu lang wird. Bei mehr als 3 bis 5 Werten ist VBA oft die bessere Wahl.

2. Was ist der Unterschied zwischen Entketten und Concat?
Entketten bezieht sich auf das Trennen von Daten, die zuvor zusammengeführt wurden, während Concat das Zusammenführen von Daten in einer Zelle beschreibt.

3. Kann ich die Formel auch für andere Excel-Versionen verwenden?
Ja, die grundlegenden Funktionen funktionieren in den meisten modernen Excel-Versionen. Beachte jedoch, dass die Array-Formel in älteren Versionen (z. B. Excel 2003) anders behandelt werden muss.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige