Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Summewenns mit Textfragmenten

Forumthread: Summewenns mit Textfragmenten

Summewenns mit Textfragmenten
29.05.2020 16:54:58
Christian
Hallo Zusammen,
ich habe eine ewiglange Liste, bei der ich die relevanten Daten aus Speicherplatzgründen in einer Zelle untergebracht habe. Vereinfacht gesagt:
A1: "Müller l 1000"
A2: "Meier l 500"
A3: "Müller l 2000"
Besteht irgendeine Möglichkeit, ohne Hilfsspalte, die Summe von z.B. Müller herauszuarbeiten. Mit Summwenns(A1:A3;A1:A3;links(Müller&"***")) oder ähnliches komme ich nicht wirklich weiter.
Herzlichen Dank für jede Eingebung oder den Spiegel des Scheitern dieser fixen Idee:)
Viele Grüße
Christian
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Teste ...;"Müller*")
29.05.2020 17:13:31
Daniel
Gruß Daniel
VBA-Lösung
29.05.2020 17:18:07
Martin
Hallo Christian,
ich bin nicht so der Formel-Experte, deshalb liefere ich dir eine VBA-Lösung:
Sub Aufruf() MsgBox CountName(Range("A1:A3"), "Müller") End Sub Function CountName(rngSource As Range, strSearch As String) As Long Dim rngCell As Range Dim arrContent As Variant Dim lngSum As Long For Each rngCell In rngSource arrContent = Split(rngCell, " l ") If UBound(arrContent) > 0 Then If arrContent(0) = strSearch Then lngSum = lngSum + arrContent(1) End If End If Next CountName = lngSum End Function Und da Funktionen auch als Formel aufgerufen werden können, kannst du alternativ mit dem VBA-Code auch folgende Formel anwenden: =CountName(A1:A3;"Müller")
Viele Grüße
Martin
Anzeige
AW: VBA-Lösung
29.05.2020 17:29:55
Christian
Supersuper!
Herzlichen Dank!
PQ-Lösung
29.05.2020 17:24:54
Matthias
Hallo
Tabelle2

 AB
1Filter =3000
2Spalte1.1Spalte1.2
3Müller1000
5Müller2000

Formeln der Tabelle
ZelleFormel
B1=TEILERGEBNIS(9;Tabelle1_2[Spalte1.2])


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Einfach vorher mit PowerQerry die Spalte am gewünschten Trennzeichen teilen.
Dann mit Teilergebnis filtern, siehe Ergebnis.
Gruß Matthias
Anzeige
{=ANZAHL(SUCHEN("müller";A1:A999))}
29.05.2020 17:34:59
WF
Arrayformel
dann reicht auch ZÄHLENWENN(A:A;"Müller*")
29.05.2020 17:41:39
Matthias
AW: wäre schon auch mit einer Formel möglich ...
30.05.2020 13:24:06
neopa
Hallo Christian,
... wobei vorab angemerkt, ich Deine Argumentation: "... die relevanten Daten aus Speicherplatzgründen in einer Zelle untergebracht" nicht nachvollziehen kann. Excel hat doch genügend Spalten.
Jegliche Auswertung wird dadurch nur unnötig erschwert und birgt Fehlerquellen, die man nur teilweise und bedingt berücksichtigen kann.
Auch wenn Du (D)eine Lösung nun schon hast, hier mal noch eine reine Formellösung, weil es mich halt interessiert hat, ob es so möglich wäre. Wobei ich zusätzlich zu Deiner ungewöhnlichen Datentrennung über " l " auch eine Datentrennung durch einen Zeilenumbruch berücksichtige, die mE eher ein vertretbarer Grund einer derartigen Datenzusammenführung wäre (wenn nur letzteres zu berücksichtigen wäre, würde die Formel natürlich wesentlich kürzer.
Arbeitsblatt mit dem Namen 'Tabelle2'
 ABCDE
1Müller l 1000  Müller9000
2Meier l 500    
3Müller l 2000    
4Schuster
3333
    
5Müller
    
6Müller
6000
    
7Schuster l 6666    
8     

ZelleFormel
E1=SUMMENPRODUKT((LINKS(A1:A9;LÄNGE(GLÄTTEN(D1)))=GLÄTTEN(D1))+0;(0&GLÄTTEN(TEIL(WECHSELN(A1:A9;" l ";" ");FINDEN(ZEICHEN(10);WECHSELN(A1:A9;" l ";ZEICHEN(10))&""&ZEICHEN(10))+1;9)))+0)
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.02] MS Excel 2010
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Gruß Werner
.. , - ...
Anzeige
AW: wäre schon auch mit einer Formel möglich ...
30.05.2020 13:40:37
Christian
Krass... wie kommmt man nur auf so etwas?
AW: wäre schon auch mit einer Formel möglich ...
30.05.2020 14:12:40
Christian
Hallo Werner,
wie bekomme ich denn den Gedanken des Zeilenumbruchs aus dieser Formel heraus. Das kann ich tatsächlich ausschließen.
Herzlichen Dank und viele Grüße
Christian
AW: wenn dem so ist ...
30.05.2020 19:04:09
neopa
Hallo Christian,
... und die Texte auch immer Deiner vorgegebenen Basisstruktur entsprechen, dann würde schon folgende Formel reichen:
=SUMMENPRODUKT((LINKS(A1:A9;LÄNGE(D1))=D1)+0;(0&TEIL(A1:A9;FINDEN(" l ";A1:A9&" l ")+3;9))+0)

Gruß Werner
.. , - ...
Anzeige
AW: wenn dem so ist ...
30.05.2020 19:20:32
Christian
..super! Ich danke Dir sehr. Nur der Neugierde halber und dem Wunsch klüger zu werden: welche Bedeutung hat die "9" in dem "Teil"?
Beste Grüße
Christian
AW: zu Deiner Zusatzfrage ...
30.05.2020 19:36:45
neopa
Hallo Christian,
... in dem Fall geht es um die max. Anzahl der Ziffern nach Deiner Trennzeichenkette.
Ich war davon ausgegangen, dass Du keine Beträge in Milliardengrößenordnung (ohne Kommastellen) so auswerten willst, denn da müsste anstelle der 9 mindestens eine 10 stehen. Wahrscheinlich reicht in Deinem Fall jedoch anstelle der 9 schon eine 6 aus. Bei Deinen Beispieldaten wären sogar eine 4 ausreichend.
Gruß Werner
.. , - ...
Anzeige
;
Anzeige

Infobox / Tutorial

Summewenns mit Textfragmenten in Excel


Schritt-für-Schritt-Anleitung

  1. Daten vorbereiten: Stelle sicher, dass deine Daten in einer Spalte (z.B. A1:A3) organisiert sind. Beispiel:

    • A1: "Müller l 1000"
    • A2: "Meier l 500"
    • A3: "Müller l 2000"
  2. VBA-Code verwenden: Wenn du die Summe für einen bestimmten Text (z.B. "Müller") berechnen möchtest, verwende den folgenden VBA-Code:

    Sub Aufruf()
       MsgBox CountName(Range("A1:A3"), "Müller")
    End Sub
    
    Function CountName(rngSource As Range, strSearch As String) As Long
       Dim rngCell As Range
       Dim arrContent As Variant
       Dim lngSum As Long
       For Each rngCell In rngSource
           arrContent = Split(rngCell, " l ")
           If UBound(arrContent) > 0 Then
               If arrContent(0) = strSearch Then
                   lngSum = lngSum + arrContent(1)
               End If
           End If
       Next
       CountName = lngSum
    End Function

    Du kannst die Funktion dann in einer Zelle aufrufen: =CountName(A1:A3;"Müller").


Häufige Fehler und Lösungen

  • Fehler bei der Eingabe von Textfragmenten: Stelle sicher, dass die gesuchte Textzeichenfolge exakt mit dem in der Zelle übereinstimmt. Achte auf Leerzeichen oder unterschiedliche Schreibweisen.

  • VBA nicht aktiviert: Wenn der VBA-Code nicht funktioniert, überprüfe, ob Makros in deinem Excel aktiviert sind. Du kannst dies unter "Datei" -> "Optionen" -> "Trust Center" -> "Einstellungen für das Trust Center" tun.


Alternative Methoden

  1. SUMMENPRODUKT verwenden: Eine Formel, um die Summe mithilfe von Textfragmenten zu berechnen:

    =SUMMENPRODUKT((LINKS(A1:A9;LÄNGE(D1))=D1)+0;(0&TEIL(A1:A9;FINDEN(" l ";A1:A9&" l ")+3;9))+0)

    Diese Formel summiert die Werte in der zweiten Spalte nach dem Trennzeichen " l ".

  2. Teilergebnis in Excel: Wenn du die Daten bereits in einer Tabelle hast, kannst du die Funktion TEILERGEBNIS verwenden, um gezielt die Werte zu summieren.


Praktische Beispiele

  • Beispiel 1: In einer Tabelle mit den Einträgen "Müller l 1000" und "Müller l 2000" ergibt die Anwendung der VBA-Funktion CountName für "Müller" die Summe 3000.

  • Beispiel 2: Verwende die Formel =ZÄHLENWENN(A:A;"Müller*"), um die Anzahl der Einträge zu zählen, die mit "Müller" beginnen.


Tipps für Profis

  • Textfragment-Suche: Wenn du nach Textfragmenten suchst, achte darauf, Platzhalter wie * zu verwenden. Zum Beispiel: =SUMMEWENN(A:A;"Müller*";B:B).

  • VBA anpassen: Passe den VBA-Code an, um mit anderen Trennzeichen oder Formaten zu arbeiten. Dies kann dir helfen, vielseitigere Daten zu analysieren.


FAQ: Häufige Fragen

1. Wie kann ich die Summe für mehrere Namen gleichzeitig berechnen? Du kannst die VBA-Funktion erweitern, um eine Schleife durchzuführen, die eine Liste von Namen abarbeitet.

2. Gibt es eine Möglichkeit, die Formel ohne VBA zu verwenden? Ja, du kannst die SUMMENPRODUKT-Funktion verwenden, um die Summe für Textfragmente zu berechnen, ohne auf VBA zurückzugreifen.

3. Was kann ich tun, wenn meine Daten viele unterschiedliche Trennzeichen haben? In diesem Fall solltest du die Daten vor der Analyse bereinigen und möglicherweise ein einheitliches Trennzeichen verwenden, um die Verarbeitung zu erleichtern.

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