Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Daten umsortieren (oder wie man sich in den Wahnsinn treibt)
#1
Ein herzliches Hallo an Alle

Ich habe Daten erhoben, die eigentlich einfach nur umsortiert werden müssen, aber ich scheitere wahrscheinlich schon an der Beschreibung des Problems. Gemütslage = [color=#333333][size=small][img]
Dateiupload bitte im Forum! So geht es: Klick mich!
]

Meistens ist es so (und so brauche ich es am Ende auch), dass pro Zeile eine ID verwendet wird und die Variablen dann pro Spalte mit ihren jeweiligen Ausprägungen drin stehen (vice versa). Nun habe ich einen Datensatz, indem in mehreren Zeilen jeweils dieselbe ID ist (dann die nächste in mehreren Zeilen, usw.),für die Ausprägungen in den Spalten stehen. Zusammengefasst handelt es sich um ein Spiel (Trust Game), bei dem Spieler A einen Wert an Spieler B vergibt und Spieler B etwas zurückgibt. Insgesamt spielen 5 Spieler miteinander (IDs sind hier richtige Probanden und die Namen sind computergeneriert, falls das zu Erklärung beitragen kann). Die Überweisungen werden jeweils verdreifacht und häufen sich so immer mehr an (Die Zwischensummen auch noch in der Tabelle zu haben wäre ein Traum). Die anderen Spieler spielen aber auch untereinander und so kommt es zustande, dass zwischen den IDs auch Namen stehen. Mich interessieren die Daten und Zwischensummen (Rest) aus jeweils einem Spiel mit seinen einzelnen Zügen. Jeder einzelne Spieler beginnt mit 10 Punkten. 

Die eigentliche Schwierigkeit daran ist aber, dass ein totaler Excel-Noob davorsitzt. Bis eben wusste ich nicht , was eine Hilfsspalte ist. Soviel dazu... Den Datensatz habe ich hier auch stark vereinfacht/verändert wiedergegeben und natürlich auch als Auszug. Je einfacher (anwendbarer) also die Lösung, umso besser.  

Die gewünschte Endversion habe ich mit in die Mappe gepackt. 

Ich bedanke mich schon mal ganz herzlich im Voraus und hoffe, dass ihr mir auf die [img]
Dateiupload bitte im Forum! So geht es: Klick mich!
könnt. 

Ich wusste nicht so ganz wohin mit meinem Beitrag, weshalb ich einen neuen geschrieben habe. Unter "sortieren"/ "ordnen" habe ich sehr viele Einträge gefunden.


Angehängte Dateien
.xlsx   Vorlage.xlsx (Größe: 13 KB / Downloads: 24)
Antworten Top
#2
Hallo,

ich hole mal den Beitrag nach oben. Schon 11 Downloads und noch keine Antwort lassen darauf schließen, dass du dein Anliegen nochmals deutlicher darlegen solltest.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
[-] Folgende(r) 1 Nutzer sagt Danke an WillWissen für diesen Beitrag:
  • JaLo
Antworten Top
#3
Hi,

(20.12.2016, 22:35)JaLo schrieb: Die gewünschte Endversion habe ich mit in die Mappe gepackt.

woher sind die Daten im oberen Block?
Interessant sind doch die ganzen Zwischenzeilen und Texte überhaupt nicht. Benötigt werden nur die Zahlen, wer was an wen überwiesen hat und zurückgibt.

Wenn es so eine Tabelle wäre, ist sie auf das Wesentliche reduziert, und es werden für Dein Wunschergebnis sowieso nur die Spalte C-E benötigt:

Tabelle2
ABCDEF
1ZügeEventEvent SpielerEvent EmpfängerEvent ÜberweisungSpiel ID
21Spieler (12345) überweist 5 zu Mareike12345 Mareike 512345
32Mareike überweist 7 zu 12345 Mareike 12345712345
43Mareike überweist 3 zu Joachim Mareike Joachim 312345
54Joachim überweist 4 zu Mareike Joachim Mareike 412345
65Joachim überweist 2 zu Michael Joachim Michael212345
76Spieler (12345) überweist 8 zu Hans12345Hans812345
87Mareike überweist 1 zu 12345Hans12345112345
Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 19.08 einschl. 64 Bit

[-] Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:
  • JaLo
Antworten Top
#4
Erst einmal Danke an euch beide. Ich versuche es deutlicher zu machen.

woher sind die Daten im oberen Block?

Interessant sind doch die ganzen Zwischenzeilen und Texte überhaupt nicht. Benötigt werden nur die Zahlen, wer was an wen überwiesen hat und zurückgibt.

Du hast völlig Recht @Rabe. Was man in dem oberen Block sieht, ist ein Auszug aus einem einzigen Spiel eines reellen Probanden. Ein Proband (mit jeweiliger ID) sitzt vor einer virtuellen Umgebung und spielt mit 4 anderen computergesteuerten Agenten, die aber auch untereinander spielen (zufällig). Die Agenten verteilen die Punkte nach Zufallsprinzip. 
Ein Spielzug besteht aus einer Überweisung und der Rücküberweisung. Man kann die Agenten nicht ausblenden, weil: Jeder hat am Anfang 10 Punkte, von denen er 0- max. 10 abgeben kann, bei 20 können sie max. 20 abgeben, usw. Das heißt, am Ende kommen pro Proband ganz unterschiedliche Gesamtsummen zusammen, je nachdem, wie die Agenten sich auch untereinander die Punkte zugeschoben haben und je nachdem wie viel der Proband bereit war abzugeben bzw. bekommen hat. 

Deshalb müssten wir die Werte gewichten, um sie über alle Probanden vergleichbar zu machen und eine einheitliche Aussage treffen zu können. Korrigiert mich da gern: Nach meinem Verständnis bräuchte ich sowohl vom Proband, als auch von seinen zugehörigen Agenten der Runde, Ausgangswert, Überweisung und Rücküberweisung. Die jeweiligen Ausgangswerte müssen aber auch berechnet werden. Ob das überhaupt möglich ist, weiß ich nicht. Es sieht für mich eher nicht danach aus, aber ich habe auch keine Ahnung von den Möglichkeiten in Excel. Auch in der Statistiksoftware könnte ich nur eine Formel dafür eingeben. 

1. Problem: Genau wie du es sagst. Die Textzeilen müssen weg. Wir sprechen hier von ungefähr 90000 Zeilen. Ich kann es also nicht einfach manuell löschen und es ist auch nicht immer "jede dritte oder vierte Zeile".

2. Problem: Ich bräuchte die Daten nach ID sortiert. Eine Zeile müsste aus einer ID mit allen zugehörigen Werten bestehen. Nur die Werte der IDs rauszusuchen, also ohne Agenten, wäre zur Not aber noch per Hand machbar (wir sprechen hier aber auch von ca. 2500 Einträgen)

3. Problem: Eigentlich benötigt man tabellarisch die Werte der Agenten zur ID dazu (Zum Beispiel bei der ID 12345, müsste aus Agent Joachim "12345Joachim" werden oder wie auch immer man das dann kennzeichnet). 

4. Problem: Das alles müsste pro Runde abgebildet werden. 

Zeile mit ID
dann 1. Spalte: Runde 1 Ausgangswert- Überweisung Proband/ Ausgangswert-Rücküberweisung Agent
dann 2. Spalte: Runde 2 Ausgangswert- Überweisung Agent/ Ausgangswert-Rücküberweisung Agent, usw. (Je nachdem wer was an wen überweist. Das wurde nach Zufallsprinzip konzipiert. Mal spielen die Agenten, mal der Proband mit den Agenten)
dann 3. Spalte usw.

Dann könnte man pro Proband einen gewichteten Wert errechnen, und ihn mit den anderen vergleichen. 

Vielleicht sehe ich aber auch den Wald vor lauter Bäumen nicht und es ist eigentlich ganz einfach. Ist es denn jetzt wenigstens verständlicher?
Antworten Top
#5
Nachtrag:

Man kann das also theoretisch nach Punkt 2 auch abbrechen, wenn das mit der Berechnung der Zwischensummen nicht hinhaut. Ich denke aber, dass man das dann auch nicht richtig vergleichen kann. Ich brauche jetzt ein Bier. Das löst vielleicht die Knoten in meinem Hirn...  :20:
Antworten Top
#6
Hi,
Fragen:
  1. was ist der Unterschied zwischen Spieler ID und Spiel ID?
  2. gibt es konstante Bezeichnungen für die Spieler/Agenten? Mal heißen sie Spieler (12345), mal 12345, mal Name. Was passt denn?
  3. der interessante Text ist immer:  "ID1 überweist x zu ID2"?

Dann könnte folgende Vorgehensweise helfen, die relevanten Daten rauszufiltern.
  1. Aus der gesamten Liste A1 bis E unendlich eine intelligente Tabelle mit Überschriften machen: STRG-L
  2. Spalte D (am kleinen Downdreieck)) durch abhaken der leeren Zellen filtern
  3. per Makro kopieren der gefilterten Spaltenbereiche in ein Hilfsblatt
  4. einfügen der Formeln in weitere Hilfsspalten
nun gibt es in diesen Hilfsspalten die relevanten Daten, auf die das Wunschergebnis aufgebaut werden kann.

Tabelle1
ABCDE
1ZügeEventEvent SpielerEvent ÜberweisungSpiel ID
21Spieler (12345) ist an der reihe1234512345
32Spieler (12345) überweist 5 zu Mareike12345512345
43Alle Spieler waren in Bereitschaft A12345
54Mareike hat den Zug B Mareike12345
65Mareike überweist 7 zu 12345 Mareike 712345
76Alle Spieler waren in Bereitschaft B12345
87Mareike ist an der Reihe Mareike12345
98Mareike überweist 3 zu Joachim Mareike 312345
109Alle Spieler sind in Bereitschaft A12345
1110Joachim ist an der Reihe Joachim12345
1211Joachim überweist 4 zu Mareike Joachim 412345
1312Alle Spieler sind in Bereitschaft B12345
1413Joachim ist an der Reihe Joachim 12345
1514Joachim überweist 2 zu Michael Joachim 212345
161512345
171612345
181712345
1918Spieler (12345) ist an der reihe1234512345
2019Spieler (12345) überweist 8 zu Hans12345812345
2120Alle Spieler waren in Bereitschaft A12345
2221Hans hat den Zug BHans12345
2322Mareike überweist 1 zu 12345Hans112345
242312345
252412345
262512345


Tabelle2
BCDEFGHI
1EventEvent SpielerEvent ÜberweisungZugSpieler 1Spieler 2Überweisung
2Spieler (12345) überweist 5 zu Mareike123455112345Mareike5
3Mareike überweist 7 zu 12345 Mareike 72 Mareike 123457
4Mareike überweist 3 zu Joachim Mareike 33 Mareike Joachim3
5Joachim überweist 4 zu Mareike Joachim 44 Joachim Mareike4
6Joachim überweist 2 zu Michael Joachim 25 Joachim Michael2
7Spieler (12345) überweist 8 zu Hans123458612345Hans8
8Mareike überweist 1 zu 12345Hans17Hans123451

verwendete Formeln
Zelle Formel Bereich N/A
F2:F8=MAX($F$1:F1)+1
G2:G8=C2
H2:H8=WENNFEHLER(TEIL(B2;FINDEN("zu ";B2;12)+3;LÄNGE(B2)-FINDEN("zu ";B2;12));"")
I2:I8=D2
Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 19.07 einschl. 64 Bit


.xlsx   Vorlage - Rabe.xlsx (Größe: 16,6 KB / Downloads: 3)
[-] Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:
  • JaLo
Antworten Top
#7
Hallo
 
STRG-L und folgend war schon mal eine echte Hilfe! Danke. Mit den Formeln bin ich nicht zurecht gekommen. Habe nun die aktuelle Tabelle im Anhang.
 
Zu deinen Fragen:
 
1. Es gibt keinen Unterschied. Ich wollte damit nur kenntlich machen, dass es sich um das Spiel eines einzigen Probanden, also einer richtigen Person handelt. Jede Zeile gehört zu diesem einen Spiel, egal ob der Proband selbst an der Reihe ist oder die Agenten spielen. Es sind alles Daten einer Person.
 
2. Der Proband hat immer eine 5-stellige Nummer (hier 12345/ Klammern sind in dem Datensatz nicht vorhanden) und seine dazugehörigen Agenten haben Namen, also Text. Die Namen der Agenten sind bei jedem Probanden gleich. In jedem Spiel eines Probanden gibt es demnach eine 5-stellige ID für ihn + die Agenten Joachim, Mareike, Hans, usw. 
 
3. Das ist der interessante Teil, ja. Vorerst. Ich habe in dem vorigen Post versucht, die Reihenfolge zu beschreiben. Es stimmt, man benötigt die Überweisung und die Rücküberweisung. Ich habe ca. 100 Probanden. Wie unterscheidet man dann Joachim, Hans, etc.? Alle Probanden spielen mit denselben Agenten, es gibt aber unterschiedliche Werte. Dann besteht auch immer noch das Problem, dass die Daten pro ID sortiert sein müssten. ID in der Zeile, Rest der Daten in Spalten, so dass man dann 100 Zeilen mit den dazugehörigen Werten hat: Überweisung pro Runde, Rücküberweisung pro Runde, Agentenüberweisungen, Agentenrücküberweisungen (auch untereinander) und wenn machbar, die Ausgangswerte (die man berechnen müsste)
 
Nehme ich nur die ID und deren "Aktionen" bekomme ich sehr unterschiedliche Zahlen, weil die Agenten untereinander zufällig spielen. Der Proband bekommt auch mal was, also wäre eine Runde im Spiel auch mal so rum, dass einer der Agenten beginnt - Ausgangswert Joachim, Überweisung Joachim, Rücküberweisung ID, Rest Joachim. Wo ich das hier grad so auseinandernehme...zweifle ich es doch an, dass man das nach ID sortieren kann. 
 
Genau so müsste das ganz am Ende aussehen (Zieltabelle im Anhang).
 
Euch allen erst einmal schöne Weihnachten und Danke
Antworten Top
#8
Anhänge wurden leider nicht mit gesendet. Ich versuche es noch mal


Angehängte Dateien
.xlsx   Vorlage_Neu.xlsx (Größe: 12,44 KB / Downloads: 4)
.xlsx   Zieltabelle.xlsx (Größe: 12,89 KB / Downloads: 4)
Antworten Top
#9
Auf die Gefahr hin, hier Selbstgespräche zu führen Wink

Ich habe mir nun alles noch einmal genau angeguckt. Letztlich müsste die Tabelle (hatte hier nur einen Auszug angehängt) transponiert werden, allerdings zeilenweise. 

Ich habe nun dank @Rabe 17.600 Zeilen beginnend bei A2 mit jeweils drei Werten pro Spalte, beginnend bei B2, dann C2, dann D2. Nach 160 Zeilen beginnt immer eine neue Id (insgesamt also 110 IDs bzw. Personen). Aussehen tut das bisher so:

1. ID

B2, C2, D2
B3, C3, D3
B4, C4, D4
...
B160, C160, D160

2. ID


B161, C161, D161
B162,C162,D162
...
B321 C321, D321

bis hin zu 110. ID


B17442, C17442, D17442
B17443, C17443, D17443
...
B17601, C17601, D17601

Aussehen müsste das letztlich so: 

1. Zeile: B2,C2,D2, B3, C3, D3, B4, C4, D4, ... , B160, C160, D160
2. Zeile: B161, C161, D161,B162,C162,D162, ... , B321 C321, D321
3. Zeile: usw.
bis hin zur Zeile 110: B17442, C17442, D17442, B17443, C17443, D17443, ... , B17601, C17601, D17601

Vorerst wären zwar Namen in den Zellen, aber danach sollte es vielleicht kein Problem sein, Formeln einzufügen, die Ausgangswerte und Rest berechnen?! Aber vielleicht erst mal nur bis hier hin. Ich hoffe, ich habe nun nicht noch zusätzlich Verwirrung gestiftet.

Grüße
Antworten Top
#10
Hallöchen,

schaue Dir mal diesen Ansatz für den ersten Bereich an:
Tabellenblattname: Tabelle1
ABCDEFG
1ABCDEFG
2DEF
3GHI

Benutzte Formeln:
D1: =INDEX($A:$A;(SPALTE()+2)/3;1)
E1: =INDEX($B:$B;(SPALTE()+2)/3;1)
F1: =INDEX($C:$C;(SPALTE()+2)/3;1)
G1: =INDEX($A:$A;(SPALTE()+2)/3;1)
© schauan
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • JaLo
Antworten Top


Gehe zu:


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