Text und Zelleninhalt in einer Zelle ohne leere Zellen aufbauen
#1
Hallo,

folgende Herausforderung. Ich möchte aus den folgenden Zeilenbereich einen Text zusammensetzen. Problem ist aber das wenn sich leere Zellen dazwischen befinden dannpasst der Text nicht mehr.

   

Es sollte der Text wie folgt zusammengesetzt werden: Kinderzulage für Ben & Martin.

Die restlichen & sollen dann nicht mehr angezeigt werden.

Aktuell ich folgende Formel eingebaut denke aber ich muss die Zellen vorher aufbereiten


Code:
="Kinderzulage von "&G36&" &"&G37&" &"&G38&" &"&G39&" &"&G40&" &"&G41


Über folgenden Link http://www.herber.de/excelformeln und bitte suchen .../formeln.html?welcher=43 geht es aber nicht da dann ja trotzdem noch Leerzeilen nach dem Inhalt "Kneipe" vorhanden sind.

Geht das überhaupt?
Gruß Daniel Albert

Finanzberater für Baufinanzierungen
Top
#2
Daniel Albert,

ja das geht.
 GHIJ
36BenBen  
37 Ben  
38MartinBen  Martin  
39 Ben  Martin  
40 Ben  Martin  
41 Ben  Martin  
42    
43Kinderzulage für Ben & Martin   
44Kinderzulage für Ben & Martin   

ZelleFormel
H36=G36
H37=H36&" "&G37
H38=H37&" "&G38
H39=H38&" "&G39
H40=H39&" "&G40
H41=H40&" "&G41
G43="Kinderzulage für "&TEXTVERKETTEN(" & ";WAHR;$G$36:$G$41)
G44="Kinderzulage für "&WECHSELN(GLÄTTEN(G36&" "&G37&" "&G38&" "&G39&" "&G40&" "&G41);" ";" & ")
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Top
#3
Hallo Daniel,
zunächst die vermutlich korrekte (weil ungetestete) Version Deiner Formel:

Code:
="Kinderzulage von " & G36 & " " & G37 &" " & G38 & " " & G39 & " " & G40 &" " & G41
Wenn Du dann noch überflüssige Leerzeichen weghaben willst, ist es etwas länger (hier nur am Beispiel G39):
Code:
... G38 & WENN(G39 = ""; ""; " " & G39) & ...
Da war shift-del wieder schneller und besser...
Gruß der AlteDresdner (Win11, Off2021)
Top
#4
Moin!
Nur als Ergänzung mal eine Lösung per UDF (User defined function)
Modul Modul1
Option Explicit 
 
Function TxtKette(rng As Range) As String 
Dim arr, i# 
arr = rng.Value 
For i = 1 To Ubound(arr) 
  If Not IsEmpty(arr(i, 1)) Then _
    TxtKette = TxtKette & arr(i, 1) & " & " 
Next 
TxtKette = Left(TxtKette, Len(TxtKette) - 3) 
End Function 
 

Ergibt im Tabellenblatt:

AB
1PeterZulage für Peter & Max & Paul
2
3Max
4
5
6Paul
Formeln der Tabelle
ZelleFormel
B1="Zulage für "&TxtKette(A1:A6)

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Daniel Albert
Top
#5
Verdammt wie immer, bei mir geht es nicht richtig:

Ich habe in der gelb markierten Zelle deine Formel eingetragen: ="Zulage für "&TxtKette(G36:G41) und deinen Code unter Modul2 eingetragen

so sieht jetzt das Ergebnis aus:


   

Warum ?
Gruß Daniel Albert

Finanzberater für Baufinanzierungen
Top
#6
Verdammt, wie immer! ;)
An einem Screenshot erkennt man den Fehler meist nicht.
Deine Testdatei?

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Daniel Albert
Top
#7
Ahh verdammt, Punkt gefunden. In den Zellen wo die Namen dann stehen findet eine Prüfung mit folgender Formel statt

=WENN(C36<"";A36;"")

Somit steht ja was in der Zelle
Gruß Daniel Albert

Finanzberater für Baufinanzierungen
Top
#8
Dann muss die Prüfung anders lauten:
Function TxtKette(rng As Range) As String
Dim arr, i#
arr = rng.Value
For i = 1 To Ubound(arr)
  If Not arr(i, 1) = vbNullString Then _
    TxtKette = TxtKette & arr(i, 1) & " & "
Next
TxtKette = Left(TxtKette, Len(TxtKette) - 3)
End Function

Hier mal eine sinnfreie Formel, um den Leerstring zu erzeugen:
ABC
1PeterPeterZulage für Peter & Max & Paul
2
3MaxMax
4
5
6PaulPaul
Formeln der Tabelle
ZelleFormel
A1=WENN(ISTLEER(B1);"";B1)
C1="Zulage für "&TxtKette(A1:A6)

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Daniel Albert
Top
#9
Juhu jetzt geht es, Danke

Geht aber sogar ohne die Zusatzspalte A1 oder muss ich die mit Istleer anlegen?
Gruß Daniel Albert

Finanzberater für Baufinanzierungen
Top
#10
Hallo,

jetzt ist mir aufgefallen, wenn keine Kinder vorhanden sind dann steht in der Zeile: #wert

Nun habe ich folgende Formel eingebaut mit welcher es geht aber finde die sehr verschachtelt. Gibt es eine einfachere:

=WENN(ODER(Kunden!B8="Ja";UND(Kunden!B60="";Kunden!B61="";Kunden!B62="";Kunden!B63="";Kunden!B64="";Kunden!B65=""));"";"Kinderzulage für "&TxtKette(Kunden!B60:B65))

Ich habe es anders nicht hinbekommen.
Gruß Daniel Albert

Finanzberater für Baufinanzierungen
Top


Gehe zu:


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