Formelsuche
#1
Hallo Excellaner,
im Rahmen mener Ahnenforschung mach ich auch eine Statistik. hier stoße ich leider an meine Excelgrenzen und bitte um Hilfe.
Test-Datei ist abgespeckt ud entfällt für euch nur die wichtigsten Daten (intelligente Tabelle)

ich würde gerne den am häufigsten männlichen Vornamen . Mit Nennung und Anzahl daneben.
ABER .. Es kann auch vorkommen das der Name nicht nur an erster Stelle steht. Zb. Marianna tauscht alleine Auf, währnnd Ewa auch mal als Zweitname wäre.. dann soll Excel es auch zählen.
Wenn gleichoft auftaucht dann beide auflisten, wenn ein Maxwert dann nur der.

Excel 2024 

Klar kann ich den Filter setzen .. aber es muss doch auch per Formel gehen, oder?

Gruß Aus HH

Armin


Angehängte Dateien
.xlsx   TEST.xlsx (Größe: 358,93 KB / Downloads: 11)
Antworten Top
#2
Hi,

da Du 365 hast:

geändert:


.xlsx   TEST_Namen.xlsx (Größe: 360,93 KB / Downloads: 7)
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#3
Hallo Edgar,
schon mal dank für Deine Mühe, ABER :
er zählt bei JAN ja schon mal 7, was über die Filterfunkion ja nicht stimmt (bei den Männern 7 inkl. Marek Jan) und ich vermute einmal die Janina? 
Ebenso zählt er Kaziemira (ist weiblich) und Kazimierz (männlich) zusammen, sind aber 2 eindeutig verscheiden Vornamen
Ebenfalls MARIA .. 10 Stk ? ich denk mal da hat er auch die Marinanna inkl. Marian



und ja, einmal O365 und einmal Excel2024, deswegen meine Angabe für Excel 2024

Gruß Armin
Antworten Top
#4
Hi,

Edgars Formel scheitert schon daran, dass TEXTTEILEN(G3.:.G3000;" ") jeweils nur den Wert vor dem 1. Leerzeichen zurückgibt. Alle anderen Werte werden ignoriert. Habe im Moment leider auch keine Lösung dafür.
Gruß,
Helmut

Win11 - Office365 / MacOS - Office365
Antworten Top
#5
Das kann man unter diversen Möglichkeiten im Teilstringsuche via FILTER(),SCAN(),LAMBDA() bauen Beispiel für "M":
Code:
=LET(xA; SORTIEREN(EINDEUTIG(DatenKocik[Vornamen]);;1);
    xB; LAMBDA(n;LET(xC; FILTER(DatenKocik[Vornamen];ISTZAHL(FINDEN(n; DatenKocik[Vornamen])) *(DatenKocik[Geschlecht]="M"));
     WENNFEHLER(ZEILEN(xC); 0) ));xD; SCAN(0; xA; LAMBDA(a;b; xB(b)));INDEX(xA; VERGLEICH(MAX(xD); xD; 0)))

Gruß Uwe
Antworten Top
#6
Hallo Uwe,

das ist ja schon mal ein Formel-Monster .. danke .. auch hier ein Aber:

Jan ist ja richtig Top
ABER ..
Er wirft mir "Maria" raus, wenn ich den String auf "W" ändere ... aber er hätte ja "Marianna" als max finden müssen oder?

Gruß Armin
Antworten Top
#7
teste mal "W":
Code:
=LET(xA; SORTIEREN(EINDEUTIG(DatenKocik[Vornamen]);;1);xB; LAMBDA(n;LET( xC;" "&n&" ";xD;" "&DatenKocik[Vornamen] &" ";xE; FILTER(DatenKocik[Vornamen];ISTZAHL(FINDEN(xC; xD))*(DatenKocik[Geschlecht]="W"));WENNFEHLER(ZEILEN(xE); 0)));xD; SCAN(0; xA; LAMBDA(a;b; xB(b)));INDEX(xA; VERGLEICH(MAX(xD); xD; 0)))

Gruß Uwe
Antworten Top
#8
Hallo Uwe,

ja jetzt liefert er mirt den Wert "Ewa" .. aber (ich weiss ich nerv /nörgel hihi) . aber von der Zählweise hätte er Marianna ja auch mit 5 Treffern liefern müssen.
Kann man dann beides anzeigen ? also bei gleicher Anzahl beide Werte in unterschiedlichen Zellen ?

Wenn Ergebnis müsste ja
Ewa 5 Treffer (findet er vermutlich als ersten max wert über die Sortieren funktion?) 
Marianna 5 Treffer (lässt Excel aufgrund ersten Treffer aus?) 

aber schon mal Gut

Gruß
Armin

Hallo Uwe,

ja jetzt liefert er mirt den Wert "Ewa" .. aber (ich weiss ich nerv /nörgel hihi) . aber von der Zählweise hätte er Marianna ja auch mit 5 Treffern liefern müssen.
Kann man dann beides anzeigen ? also bei gleicher Anzahl beide Werte in unterschiedlichen Zellen ?

Wenn Ergebnis müsste ja
Ewa 5 Treffer (findet er vermutlich als ersten max wert über die Sortieren funktion?) 
Marianna 5 Treffer (lässt Excel aufgrund ersten Treffer aus?) 

aber schon mal Gut

Gruß
Armin

der Formeleditor liefert mir für Berechnung oder Name2 #Wert!.
liegt da der Fehler?


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#9
ja bei Gleichnis ist das so. 

wie soll verfahren werden. Bei Gleichnis beide ausgeben? Dann wäre dies so:
Code:
=LET(xA;SORTIEREN(EINDEUTIG(DatenKocik[Vornamen]);;1);xB;LAMBDA(n;LET(xC;" "&n&" ";xD;" "& DatenKocik[Vornamen]&" ";xE;FILTER(DatenKocik[Vornamen];ISTZAHL(FINDEN(xC; xD))*(DatenKocik[Geschlecht]="W"));WENNFEHLER(ZEILEN(xE);0)));xD;SCAN(0;xA;LAMBDA(a;b;xB(b)));FILTER(xA;xD=MAX(xD)))
Die Anzahl dahinter pappen ist dann kein Problem mehr. Das kommt zuzletzt.

Gruß Uwe
Antworten Top
#10
Hi,

die eindeutigen Vornamen kann man mit TEXTTEILEN(TEXTVERKETTEN(" ";;GLÄTTEN(DatenKocik[Vornamen]) erhalten. Allerdings hat man diese dann in einer Zeile und muss gegebenfalls mit MTRANS() arbeiten. Das Glätten ist notwendig um doppelte Leerzeichen (z.B, bei "Dorota Katarzyna") weg zu bekommen. Allerdings wird hier auch "Kind 1" zu "Kind" und "1". Aber das liegt an den Daten. Hier müsste man z.B. Kind_1 schreiben.

Damit erhalte ich für alle Vornamen:
Code:
=LET(
    a;DatenKocik[Vornamen];
    b;TEXTTEILEN(TEXTVERKETTEN(" ";;GLÄTTEN(a));" ");
    c;EINDEUTIG(SORTIEREN(MTRANS(b)));
    d;NACHZEILE(c;LAMBDA(x;SUMME(--(b=x))));
    erg;HSTAPELN(c;d);
    erg
)

Für alle männlichen Vornamen:
Code:
=LET(
    a;DatenKocik[Vornamen];
    aa;DatenKocik[Geschlecht];
    ab;FILTER(a;aa="M");
    b;TEXTTEILEN(TEXTVERKETTEN(" ";;GLÄTTEN(ab));" ");
    c;EINDEUTIG(SORTIEREN(MTRANS(b)));
    d;NACHZEILE(c;LAMBDA(x;SUMME(--(b=x))));
    erg;HSTAPELN(c;d);
    erg
)
Gruß,
Helmut

Win11 - Office365 / MacOS - Office365
Antworten Top


Gehe zu:


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