Supportnet / Forum / Tabellenkalkulation
brauche (knifflige) Excel Formel
Frage
Hallo,
also ich habe ein excel dokument mit 2 reihen. In Reihe a stehen Zahlen, in Reihe b stehen artikelnamen. zB so:
A B
30 Gurke
10 Milch
50 Kartoffel
5 Gurke
17 Zwiebel
55 Milch
90 Gurke
Tabelle A zeigt an wieviel geld ich sozusagen mit dem in tabelle B danebenstehenden artikel verdient habe (nur ein schauliches beispiel, verkaufe in echt kein gemüse ;) )
Bisher habe ich die einträge aus tabelle A addieren lassen um so den gesamtgewinn zu errechnen und mit folgender tabelle errechne ich die anzahl [i]verschiedener[/i] Artikel:
{=SUMME(WENN(B2:B345<>"";1/ZÄHLENWENN(B2:B345;B2:B345)))}
In dem obigen Beispiel würde 4 herauskommen, weil es ja 4 verschiedene artikel sind.
Soweit so gut, aber ab hier wird es (für mein niveau) knifflig. und zwar hätte ich gerne irgendwo anderst angezeigt, was die 3 (oder 4 oder 5) artikel sind, mit denen ich am meisten eingenommen hab, und wieviel ich damit eingenommen hab. im obigen beispiel soll er mir also anzeigen (ungefähr):
1. Gurke: 125
2. Milch: 65
3. Kartoffel: 50
ist hier jemand vielleicht so fit in excel und kann dafür ne formel machen oder ist das unrealisierbar? wäre über hilfen dankbar!
gruß
Tonio
Antwort 1 von Saarbauer
Hallo,
die Sache ist mit Summenprodukt() und Rang() zu lösen
In einer Liste in der alle Artikel vorkommen
Z.B. Zelle D2 Gurke sschreibst du in
E2 =SUMMENPRODUKT((B2:B8=D2)*(A2:A8))
und in
F2 =RANG(E2;$E$2:$E$5;)
Wobei die Zellwenbezeichnung auf deine Bedürfnisse anzupassen sind
Gruß
Helmut
die Sache ist mit Summenprodukt() und Rang() zu lösen
In einer Liste in der alle Artikel vorkommen
Z.B. Zelle D2 Gurke sschreibst du in
E2 =SUMMENPRODUKT((B2:B8=D2)*(A2:A8))
und in
F2 =RANG(E2;$E$2:$E$5;)
Wobei die Zellwenbezeichnung auf deine Bedürfnisse anzupassen sind
Gruß
Helmut
Antwort 2 von nighty
hi tonio :)
beispiel :))
rang 1
D1=KGRÖSSTE(A1:A3;1)
E1=VERWEIS(KGRÖSSTE(A1:A3;1);A1:A3;B1:B3)
rang 2
D1=KGRÖSSTE(A1:A3;2)
E1=VERWEIS(KGRÖSSTE(A1:A3;2);A1:A3;B1:B3)
usw.
gruss nighty
beispiel :))
rang 1
D1=KGRÖSSTE(A1:A3;1)
E1=VERWEIS(KGRÖSSTE(A1:A3;1);A1:A3;B1:B3)
rang 2
D1=KGRÖSSTE(A1:A3;2)
E1=VERWEIS(KGRÖSSTE(A1:A3;2);A1:A3;B1:B3)
usw.
gruss nighty
Antwort 3 von rainberg
Hallo Tonio,
ich hab dich so verstanden.
In Tabelle1 Spalte A ab Zeile 2 abwärts stehen die Verkaufsstückzahlen und in Spalte B die Produkte.
Du willst nun in Tabelle 2 aufgelistet haben, welche Produkte zu welchen Zahlen verkauft wurden
Mein Vorschlag mit Spalte C in Tabelle1 als Hilfsspalte:
Tabelle1
C2
=WENN(ZÄHLENWENN(B$2:B2;B2)=1;MAX(C$1:C1)+1;"")
Tabelle2
A2
=WENN(ISTNV(VERGLEICH(ZEILE(Tabelle1!1:1);Tabelle1!C:C;0));"";INDEX(Tabelle1!B:B;VERGLEICH(ZEILE(Tabelle1!1:1);Tabelle1!C:C;0)))
B2
=WENN(A2="";"";SUMMEWENN(Tabelle1!B:B;A2;Tabelle1!A:A))
Alle Formeln kopierst du nach Bedarf nach unten.
Die Zeile 1 bleibt den Spaltenüberschriften vorbehalten.
Gruß
Rainer
ich hab dich so verstanden.
In Tabelle1 Spalte A ab Zeile 2 abwärts stehen die Verkaufsstückzahlen und in Spalte B die Produkte.
Du willst nun in Tabelle 2 aufgelistet haben, welche Produkte zu welchen Zahlen verkauft wurden
Mein Vorschlag mit Spalte C in Tabelle1 als Hilfsspalte:
Tabelle1
C2
=WENN(ZÄHLENWENN(B$2:B2;B2)=1;MAX(C$1:C1)+1;"")
Tabelle2
A2
=WENN(ISTNV(VERGLEICH(ZEILE(Tabelle1!1:1);Tabelle1!C:C;0));"";INDEX(Tabelle1!B:B;VERGLEICH(ZEILE(Tabelle1!1:1);Tabelle1!C:C;0)))
B2
=WENN(A2="";"";SUMMEWENN(Tabelle1!B:B;A2;Tabelle1!A:A))
Alle Formeln kopierst du nach Bedarf nach unten.
Die Zeile 1 bleibt den Spaltenüberschriften vorbehalten.
Gruß
Rainer
Antwort 4 von TonioKr
Hi, danke erstmal für die vielen antworten!
kriegs nur leider nicht so richtig hin das es sauber funktioniert. und zwar will ich die ergebnis nicht in ner extra tabelle anzeigen lassen , sondern nur in ner anderen spalte, also in Spalte A stehen die geldbeträge in Spalte B die artikel (also zB A2 zeigt an was B2 eingebracht hat). Nun soll im Feld C20 der name des artikels drinstehen welcher am meisten eingebracht hat( im Beispiel wär das "Gurke") und im Feld D20 soll der insgesamt mit diesem artikel eingebrachte betrag drinstehn (in dem beispiel also 125). wäre echt nett wenn mir noch jemand direkt für meine felder angepasste formeln nennen können, bin nämlich nicht so fortgeschritten was excel angeht.
gruß!
Tonio
kriegs nur leider nicht so richtig hin das es sauber funktioniert. und zwar will ich die ergebnis nicht in ner extra tabelle anzeigen lassen , sondern nur in ner anderen spalte, also in Spalte A stehen die geldbeträge in Spalte B die artikel (also zB A2 zeigt an was B2 eingebracht hat). Nun soll im Feld C20 der name des artikels drinstehen welcher am meisten eingebracht hat( im Beispiel wär das "Gurke") und im Feld D20 soll der insgesamt mit diesem artikel eingebrachte betrag drinstehn (in dem beispiel also 125). wäre echt nett wenn mir noch jemand direkt für meine felder angepasste formeln nennen können, bin nämlich nicht so fortgeschritten was excel angeht.
gruß!
Tonio
Antwort 5 von Saarbauer
Hallo,
ist es möglich mir die Liste mal zuzumailen?
Gruß
Helmut
ist es möglich mir die Liste mal zuzumailen?
Gruß
Helmut
Antwort 6 von TonioKr
klar, also ich hab sie mal hochgeladen: beispiel.xls
Das was eingekastet ist, soll er errechnen, ich habs im beispiel halt mal von hand reingeschrieben. danke schonmal im vorraus
gruß
tonio
Das was eingekastet ist, soll er errechnen, ich habs im beispiel halt mal von hand reingeschrieben. danke schonmal im vorraus
gruß
tonio
Antwort 7 von Saarbauer
Hallo,
ich habe es glabe ich so wie du es dir vorstellst und wie bekommst du es
Gruß
Helmut
ich habe es glabe ich so wie du es dir vorstellst und wie bekommst du es
Gruß
Helmut
Antwort 8 von TonioKr
hmm vielleicht per email? -> oracle50@arcor.de
danke schonmal im vorraus!
danke schonmal im vorraus!
Antwort 9 von Saarbauer
Hallo,
habe unter Verwendung des Teils von @rainberg
die Liste zusammengebaut, gute Idee . Kommt in mein Archiv
@ nighty, Funktuon heisst Sverweis() nicht Verweis()
Gruß
Helmut
habe unter Verwendung des Teils von @rainberg
Zitat:
=WENN(ZÄHLENWENN(B$2:B2;B2)=1;MAX(C$1:C1)+1;"")
=WENN(ZÄHLENWENN(B$2:B2;B2)=1;MAX(C$1:C1)+1;"")
die Liste zusammengebaut, gute Idee . Kommt in mein Archiv
@ nighty, Funktuon heisst Sverweis() nicht Verweis()
Gruß
Helmut
Antwort 10 von TonioKr
thx!!!

