Zeichen zählen ohne Leerzeichen und ausgeben
#1
Hallo,


ich suche eine Funktion in der ich im Prinzip zeichen zählen und ausgeben lassen kann ohne das leerzeichen gezählt werden.

Also Beispiel :

=links(A2;250) <- so zählt excel ja stur von links 250 zeichen. Genau so soll es auch sein nur das beim zählen leerzichen ignoriert werden, allerdings müssen diese trotzdem mit ausgegeben werden...


Ich hoffe mir kann jemand helfen ...

Danke und Gruss
Timo
Top
#2
Hi Timo,

bin mir jetzt nicht ganz sicher, ob ich dich richtig verstanden habe. Mal mein Vorschlag:


Code:
=LINKS(WECHSELN(A2;" ";"");250)
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#3
Zur Info
http://www.office-loesung.de/p/viewtopic...7#p3053617

Gruß Jonas
Top
#4
Auch Hallo,

und so habe ich es verstanden

Code:
=LINKS(A2;250-LÄNGE(WECHSELN(A2;" ";"")))
Gruß Stefan
Win 10 / Office 2016
Top
#5
Hallo Timo,

ich könnte es nur mit einer selbst geschriebenen Funktion (UDF) in VBA in ein allgemeines Modul eingebaut:


Code:
Option Explicit
Public Function LINKSOHNE(strText As String, lngZeichen As Long) As String
Dim lngAnz As Long
Dim lngPos As Long
    
LINKSOHNE = ""
If Len(strText) >= lngZeichen Then
    lngPos = 0
    lngAnz = 0
    While lngPos < Len(strText) And lngAnz < lngZeichen
        lngPos = lngPos + 1
        If Mid(strText, lngPos, 1) <> " " Then
            lngAnz = lngAnz + 1
        
        End If
    Wend
    If lngAnz = lngZeichen Then
        LINKSOHNE = Left(strText, lngPos)
    End If
End If
End Function


Angehängte Dateien
.xlsm   Linksohne.xlsm (Größe: 14,65 KB / Downloads: 3)
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Top
#6
Hallo Timo,

da die Funktion LINKS den gesamten Text ausgibt, wenn er kleiner als die gewünschte Anzahl an Zeichen ist, hier die entsprechende Version:


Code:
Public Function LINKSOHNE2(strText As String, lngZeichen As Long) As String
Dim lngAnz As Long
Dim lngPos As Long
    
If Len(strText) < lngZeichen Then
    LINKSOHNE2 = strText
Else
    lngPos = 0
    lngAnz = 0
    While lngPos < Len(strText) And lngAnz < lngZeichen
        lngPos = lngPos + 1
        If Mid(strText, lngPos, 1) <> " " Then
            lngAnz = lngAnz + 1
        
        End If
    Wend
    LINKSOHNE2 = Left(strText, lngPos)
End If
End Function
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Top
#7
Hallo,

@Günter
Deine Lösung passt nicht zu
Zitat:...leerzichen ... allerdings müssen diese trotzdem mit ausgegeben werden.


@Steffl:
Deine Lösung passt nicht zu

Zitat:...nur das beim zählen leerzichen ignoriert werden...
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Top
#8
Hallo Timo,

als Formellösung: 

=LINKS(A1;AGGREGAT(15;6;ZEILE(A$1:A$999)/(TEIL(A$1;ZEILE(A$1:A$999);1)<>" ");250))
Gruß Werner
.. , - ...
Top
#9
Hi,

ich hätte das so interpretiert:


Code:
=LINKS(A1;LÄNGE(WECHSELN(A1;" ";"")))
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#10
(11.04.2017, 18:30)Jonas0806 schrieb: Zur Info
http://www.office-loesung.de/p/viewtopic...7#p3053617

Gruß Jonas

Guten Morgen auch hier. Jonas es scheint leute wie dich zu geben die vor lauter langeweile alles und jeden schlecht machen müssen. Was ist verwerflich daran wenn ich mehrere Ansatzpunkte suche um mein Problem zu lösen. Genau dafür sond solch Foren doch da...

Naja zurück zum Thema:



(11.04.2017, 18:39)Ego schrieb: Hallo Timo,

ich könnte es nur mit einer selbst geschriebenen Funktion (UDF) in VBA in ein allgemeines Modul eingebaut:


Code:
Option Explicit
Public Function LINKSOHNE(strText As String, lngZeichen As Long) As String
Dim lngAnz As Long
Dim lngPos As Long
   
LINKSOHNE = ""
If Len(strText) >= lngZeichen Then
   lngPos = 0
   lngAnz = 0
   While lngPos < Len(strText) And lngAnz < lngZeichen
       lngPos = lngPos + 1
       If Mid(strText, lngPos, 1) <> " " Then
           lngAnz = lngAnz + 1
       
       End If
   Wend
   If lngAnz = lngZeichen Then
       LINKSOHNE = Left(strText, lngPos)
   End If
End If
End Function

@ EGO. Dein VBA kann ich leider nicht testen da ich null plan davon habe was VBA ist und wie ich es verwenden kann. Gibt es evtl ein kurzes How to oder ähnliches dann würde ich es gerne probieren.


(11.04.2017, 18:38)Steffl schrieb: Auch Hallo,

und so habe ich es verstanden

Code:
=LINKS(A2;250-LÄNGE(WECHSELN(A2;" ";"")))

Da werden zwar keine Leerzeichen mitgezählt -> Aber bei der Ausgabe werrden die erforderlichen Leerzeichen auch nicht mit ausgegeben. Und dies ist leider zwingend erforderlich.
Top


Gehe zu:


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