Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Formel für Verkettung mit "Komma" und "und"
#1
Hallo zusammen,

ich bin jetzt schon lange am rumprobieren und suchen, aber irgendwie finde ich nichts, was mich sehr irritieret.

Ich möchte aus einer  Zeile Werte so auslesen, dass sie mit Komma und am Ende mit einem "und" als ganzer Satz erscheinen. Mein Problem ist dabei, dass ich nicht weiß, in welcher Zelle der letzte Eintrag ist.

In der unten zu sehenen Tabelle habe ich diese Formel eingestezt:

F2=A2&" isst gerne "&B2&C2&D2&E2&". "

[
Bild bitte so als Datei hochladen: Klick mich!
]

Das hier habe ich gefunden, allerdings verstehe ich hier nichts und ich hätte es auch gerne als Formel direkt in der Matrix: http://www.ms-office-forum.net/forum/sho...p?t=326872

Besten DANK
PAT
Antworten Top
#2
Hallo,

PHP-Code:
=A2&" isst gerne "&WENN(B2<>"";B$1&" und ";"")&WENN(C2<>"";C$1&" und ";"")&WENN(D2<>"";$D1&" und ";"")&WENN(E2<>"";E$1;""
Gruß Jonas
Antworten Top
#3
Hallo Jonas,

danke für deine schnelle Antwort. Allerdings ist das genau das, womit ich kämpfe. Denn deine Formel erzeugt nun dies:

[
Bild bitte so als Datei hochladen: Klick mich!
]

Ich habe auch schon viel mit wenn(...) rumprobiert, aber bei der Anzahl der Spalten brech ich dann irgenwann ab.
Ich habe die Datei mal angehängt. Vielleicht gibt es ja jemanden, der damit rumspielen möchte.

Bitte bedenkt dabei, dass ich viele dieser Spalten habe.

LG PAT


Angehängte Dateien
.xlsx   Verkettungsproblem.xlsx (Größe: 9,6 KB / Downloads: 5)
Antworten Top
#4
Servus PAT,

versuch' mal mit Hilfsspalten ... ansonsten bricht man sich ja die Finger :D

Arbeitsblatt mit dem Namen 'Tabelle1'
ABCDEFGHI
1ÄpfelBirnenBananenKiwi
2JensÄpfelKiwiÄpfel, Kiwi,Äpfel, KiwiÄpfel und KiwiJens isst gerne Äpfel und Kiwi.

ZelleFormel
F2=WENN(ISTLEER(B2);"";B2&", ") &WENN(ISTLEER(C2);"";C2&", ") &WENN(ISTLEER(D2);"";D2&", ") &WENN(ISTLEER(E2);"";E2&", ")
G2=LINKS(F2;LÄNGE(F2)-2)
H2=WENNFEHLER(WECHSELN(G2;",";" und";ZÄHLENWENN(B2:E2;"<>")-1);G2)
I2=A2&" isst gerne "&H2&". "
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.01] MS Excel 2010
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

LG Gerd
Antworten Top
#5
Hallo,

was genau ist denn das gewünschte Ergebnis. Eventuell könnte man, wenn gewünscht/erwünscht, auch eine UDF in betracht ziehen.
Gruß Jonas
Antworten Top
#6
Hallo Gert,

auch dir vielen DANK. Da habe ich doch schon wieder etwas dazu gelernt. Es ist schon fast die Lösung meines Problems, allerdings gibt es noch einen kleinen Haken.

Die Felder aus denen das Obst ausgelesen werden, sehen zwar teilweises leer aus, sind es aber nicht, da sie Formeln beinhalten. Mit deiner Formel werden viele Kommas hintereinander produziert.

Ich habe daher die Formel für F2 so geändert.

F2=WENN(B2="";"";B2&", ") &WENN(C2="";"";C2&", ") &WENN(D2="";"";D2&", ") &WENN(E2="";"";E2&", ")

Das Problem ist nun, dass deine Formel in H2 kein "und" mehr erzeugt und ich verstehe nicht warum, bzw wie ich es ändern kann.

Ich habe meine überarbeitete Beispieldatei erneut eingefügt und freue mich über Hilfe.

LG PAT


Angehängte Dateien
.xlsx   Verkettungsproblem.xlsx (Größe: 10,58 KB / Downloads: 4)
Antworten Top
#7
Hallo Jonas,

ich habe mich gerade mal schlau gemacht, was UDF überhaupt ist. Das hatte ich bis eben noch nie gehört. Formeln selbst basteln, wow!

Das Ergebnis soll so sein, wie Gerd es für mich schon halb gelöst hat. Da ich das aber oft brauche wäre natürlich eine Lösung toll, mit der ich das ganze in einer Zelle hinbekomme.

Ideal wäre es, wenn ich einen Bereich (unterschiedlich groß, aber immer in einer Zeile) angeben könnte und dann alles direkt mit Komma und einem "und" aufgelistet wird. Wenn du mir da helfen kannst, wäre ich dir sehr dankbar.

LG Pat
Antworten Top
#8
Hallo Pat,

Spalte J ist doch identisch mit Spalte I - brauchst du m.E. nicht. Du beziehst dich in Spalte K ja auch auf Spalte I und nicht Spalte J.
Die Formel von Gerd funktioniert nicht mehr, weil deine Ausgangstabelle eben nicht mehr leer ist, sondern "" enthält
In I3 statt
=WENNFEHLER(WECHSELN(H3;",";" und";ZÄHLENWENN(B3:E3;"<>")-1);H3)
=WENNFEHLER(WECHSELN(H3;",";" und";ZÄHLENWENN(B3:E3;"")-1);H3)
bzw.
=WENNFEHLER(WECHSELN(H3;",";" und";F3-1);H3)

Wobei mir nicht klar ist, wieso du die Quelldatei  nochmals in Zeile 3-5 überträgst. Was hat dies für einen Sinn?
Wenn du übrigens Excel16 im Einsatz hättest, gäbe es dafür die neue Fkt Textverketten(). MS hat wohl gemerkt, dass dieser Anwendungsfall häufiger verlangt wurde.
Viel Erfolg!
Andreas
Antworten Top
#9
Hallo Pat,

da musst Du nur "<>" durch "?*" ersetzen ...

Arbeitsblatt mit dem Namen 'Tabelle1'
I
3Äpfel und Kiwi

ZelleFormel
I3=WENNFEHLER(WECHSELN(H3;",";" und";ZÄHLENWENN(B3:E3;"?*")-1);H3)
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.01] MS Excel 2010
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

LG Gerd
Antworten Top
#10
Hallo,

hier ergänzend eine UDF. Diese in ein allgemeines Modul kopieren, danach kann Sie im Arbeitsblatt mit =cTextJoin(A3;B3:E3) aufgerufen werden.

PHP-Code:
Option Explicit

'Parameter:
'
NameWerte (Früchte..), Delimiter (OptionalStandard ", ")

Public Function 
cTextJoin_
    ByVal n 
As Variant_
    ByVal w 
As Variant_
    Optional ByVal d 
As Variant ", ") As String
    
    Dim z
    Dim s 
As String
                
    s 
" isst gerne "
 
   
    For Each z In w
        If z 
<> "" Then s ", "
 
   Next z
    
    cTextJoin 
Left(sLen(s) - Len(d))
End Function 
Gruß Jonas
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste