Zellenbereiche m. Zahlen an anderer stelle sortiert aufliste

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Zellenbereiche m. Zahlen an anderer stelle sortiert aufliste

Re: Zellenbereiche m. Zahlen an anderer stelle sortiert aufliste

von WorstCases » Mi, 18.06.2008 10:18

Leute:

Nochmals Danke für die velen Tipps und für das verschieben meines falsch geposteten Beitrags.

Und mal allgemein für alle:
Ich habe mal meine Hausaufgaben gamacht, und 15 Minuten dafür investiert, in den Sinn hinter den Matrix-Formeln zu ergrünen. Ich kann nur sagen: Matrix-Formel machen auch für mich als Einsteiger Sinn, gerade dann, wenn die Formel nicht mal nur über 10 bis 20 Zeilen gehen soll...
Für alle, dienen Matrix-Formeln so wenig sagen, wie mir bisher:
Hier mal ein hilfeicher Link für Einsteiger: http://www.online-excel.de/excel/singsel.php?f=26

Gruß.
WorstCases

Re: Zellenbereiche m. Zahlen an anderer stelle sortiert aufliste

von Detlef42 » Mo, 16.06.2008 17:59

Der Weg ist das Ziel . .

für mich als Forumsleser.

Bin ich jetzt ein Philosoph?

Gruß

Detlef

Re: Zellenbereiche m. Zahlen an anderer stelle sortiert aufliste

von Gert Seler » Mo, 16.06.2008 08:46

Hallo Balu,
für einen Einsteiger ist es wahrscheinlicher einfacher zu verstehen, wenn anhand einer HilfsSpalte die Fomel nachvollzogen werden kann.
Bei Matrixformeln ist dies nicht unbedingt der Fall.
Da muß ich wohl Deine Formel übersehen haben. S o r r y ! ! !
Der letzte Punkt ist zum schmunzeln, wir erklären beide das gleiche und verstehen das nicht.

Es führen viele Wege nach Rom ! ! !
Das Ziel ist wichtig nicht der Weg dahin ! ! !

mfg
Gert

Re: Zellenbereiche m. Zahlen an anderer stelle sortiert aufliste

von balu » So, 15.06.2008 15:54

Hallo Gert,

Beweise hin oder her, hat nichts mit Justizia zu tun. Aber lassen wir das, sonst verwirren wir hier ja nur alle :wink:

Ist dein Vorschlag wirklich einfacher, gegenüber meine zuvor bekannt gemachte Formel?
Wohl kaum! Denn wenn man eine zusätzliche Spalte und zusätzliche Formeln einsetzen muss, dann hat einfachheit verloren :cry: .
Wenn es jedoch wirklich nicht anders geht, dann muss man halt zu solchen Mitteln greifen. Ich spreche aus aktueller erfahrung. Das hat aber nichts mit hier zu tun.
Meine (Karolus) Formel die ich da geschrieben hatte, kommt ohne Hilsspalte und ohne Matrixformel aus. Hier ist sie noch mal.

Code: Alles auswählen

=WENN(ISTFEHL(KKLEINSTE(B$5:B$20;ZEILE()));"";KKLEINSTE(B$5:B$20;ZEILE()))
Aber jetzt weiter darüber zu diskutieren welche besser ist, oder nicht, das geht schon in das Philosophische. Und das können wir uns ja wohl ersparen. :wink:

Gert Seler hat geschrieben: Dein Kommentar:
balu hat geschrieben:
Gert Seler hat geschrieben: Ob ich nun KKLEINSTE oder KGRÖSSTE als Formel verwende, es bringt als oberstes Ergebnis nur die kleinste oder die größte Zahl.
Falsch!
Es ist davon abhängig welchen Wert der Rang hat.
Mit dem letzten Satz kann ich nichts anfangen, bitte mal erklären.
Hatte ich doch schon weiter oben gemacht, hier noch mal zum nachlesen. Was für KKLEINSTE gilt, gilt auch für KGRÖSSTE nur in anderer Reihenfolge. Ich hoffe Du verstehst das. Ansonsten musst Du es sagen, und ich werde es noch mal detaillierter erklären. :D

Nicht nur Dir, sondern auch allen anderen noch einen schönen rest Sonntag. Mit hoffentlich schönen Sonnenschein. :D


Gruß
balu

Re: Zellenbereiche m. Zahlen an anderer stelle sortiert aufliste

von Gert Seler » So, 15.06.2008 14:43

Hallo Balu.
erst einmal wünsch ich Dir und allen anderen einen schönen erholsamen Sonntag.
Thema : Beweis antreten
Es liegt mir fern, in irgendeinem Internetforum Beweisführungen einzubringen. Die ja wohl eher in einer juristischen Auseinandersetzung
verlangt werden.
Mir geht es darum, OpenOffice_Calc - Einsteigern den Einstieg in dieses Modul zu erleichtern.
Speziell die Formelsuche und deren Handhabung sind selbst in der OpenOffice-Hilfe nicht immer optimal erklärt oder bedürfen einer
Hilfestellung. Ich schreibe 1.):
Zelle C5 eine 1 schreiben. In Zelle C6 die Formel :=WENN($B6<>"";$C5+1;""). Formel nach unten kopieren, gemischte Bezüge beachten.
In Zelle D5 folgende Formel eintragen :=KGRÖSSTE($B$5:$B$14;$C5)
Nach unten kopieren und "absolute" & "gemischte" Bezüge beachten.

2.) :
Ob ich nun KKLEINSTE oder KGRÖSSTE als Formel verwende, es bringt als oberstes Ergebnis nur die kleinste oder die größte Zahl.
Das letztendlich die nachfolgenden Werte Ab- oder Aufsteigend sortiert sind, sieht der User ja selbst.
Dein Kommentar:
Falsch!
Es ist davon abhängig welchen Wert der Rang hat.
Mit dem letzten Satz kann ich nichts anfangen, bitte mal erklären.
Also Beweise sollten in diesem Forum generell nicht gefordert werden. Nur wenn eine Formel nicht das tut, was von Ihr verlangt wird.

mfg
Gert

Re: Zellenbereiche m. Zahlen an anderer stelle sortiert aufliste

von balu » Sa, 14.06.2008 15:17

Hallo Gert,
Gert Seler hat geschrieben: ich weiß ja nicht, warum es unbedingt eine Matrix_Formel sein soll, wenn es auch einfacher geht.
Muss es ja auch nicht.
Aber wo ist denn dein Beweis dafür das es auch einfacher geht? Zeig ihn uns, deinen Beweis!


Gert Seler hat geschrieben: Ob ich nun KKLEINSTE oder KGRÖSSTE als Formel verwende, es bringt als oberstes Ergebnis nur die kleinste oder die größte Zahl.
Falsch!
Es ist davon abhängig welchen Wert der Rang hat.


Gert Seler hat geschrieben: Viel wichtiger erscheint es mir, das variable Bereiche mit : Einfügen ---->Namen .....>Festlegen einen Namen bekommen.
Die Wichtigkeit ergibt sich erst dann, wenn z.B. so eine kleine Formel sehr oft über sehr große Datenbereiche eingesetzt wird. Aber für nur einmal ist es NICHT zwingend, oder sehr wichtig.


Gert Seler hat geschrieben: Denn wie heißt es so schön ein Name sagt mehr als 1000 Worte.
Stimmt :wink:


Denk dran, wir warten auf deinen Beweis.


Gruß
balu

Re: Zellenbereiche m. Zahlen an anderer stelle sortiert aufliste

von Gert Seler » Sa, 14.06.2008 14:46

Hallo Zusammen,
ich weiß ja nicht, warum es unbedingt eine Matrix_Formel sein soll, wenn es auch einfacher geht.
Ob ich nun KKLEINSTE oder KGRÖSSTE als Formel verwende, es bringt als oberstes Ergebnis nur die kleinste oder die größte Zahl.
Später hat man dann sein Matrix_Erlebnis" da der Tastaturschlüssel nicht am Monitor klebt.
Viel wichtiger erscheint es mir, das variable Bereiche mit : Einfügen ---->Namen .....>Festlegen einen Namen bekommen.
Denn wie heißt es so schön ein Name sagt mehr als 1000 Worte.

mfg
Gert

Re: Zellenbereiche m. Zahlen an anderer stelle sortiert aufliste

von balu » Sa, 14.06.2008 10:00

Moin moin Leute,

@Christian
danke, jetzt hab ich das mit dem Matrixverhalten verstanden. :D

Zu dem Problem mit den Zitieren hier, könnte ich nur als tipp folgendes sagen.
Anstatt direkt am Zitatende, füge ich einen Zeilenumbruch ein und zusätzlich vor dem hier -> [/quote] noch ein leerzeichen ein. Auch bei der Code-Box [/code] mach ich das. Es ist wohl nicht immer der Fall das dies Funzt, aber ich fahre damit bis jetzt eigentlich recht gut. Bevor ich diesen Trick einsetze versuche ich es aber erst mal auf die normale weise. Und erst wenn das wieder alles durcheinander schmeißt, dann nehm ich den trick.


@WorstCases
Für deinen neuen Wunsch habe ich da rein zufälligerweise schon eine passende lösung parat.

Code: Alles auswählen

=WENN(ISTFEHL(KKLEINSTE(B$5:B$20;ZEILE()));"";KKLEINSTE(B$5:B$20;ZEILE()))
 
Diese Formel kannst Du aber nicht als Matrixformel einsetzen. Du musst sie von Hand nach unten kopieren.
An dieser Stelle geht ein "Danke schön" an Karolus. Denn er hatte sie in diesem Beitrag ausgefüllte Zellen automatisch suchen veröffentlicht.
Du kanst sie so wie sie ist irgendwo einsetzen, und deine Daten aus den Beiden Bereichen werden schön sortiert ausgegeben. Und es spielt auch keine Rolle ob in den Zellen B13 und B14 Text drin steht, oder gar nichts. Nur eins darf nicht sein, es dürfen in den beiden Zellen keine weiteren Zahlen stehen. Denn sonst funktioniert das nicht so wie Du es haben willst, und es müsste eine andere lösung daher.

Ich hoffe, das ist das was Du willst :wink:

Viel Spaß, und viel erfolg :D

Gruß
balu

Re: Zellenbereiche m. Zahlen an anderer stelle sortiert aufliste

von chrk » Sa, 14.06.2008 08:57

Hallo WorstCases,
Du hast Dich im Thread vertan. Das hast Du in Re: Zahlen aus Spalte sortiert in andere Spalte kopieren geschrieben:
WorstCases hat geschrieben:Klasse! Jetzt hab ichs verstanden.

Vielen Dank für die ausführlichen Erklärungen!

Wo das jetzt funktioniet würde ich die Formel gerne noch wie folgt erweitern. In Spalte B gibt es zwei ereiche, die ich gerne nach Größe sortieren möchte.

Beispiel anhand meines jetzt funktionsfähigen Codes:

Code: Alles auswählen

=KKLEINSTE(B$5:B$12;ZEILE(B1:B8))
Dieser Code liest jetzt die Zeilen B5 bis B12 ein. Weiter möchte ich in diesen Code noch enfügen, dass er auch die Zahlen aus den Zellen B15 bis B20 auflistet. Wie kann ich den Code entsprechend erweitern?
Du möchtest beide Bereiche in eine Liste sortieren? Als schnelle Lösung fällt mir dazu nur ein, beide Bereiche als einen zusammenhängenden zu behandeln, also $B5:$B20 und ZEILE(B1:B16) zu verwenden. Dann dürfen aber in den beiden Zellen zwischen den Bereichen keine Zahlen stehen, und Du müsstest damit leben, dass diese einen #Wert-Fehler am Ende der Liste produzieren. Ich bin mir nicht sicher, ob und wie man eine Mehrbereichsmatrix unterbringen kann, das wird alles sehr kompliziert, weil die anders ticken. - Das Zusammenspiel von Bereichsnummer und Index durchschaue ich da noch nicht ganz.

Re: Zellenbereiche m. Zahlen an anderer stelle sortiert aufliste

von chrk » Sa, 14.06.2008 08:27

balu hat geschrieben:Jetzt gibst Du meine Formel (nix gegen dich Christian :wink: )

Code: Alles auswählen

=KKLEINSTE(B$5:B$14;ZEILE(B1:B10))
Gar kein Problem, ich arbeite nur lieber mit dem Offset, weil ich da die Zeilennummer oberhalb (hier: 4) ablesenkann, anstatt die Zeilen im Array zu zählen :wink:

"Wenn Du die Formel aber mit strg+shift+enter, also als Matrixformel eingibst, dann wirst Du sehen das sich der Bereich bei ZEILE nicht ändert. Was aber bei dem von Hand runterkopieren der Fall ist. Und warum sich die Matrixformel so verhält, kann ich auch nicht so recht erklären. Das müsste jemand anderer machen, weil ich davon keine Ahnung habe."

Das ist ja der Trick der Matrixformel. Jede Zeile in der Matrix erhält einen internen Index. Du gibst ja in diese Matrixformel einen Bereich ein, wo die Formel einen einen einzelnen Wert erwartet, und das als relativen Bezug. Aus diesem Bereich nimmt sich jetzt die Matrixformel jeweils den zum Index der Zeile gehörenden Wert/Zellbezug.

"Ich weiss ja nicht mal wie man eine erstellte und funktionierende Matrixformel im nachhinein editieren kann. Weil ich das noch nie gemacht habe."

Du musst die ganze Matrix markieren, in der die Formel steht, dann bearbeiten und anschließend wieder mit <strg>+<shift>+<enter> als Matrix abschließen.

[edit]Jetzt bin ich es aber leid, die Forensoftware macht mir immer die Quotes kaputt, deshalb habe ich sie nach dem fünften Editieren des Beitrags in Anführungszeichen gesetzt!

Re: Zellenbereiche m. Zahlen an anderer stelle sortiert aufliste

von balu » Sa, 14.06.2008 00:10

Hallo WorstCases,

da hatte ich eben schon eine antwort verfasst, als ich sah das Christian schneller war. Und dabei dachte ich das man es versteht was da geschieht. Na dann mach ich das ganze doch noch.

Also.
Was sagt denn uns die Hilfe zu KKLEINSTE?
OpenOffice.org Hilfe hat geschrieben: KKLEINSTE
Berechnet den k-kleinsten Wert einer Datengruppe.

Syntax

KKLEINSTE (Daten; Rang K)
Daten ist die Matrix der Daten in der Stichprobe.
Rang K ist der Rang des Wertes.
Daten ist klar, der Bereich von B$5:B$14
Rang ist die Wertigkeit der Reihenfolge. Mit anderen Worten. Der Kleinste Rang erhält die 1, der nächst höhere niedrige erhält die 2, der nächste die 3, 4 ,5 ....usw. Das bedeutet, wenn ich von 10 - 20 die Kleinste haben möchte, dann gebe ich als Rang die 1 ein. Und erhalte als ergebnis die 10. Wenn ich jetzt aber aus dem gleichen Zahlenbereich den 4 ten Rang haben möchte, gebe ich die 4 ein und bekomme 13 raus.
Und in deinem Beispiel wäre das wie folgt.
Rang 1 ergebnis gleich 1
Rang 4 ergebnis gleich 10

Würde man jetzt aber den Rang direkt eingeben, und die Formel nach unten kopieren, dann bekäme man immer die gleiche Zahl dabei raus.
Und warum?
Aus dem einfachen grund, weil der Rang sich nicht ändert. Das muss er aber machen, denn wenn wir schon den Kleinsten Wert haben, dann wollen wir als nächstes ja den zweitkleinsten haben. Also muss eine Methode daher, die den Rangzähler um eins erhöht. Und dies macht ZEILE(B1:B10).
Zur veranschaulichung gib irgendwo in einem leeren tabellenbereich diese Formel ein.

Code: Alles auswählen

=ZEILE(B1:B10)
Und jetzt kopiere sie 20 Zeilen nach unten. Und was siehst Du?

Richtig! :D

Die Zahlen 1 - 20 schön untereinander aufgelistet. Und dadurch wird unser Rangindex automatisch weiter erhöht.
Jetzt gibst Du meine Formel (nix gegen dich Christian :wink: )

Code: Alles auswählen

=KKLEINSTE(B$5:B$14;ZEILE(B1:B10))
 
z.B. in C1 ein, und kopierst sie 10 Zeilen nach unten. Und schon ist deine Liste sortiert.

Wenn Du die Formel aber mit strg+shift+enter, also als Matrixformel eingibst, dann wirst Du sehen das sich der Bereich bei ZEILE nicht ändert. Was aber bei dem von Hand runterkopieren der Fall ist. Und warum sich die Matrixformel so verhält, kann ich auch nicht so recht erklären. Das müsste jemand anderer machen, weil ich davon keine Ahnung habe. Ich weiss ja nicht mal wie man eine erstellte und funktionierende Matrixformel im nachhinein editieren kann. Weil ich das noch nie gemacht habe.

Ich hoffe dir ist jetzt der ganze Ablauf etwas verständlicher geworden. :D


Bild
balu

Re: Zellenbereiche m. Zahlen an anderer stelle sortiert aufliste

von AhQ » Sa, 14.06.2008 00:09

=KKLEINSTE(B$5:B$14;ZEILE(D5:D14))

Also, fangen wir an: KKleinste ist die Formel, sie sucht im Bereich B$5:B$14 den Wert, der an der soviel kleinster Stelle steht, wie der Parameter nach dem Semikolon angibt. Wenn da 1 stünde, würde der Kleinste gesucht, bei einer 2 der 2.Kleinste etc.

Zeile() gibt Dir einfach wieder, in welcher Zeile Du dich befindest. Recht unspektakulär eigentlich. Da Du aber mit Deiner Aufgabenstellung den kleinsten Wert zuerst sucht und die Formel, Deinem Bild nach zu schließen, in D5 steht, würde an der Stelle ein ZEILE() den WERT 5 wiedergeben. daher hat Dir chrk das "-4" noch ans Herz gelegt, damit Du da letztlich den Wert 1 stehen hast (und eine Zeile drunter dann den Wert 2 etc).

Jetzt willst Du aber einen ganzen Bereich haben. Da kannst Du entweder die Formel =KKLEINSTE(B$5:B$14;ZEILE()-4)
in D5 schreiben und dann soweit ziehen, wie Du es brauchst, oder Du nimmst die Formel die oben steht und schließt die mit Strg+Shift+Enter ab.

Damit sagst Du Calc eigentlich nur, daß es die Formel im Bereich D5 bis D14 anwenden soll. Das nennt sich dann Matrix-Formel oder Array-Formel und ist, wenn man es mal kapiert hat, was wunderbares. Wenn Du dich mal in das Thema bißchen vetiefen willst, dann empfehl ich Dir folgende Seite. Da wird das ganze Thema sehr anschaulich an Beispielen erklärt.

Ist es jetzt klarer?

Viele Grüße
AhQ

Re: Zellenbereiche m. Zahlen an anderer stelle sortiert aufliste

von WorstCases » Fr, 13.06.2008 23:14

Wow! Jetzt funktioniert's tatsächlich.

Aber ich würde gerne noch verstenen, warum.

Nochmal am Beispiel von meinem Code:

Code: Alles auswählen

=KKLEINSTE(B$5:B$14;ZEILE(D5:D14)) 
Ich sage doch in dem ode B5:B14 - deklariere also, dass er bei B5 anfängt und B14 aufhört.
Also warum -4? Das geht mir nicht in den Kopf...

Kann mir bitte mal jemand kurz erläutern, was diese obere Codezeile beschreibt (von links nach rechts)?
Ich gehe wie gesagt davon aus, dass ich links die Datenquelle beschreibe und im rechten Teil die Datenausgabe. Richtig oder falsch?

Re: Zellenbereiche m. Zahlen an anderer stelle sortiert aufliste

von balu » Fr, 13.06.2008 23:03

Hallo WorstCases,

oder Du nimmst als alternative folgende Formel

Code: Alles auswählen

=KKLEINSTE(B$5:B$14;ZEILE(B1:B10))
 
strg+shift+enter nicht vergessen. Dann braucht man nämlich die Formel nicht von Hand runterkopieren. Wenn man es trotzdem macht, kommt das gleiche ergebniss dabei raus.

Gruß
balu

Re: Zellenbereiche m. Zahlen an anderer stelle sortiert aufliste

von chrk » Fr, 13.06.2008 22:27

Hallo,
WorstCases hat geschrieben: Wenn ich das richtig verstehe, legt A$2:A$8 den Bereich fest, von wo die Daten eingelesen werden sollen. Was bedeutet aber A1:A7? Ich dachte erst, das wäre der Bereich für die Daten-Ausgabe. Aber falls der Code oben nicht falsch ist, wüden dann die Daten ja dort ausgegeben werden, wo sie eingelesen werden. Aber bedinnend eine Zeile weiter oben.
Das heißt ZEILE(A1:A7), und den Funktionsnamen hast Du ja in Deiner Formel unten richtig eingesetzt. Die Funktion gibt in der Matrixformel den jeweiligen Rang zurück, in dem es Zeile für Zeile die Zeilennummern 1-7 einsetzt.
Der Code für meine Beispieltabelle sieht so aus: Zumindest der Anfang sollte richtig sein, oder?

Code: Alles auswählen

=KKLEINSTE(B$5:B$14;ZEILE(D5:D14)) 
Ich habe einen Screenshot mit meinem Versuch angehängt. Komich ist, dass einige Zahlen sortiert angezeigt werden, aber nicht alle. In einigen Ausgabefeldern werden nur "###" angezeit.

Kann mir mal bitte jemand auf die Sprünge helfen?
Das '###' heißt, das die Spalte zu schmal ist, den Zellinhalt anzuzeigen. In Deinem Fall steht da nämlich die Fehlerausgabe '#Wert', weil da höhere Ränge stehen, als die Anzahl der Werte in der Liste: Die Zeilen 5-14 geben genau diese Ränge zurück. Deshalb siehst Du im Screenshot in der sortierten Liste auch erst die Zahlen ab Rang 5. Du müsstest einen Offset berechnen, indem Du die Zeilennummer oberhalb der Liste subtrahierst:

Code: Alles auswählen

=KKLEINSTE(B$5:B$14;ZEILE(D5:D14)-4)
Eingabe als Matrixformel nicht vergessen.

Nach oben