MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 10.07.2019, 07:13   #1
tonymontana
Neuer Benutzer
Neuer Benutzer
Standard Excel2010 - Namen aus Liste zufällig nach Anzahl der Geschlechter verteilen

Hallo,

ich möchte aus zwei Namens-Listen "Männer-Namen" und "Frauen-Namen" in einer neuen Spalte diese Namen zufällig verteilen. Darüber sind zwei Eingabefelder, in denen ich bestimmen kann wie viele Männer und wie viele Frauen aus den Namenslisten verteilt werden sollen.

Also zb Männer: 38, Frauen: 25

Darunter dann eine Liste die sich zufällig aus den Namenslisten speist, mit genau 38 Männernamen und 25 Frauennamen.

Kann mir jemand helfen wie ich das bewerkstellige?

Vielen Dank!!!
Tony
tonymontana ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.07.2019, 07:17   #2
Sulprobil
MOF User
MOF User
Standard

Hallo,

Das habe ich bereits fertig programmiert:
Google am besten nach sbGenerateTestData.

Viele Grüße,
Bernd P
Sulprobil ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.07.2019, 07:39   #3
tonymontana
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo Bernd,

danke für die Antwort, auf der Seite finde ich mich aber nicht zurecht, sorry. Ich bin weder ein Programmierer, noch ein fortgeschrittener Excel-Anwender, ich benötige diese Liste nur für ein aktuelles Projekt
Gruß
tonymontana ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.07.2019, 08:41   #4
Drogist
MOF Profi
MOF Profi
Standard

Moin Tony,

erzeuge neben jeder der beiden Namenslisten eine Hilfsspalte mit der Funktion Zufallszahl. Dann lässt du die beiden Listen sortieren. Anschließend kannst du von den Männlein und den Weiblein die ersten n Einträge kopieren und an passender Stelle einfügen.

Beachte aber: die Zufallszahl berechnet sich nach jeder Änderung im Datengefüge neu, übrigens auch per F9.

__________________

Internette Grüße
Drogist

(Gut) Gefunden bei Storax: "This isn't a code writing service, you need to do some research and have a go at writing some of your own code."
Ich verwende Excel 2019. Wenn du keine Angaben über deine Version gemacht hast gehe ich davon aus, dass auch du mindestens diese Version hast.

¿¿ Wer schützt mich vor den Datenschützern ??
Drogist ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.07.2019, 09:11   #5
tonymontana
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Danke, aber hm.... das klingt nach copy paste "per Hand", oder hab ich das falsch verstanden?

Ich wollte die Ausgabeliste nur über die Eingabefelder erzeugen. Also zB "15" und "8" eingeben und darunter ein Liste mit 23 Namen erhalten, die aus 15 Männernamen und 8 Frauennamen besteht und sich aus den Listen spiest.

Anbei der grobe Aufbau...
Angehängte Dateien
Dateityp: xlsx namen.xlsx (11,5 KB, 8x aufgerufen)
tonymontana ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.07.2019, 10:09   #6
derHoepp
MOF User
MOF User
Standard

Hi,

das Vorgehen von Günter ist schon ein guter Ansatz, lässt sich mit ein paar Formeln aber "automatisieren"
Füge in Spalte C eine Hilfsspalte mit der Formel Zufallszahl() ein.
In die Ergebnisliste kannst du dann die Folgende Formel einfügen und runterziehen:
Code:

=INDEX($A$2:$B$52;VERGLEICH(KGRÖSSTE($C$2:$C$52;ZEILE(A1));$C$2:$C$52;0);--(ZEILE(A1)>$F$1)+1)
mit der F9-Taste oder der Änderung einer beliebigen Zelle wird die Liste neu aufgebaut.

Viele Grüße
derHöpp
derHoepp ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.07.2019, 10:36   #7
tonymontana
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo Höpp,

vielen Dank, das funktioniert schon mal garnicht schlecht, auch wenn ich nicht ganz sicher bin was die funktion macht und warum ich die hilfs-zahlen brauche.

allerdings passt es noch nicht ganz.
ich habe noch mal etwas rumgeschoben, bekomme es aber nicht hin.

die anzahl der männer stimmt zwar, die frauen werden aber nicht berücksichtigt und die liste einfach vollgefüllt...

wo liegt der fehler?
Angehängte Dateien
Dateityp: xlsx namen2.xlsx (13,3 KB, 3x aufgerufen)
tonymontana ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.07.2019, 11:16   #8
derHoepp
MOF User
MOF User
Standard

Hi,

der "Fehler" liegt darin, dass ich davon ausgegangen war, dass immer 23 Ergebnisse erzeugt werden sollen. Du kannst in einer einfachen Wenn-Abfrage prüfen, ob überhaupt noch Namen angezeigt werden sollen:
Code:

=WENN(ZEILE(A1)<=SUMME($E$1:$E$2);INDEX($A$2:$B$52;VERGLEICH(KGRÖSSTE($C$2:$C$52;ZEILE(A1));$C$2:$C$52;0);--(ZEILE(B1)>$E$2)+1);"")
Zur Erklärung, vielleicht mal eine kurze Erläuterung (hier ohne die neue Wenn-Ergänzung). Kern des ganzen ist eine Indexfunktion. Mit einer Indexfunktion kannst du den Inhalt einer Zelle eines Zellbereichs anhand eines Zeilenindex und eines Spaltenindex ausgeben. Im Klartext sieht die Formel in etwa so aus:
Code:

=INDEX(MaennerUndFrauenNamen;ZufaelligeZeileAberEindeutig;MaennerOderFrauenName)
Eine immer zufällige Zeile könntest du dir mit der Funktion
Code:

=Zufallsbereich(UntereGrenze;ObereGrenze)
erzeugen. Allerdings können dabei Dopplungen auftreten. Bei Verwendung der Formel ZufallsZahl() sind Dopplungen jedoch sehr unwahrscheinlich. Um eine Zufallszahl() allerdings in eine Zeilennummer umzurechnen ist eine konkrete Verbindung von Zeile und Zufallszahl jedoch notwendig. Daher kommen die Zufallszahlen in eine Hilfsspalte, die genauso lang ist, wie die Liste der Namen. Um jetzt eine bestimmte Anzahl von Namen aus der Liste zu lesen, würde man händisch die Liste nach der Zufallszahl sortieren und dann von oben herab einfach die benötigte Anzahl Namen auswählen.
Die Funktion KGROESSTE(BereichMitZufallszahlen;Rang) gibt dir die Zahl zurück, die dem mit Rang angegebenen Rang in dem Bereich entspricht. KGROESSTE(BereichMitZufallszahlen;3) würde dir also die drittgrößte Zufallszahl im Bereich zurückgeben. Damit die Funktion unterschiedliche Ränge nacheinander abarbeitet, geben wir einfach den Rang in Abhängigkeit zur Position der Ausgabezelle an. Die Funktion Zeile(Bezug) liefert dir die Zeilennummer der Zelle, die du in Bezug angegeben hast. Zeile(A1) also eine 1. Wenn du die Formel runterziehst wird daraus nachfolgend Zeile(A2), Zeile(A3) usw. also eine aufsteigende Zahlenfolge:
Code:

=INDEX(MaennerUndFrauenNamen;KGROESSTE(BereichMitZufallszahlen;Zeile(A1);MaennerOderFrauenName)
Wie dargestellt liefert KGROESSTE aber den KGroessten Wert und nicht die Zeilennummer. Daher musst du den Wert noch einmal in der Liste aller Zufallszahlen suchen. Die Funktion VERGLEICH() liefert die Position eines Suchwerts in einer Liste von Suchwerten. mit dem Schalter 0 lässt sich einstellen, dass eine genaue Übereinstimmung gefunden werden muss:
Code:

=VERGLEICH(KGroessteZufallszahl;AlleZufallszahlen;0)
Die KGroessteZufallszahl erhältst du wie oben dargestellt, so dass sich ergibt:
Code:

=INDEX(MaennerUndFrauenNamen;VERGLEICH(KGROESSTE(BereichMitZufallszahlen;Zeile(A1));BereichMitZufallszahlen;0);MaennerOderFrauenName)
Abschließend musst du in der Indexfunktion nur noch angeben, ob du einen Männernamen (also Spaltenindex 1) oder einen Frauennamen (also Spaltenindex 2) ausgeben willst.
Hierzu nutzt du wieder die Funktion Zeile(), die beim Herunterziehen der Formel hochzählt:
Code:

=INDEX(MaennerUndFrauenNamen;VERGLEICH(KGROESSTE(BereichMitZufallszahlen;Zeile(A1));BereichMitZufallszahlen;0);WennZeilennummerKleinerAnzahlMaennerDann1Sonst2)
Das schöne ist, dass wenn es um Zahlenwerte geht, Wennformeln recht unnötig sind, weil der Wahrheitswert auch eine Zahl ist, mit der direkt gerechnet werden kann. Wahr entspricht dabei einer 1, Falsch einer 0. Damit damit gerechnet werden kann, können beispielsweise zwei -Zeichen vorgestellt werden.
Code:

=--(ZeileGroesserAnzahlMaenner)+Korrekturfaktor
die Formel würde dir also 0 oder 1 Zurückgeben. Der Spaltenindex muss jeodch bei 1 anfangen, so dass der Korrekturfaktor mit 1 angegeben werden muss.
Code:

--(ZeileGroesserAnzahlMaenner) + 1
So einfach ist das eigentlich

Viele Grüße
derHöpp
derHoepp ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.07.2019, 11:22   #9
tonymontana
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hoepp,

vielen vielen Dank für die ausführliche Erklärung, ich werde versuchen das später mal Stück für Stück nachzuvollziehen. Auch wenn es am Ende wohl "so einfach" ist, im Augenblick verstehe ich nur die Hälfte

Aber macht ja nichts, komme bestimmt noch dahinter. Danke erstmal für die Hilfe, genau so wollte ich es am Ende haben!!!

Gruß
T.
tonymontana ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.07.2019, 11:59   #10
derHoepp
MOF User
MOF User
Standard

Hi,

noch ein Tipp: Schau dir auch immer die Formelauswertung und die Onlinehilfe an. Zudem hilft es häufig, die Einzelteile einer Formel zunächst einmal in unterschiedliche Zellen zu packen, um die einzelnen Zwischenergebnisse nachvollziehen zu können.

Viele Grüße
derHöpp
derHoepp ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.07.2019, 12:44   #11
tonymontana
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Alles klar, ich kämpf mich durch

Allerletzte Frage: Die Namen werden nun anzahlmäßig korrekt ausgewählt, allerdings werden immer zuerst die Herren und dann die Damen eingesetzt.

Wie kann ich das zufällig verteilen?

LG und vielen Dank!


EDIT: Habe es geschafft. Musste allerdings Männer und Frauen in eine Spalte packen, um die Zufallszahlen über alle Namen nach unten zu erweitern.
Angehängte Dateien
Dateityp: xlsx namen3.xlsx (33,6 KB, 3x aufgerufen)

Geändert von tonymontana (10.07.2019 um 13:20 Uhr).
tonymontana ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.07.2019, 14:39   #12
tonymontana
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Seufz, irgendwie bekomme ich es doch nicht hin.
Das mit den Namen untereinander ist nicht elegant, ich möchte die Herren und Damen lieber in eigenen Spalten verwalten.

Ich bin die Funktionen einzeln durchgegangen aber ich verstehe den Bezug zu der Trennung von Männlein und Weiblein noch nicht.

Wie weise ich die beiden Spalten per Zufallsprinzip zu den Zufallsnummern??

tonymontana ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.07.2019, 20:51   #13
tonymontana
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Also,
ich habe die letzten 4 Stunden damit verbracht Hopp's Anleitung/Erklärung Stück für Stück durchzugehen und zu verstehen, mit neuen, einfachen Beispielen.

Dafür habe ich eine einfache Beispieldatei aufgebaut. Obwohl ich nicht alles 100% kapiere (besonders das mit der ZEILE) lief es soweit gut, bis ich eine zweite "Quell-Spalte" hinzugefügt habe. Obwohl ich denke dass die Formel genau wie die im Beispiel aufgebaut ist, bekomme ich einen "#BEZUG!"-Fehler. Ich hänge fest, verstehe nicht warum das hier nicht funktioniert....?

Könnte da jemand noch mal einen Blick drauf werfen? Die Anzahl-Auswahl habe ich erstmal noch weg gelassen, möchte nur einfach Obst & Gemüse per Zufall verteilen...

Vielen Dank!
Angehängte Dateien
Dateityp: xlsx obst&gemüse.xlsx (9,2 KB, 7x aufgerufen)
tonymontana ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.07.2019, 07:06   #14
hubert17
MOF User
MOF User
Standard

Hallo Tony,

in deiner Formel mit obst&gemüse hast du mindestens zwei Fehler drin.
Zum einen fehlt in der Vergleichsfunktion ein Argument, welches ich mal mit rot hinzugefügt habe, in deinem Fall die NULL
Code:

VERGLEICH(KGRÖSSTE($C$2:$C$10;ZEILE(A1));$C$2:$C$10;0)
zum anderen suchst du im Bereich von Spalte A bis Spalte B, gibst der Index-Funktion aber nicht die Spalte zurück, in der gesucht werden soll. Da du dies zufällig möchtest, habe ich hier auch mal eine Zufallszahl ermittelt, die je nach Größe entweder aufgerundet oder abgerundet wird, also ergibt das 1 oder 0.
Code:

RUNDEN(ZUFALLSZAHL();0)+1
Addieren wir nun noch 1 dazu kommt entweder 1 oder 2 raus, das entspricht dann entweder Spalte A für 1 oder Spalte B für 2. Die ganze Formel in E2 sieht dann so aus.
Code:

=INDEX($A$2:$B$10;VERGLEICH(KGRÖSSTE($C$2:$C$10;ZEILE(A1));$C$2:$C$10;0);RUNDEN(ZUFALLSZAHL();0)+1)

__________________

Gruß
Hubert
hubert17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.07.2019, 07:13   #15
tonymontana
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo Hubert,

die 0 war eigentlich in meiner Vergleichsfunktion enthalten....
Aber Danke vielmals für den Tip mit der Spalte, ich dachte dass das nicht nötig sei! Super.

Ich lerne, ich lerne....
tonymontana ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:47 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.