Text in Zelle suchen und Wert ausgeben

Moderator: ModerationP

Text in Zelle suchen und Wert ausgeben

Beitragvon Mike41017 » 04. Okt 2017, 17:38

Hallo liebes Forum,

ich habe in einer Zelle, getrennt durch manuelle Zeilenumbrüche, folgende Ausgangslage:

A1
Mayer 15
Müller 5
Schmidt 10
Wagner 20
Werner 50

A2
Huber 20
Schulz 6
Mayer 43

A3
Schröder 5
Wagner 16
Mayer 13
Schmidt 24

usw.

Die Formatierung ist leider vorgegeben ... :roll:

Nun möchte ich für jeden Namen das Gesamtergebnis auslesen. Also:
Mayer 71
Müller 5
Schmidt 34
Wagner 36
Werner 50
Huber 20
Schulz 6
Schröder 5

Wie bekomme ich das hin? Habe mich bereits mit diversen Varianten von WENN, SUCHEN und RECHTS versucht, komme aber zu keine vernünftigen Ergebnis.

Kann mir jemand einen Tipp geben? Danke!

Gruß
Mike
Mike41017
 

Re: Text in Zelle suchen und Wert ausgeben

Beitragvon Mike41017 » 04. Okt 2017, 17:45

Eine Idee, die ich hatte war, dass ich in den Spalten ab B für jede Zeile und jeden Namen eine eigene Abfrage mache.

Der Code in B1 für den Namen "Mayer" in Zelle A1 sieht dann wie folgt aus: =WENN(ISTFEHLER(WENN(SUCHEN("Mayer";A1);RECHTS(A1;2);0));0;WENN(SUCHEN("Mayer";A1);RECHTS(A1;2);0))

Die Zahlenwerte sind maximal zweistellig.

Allerdings kann diese Formel wohl nicht mit den Zeilenumbrüchen umgehen.
Mike41017
 

Re: Text in Zelle suchen und Wert ausgeben

Beitragvon ehem. lupo1 » 04. Okt 2017, 18:01

A5: Mayer
B5: {=SUMME((GLÄTTEN(
TEIL(WECHSELN(WECHSELN(A$1:A$3;ZEICHEN(10);" ");" ";WIEDERHOLEN(" ";99));SPALTE(A1:U1)*198-197;99))=A5)*WENNFEHLER(--
TEIL(WECHSELN(WECHSELN(A$1:A$3;ZEICHEN(10);" ");" ";WIEDERHOLEN(" ";99));SPALTE(A1:U1)*198-98;99);))
}
ehem. lupo1
 

Re: Text in Zelle suchen und Wert ausgeben

Beitragvon Pearli123 » 04. Okt 2017, 19:11

Oder auch alle auf einmal per VBA:
Code: Alles auswählen
Sub m()
    sn = Application.Transpose(Range("a1").CurrentRegion.Value)
   
    For i = LBound(sn) To UBound(sn)
        sp = sp & Chr(10) & sn(i)
    Next
   
    sn = Split(sp, Chr(10))

    With CreateObject("Scripting.Dictionary")
        For i = LBound(sn) To UBound(sn)
            If sn(i) <> "" Then
                If Not .Exists(Left(sn(i), InStr(sn(i), " ") - 1)) Then
                    .Add Left(sn(i), InStr(sn(i), " ") - 1), Mid(sn(i), InStr(sn(i), " ") + 1)
                Else
                    .Item(Left(sn(i), InStr(sn(i), " ") - 1)) = CLng(.Item(Left(sn(i), InStr(sn(i), " ") - 1))) + CLng(Mid(sn(i), InStr(sn(i), " ") + 1))
                End If
            End If
        Next
        Range("B1").Resize(.Count) = Application.Transpose(.Keys)
        Range("C1").Resize(.Count) = Application.Transpose(.Items)
    End With
End Sub

Die Werte stehen in der aktiven Tabelle in Spalte A. Die Ergebnisse dann aufgeteilt nach Namen in Spalte B & C
Pearli123
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 921
Registriert: 20. Feb 2017, 13:38

Eins interessiert mich dann ja doch:

Beitragvon ehem. lupo1 » 04. Okt 2017, 19:16

Warum nicht weiter dort?
ehem. lupo1
 

Re: Text in Zelle suchen und Wert ausgeben

Beitragvon Pearli123 » 04. Okt 2017, 19:21

Bin nur in einem Forum aktiv, daher. Und ich such bestimmt nicht bei anderen Foren, ob vielleicht irgendwo noch so ein Thema ist. Wem die Antwort hilft, dem hilft sie, wem nicht, dem eben nicht. Mir egal. Ich hab halt Spaß beim tüfteln.
Pearli123
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 921
Registriert: 20. Feb 2017, 13:38

Nicht Du, VBA-pearli, sondern der

Beitragvon ehem. lupo » 04. Okt 2017, 19:24

TE war gemeint. Der Huber-Mike sozusagen.
ehem. lupo
 

Re: Text in Zelle suchen und Wert ausgeben

Beitragvon Pearli123 » 04. Okt 2017, 19:26

Ich hab das schon verstanden ;) War auch nicht an dich gerichtet.
Pearli123
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 921
Registriert: 20. Feb 2017, 13:38

Re: Text in Zelle suchen und Wert ausgeben

Beitragvon Luc$:-? » 05. Okt 2017, 04:33

Sollen die Summen mit den Texten wiedervereinigt wdn, Mike,
und als plurale MatrixFml einmalig jedem Namen zugeordnet wdn, würde eine Fml länger wdn, auch wenn sie UDFs enthielte. Als singulare MatrixFml noch länger, wobei dann auch die Vereinigung aller Namen und zugehörigen Summen in nur einer Zelle möglich würde. Auf der Basis der etwas kürzeren pluralen MatrixFml wäre dann nur eine duale MatrixFml möglich, die dann deshalb wieder länger ausfallen würde und 2 Zellen benötigen würde (bei allen diesen Fmln wäre die Xl-Fkt MMULT diejenige, die den SummenVektor zu den (einmalig gemachten) Namen ermittelt).*
Deshalb sind die bereits vorgestellten Lösungen schon optimal, auf jeden Fall die von Lupo, falls es nicht gar zu viele Datensätze wdn (dann ggf die Alternative von Pearli verwenden, falls VBA infrage kommen darf).
* Bei Interesse stelle ich die trotzdem gern vor.
Morrn, Luc :-?
Luc$:-?
 

Re: Nicht Du, VBA-pearli, sondern der

Beitragvon Mike41017 » 05. Okt 2017, 07:30

ehem. lupo hat geschrieben:TE war gemeint. Der Huber-Mike sozusagen.


Servus! Und jetzt ist mein Bundesland auch offenbar, oder? :mrgreen:

Erst mal vielen Dank für eure vielfältigen Antworten.

Der Code von Lupo funktioniert wunderbar.

Da es aber voraussichtlich mehr als 50 Namen sind, klingt die Lösung von Pearli sehr interessant. Allerdings erhalte ich da eine Fehlermeldung.
"Laufzeitfehler 9. Index außerhalb des gültigen Bereichs" bei sp = sp & Chr(10) & sn(i)

Habe lediglich die Range angepasst.
Mike41017
 

Re: Eins interessiert mich dann ja doch:

Beitragvon Mike41017 » 05. Okt 2017, 07:32

ehem. lupo1 hat geschrieben:Warum nicht weiter dort?

Ich wollte halt nicht nur die Leute in einem Forum mit meinen Spezial-Anliegen beschäftigen :?
Aber ich bin immer wieder erstaunt, wie hilfsbereit ihr alle seid! DANKE!
Mike41017
 

Re: Text in Zelle suchen und Wert ausgeben

Beitragvon Mike41017 » 05. Okt 2017, 07:34

Luc$:-? hat geschrieben:Sollen die Summen mit den Texten wiedervereinigt wdn, Mike,
und als plurale MatrixFml einmalig jedem Namen zugeordnet wdn, würde eine Fml länger wdn, auch wenn sie UDFs enthielte. Als singulare MatrixFml noch länger, wobei dann auch die Vereinigung aller Namen und zugehörigen Summen in nur einer Zelle möglich würde. Auf der Basis der etwas kürzeren pluralen MatrixFml wäre dann nur eine duale MatrixFml möglich, die dann deshalb wieder länger ausfallen würde und 2 Zellen benötigen würde (bei allen diesen Fmln wäre die Xl-Fkt MMULT diejenige, die den SummenVektor zu den (einmalig gemachten) Namen ermittelt).*
Deshalb sind die bereits vorgestellten Lösungen schon optimal, auf jeden Fall die von Lupo, falls es nicht gar zu viele Datensätze wdn (dann ggf die Alternative von Pearli verwenden, falls VBA infrage kommen darf).
* Bei Interesse stelle ich die trotzdem gern vor.
Morrn, Luc :-?

Hui, ich glaub ich hab in etwa die Hälfte verstanden :oops:
Also als Ausgabe reicht mir eine Spalte mit den Namen und daneben eine Spalte mit den addierten Werten.
Mike41017
 

Da die Namen wohl vorher schon bekannt sind, ...

Beitragvon ehem. lupo1 » 05. Okt 2017, 10:47

... kannst Du sie ja einfach auflisten - selbst wenn einer davon dann 0 ergibt.

Die Ermittlung der beteiligten Namen ohne Doppler und ohne Hilfsspalten ist dann doch ein wenig mühsam.
ehem. lupo1
 

Re: Text in Zelle suchen und Wert ausgeben

Beitragvon snb » 05. Okt 2017, 11:24

Code: Alles auswählen
Sub M_snb()
  sn = split(join(Application.Transpose(Range("a1").CurrentRegion.columns(1)),vblf),vblf)

  With CreateObject("Scripting.Dictionary")
    For j=0 To UBound(sn)
      sp=split(sn(j))
      .item(sp(0))=.item(sp(0))+sp(1)
    next

    cells(1,3).Resize(.Count,2) = Application.Transpose(array(.Keys,.items))
  End With
End Sub
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5220
Registriert: 25. Sep 2014, 16:37

Re: Text in Zelle suchen und Wert ausgeben

Beitragvon Pearli123 » 05. Okt 2017, 12:51

Oh mann, die Funktion Join hat mir da als Vereinfachung gefehlt. Wieder was gelernt =)
Pearli123
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 921
Registriert: 20. Feb 2017, 13:38

Nächste

Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 12 Gäste