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.

Auswertung Einsparung
#1
Hallo zusammen,


ich bin neu hier und hoffe, dass mir jemand helfen kann. Folgendes Problem:

Ich habe hier eine Tabelle mit ca. 1200 Zeilen. Jede Zeile ist ein einzelner Vorgang bzw. eine Bestellung. Nun gibt es folgende Spalten: A - Artikelnummer (diese kommt häufig mehrfach vor, wenn der Artikel mehrfach bestellt wurde), B - Lieferant, C - Bestellmenge, D - Preis pro Stück

Nun will ich Excel dazu bringen, dass es aus dieser Masse an Zahlen eine Tabelle macht wo in Spalte A die Artikelnummer nur einmal steht und ab Spalte B sollen dann die unterschiedlichen Vorgänge stehen.

Ich hab da mal ein Beispiel gebaut. Ich denke, dass das nur mit VBA machbar ist. Hat da wer einen guten Ansatz?


Angehängte Dateien
.xlsx   Beispiel Forum.xlsx (Größe: 8,97 KB / Downloads: 21)
Antworten Top
#2
Hallo, meinst du so..? Aber ich bekomme zum Teil andere Erbegnisse..!?!?

Arbeitsblatt mit dem Namen 'Tabelle1'
 ABCDEFGHIJ
22Art.-Nr.LieferantMengePreisLieferantMengePreisLieferantMengePreis
23123456Alpha5001000Alpha700087Bravo2500356
24341527Charlie78125      
25412589Bravo2500498      
26562348Bravo250030      
27987654Alpha500851Charlie2501250Alpha5000385

ZelleFormel
A23=MIN(B3:B11)
B23=SVERWEIS(A23;$B$3:$C$11;2;0)
C23=INDEX($D$2:$D$11;AGGREGAT(15;6;ZEILE($A$2:$A$11)-1/($C$2:$C$11=B23);1))
D23=INDEX($E$2:$E$11;AGGREGAT(15;6;ZEILE($A$2:$A$11)-1/($B$2:$B$11=A23);1))
E23=WENNFEHLER(INDEX($C$2:$C$11;AGGREGAT(15;6;ZEILE($A$2:$A$11)-1/($B$2:$B$11=A23);2));"")
F23=WENNFEHLER(INDEX($D$2:$D$11;AGGREGAT(15;6;ZEILE($A$2:$A$11)-1/($B$2:$B$11=A23);2));"")
G23=WENNFEHLER(INDEX($E$2:$E$11;AGGREGAT(15;6;ZEILE($A$2:$A$11)-1/($B$2:$B$11=A23);2));"")
H23=WENNFEHLER(INDEX($C$2:$C$11;AGGREGAT(15;6;ZEILE($A$2:$A$11)-1/($B$2:$B$11=A23);3));"")
I23=WENNFEHLER(INDEX($D$2:$D$11;AGGREGAT(15;6;ZEILE($A$2:$A$11)-1/($B$2:$B$11=A23);3));"")
J23=WENNFEHLER(INDEX($E$2:$E$11;AGGREGAT(15;6;ZEILE($A$2:$A$11)-1/($B$2:$B$11=A23);3));"")
A24=WENN(MAX($B$3:$B$11)=MAX(A$23:A23);"";KGRÖSSTE($B$3:$B$11;ZÄHLENWENN($B$3:$B$11;">"&A23)))
B24=SVERWEIS(A24;$B$3:$C$11;2;0)
C24=INDEX($D$2:$D$11;AGGREGAT(15;6;ZEILE($A$2:$A$11)-1/($C$2:$C$11=B24);1))
D24=INDEX($E$2:$E$11;AGGREGAT(15;6;ZEILE($A$2:$A$11)-1/($B$2:$B$11=A24);1))
E24=WENNFEHLER(INDEX($C$2:$C$11;AGGREGAT(15;6;ZEILE($A$2:$A$11)-1/($B$2:$B$11=A24);2));"")
F24=WENNFEHLER(INDEX($D$2:$D$11;AGGREGAT(15;6;ZEILE($A$2:$A$11)-1/($B$2:$B$11=A24);2));"")
G24=WENNFEHLER(INDEX($E$2:$E$11;AGGREGAT(15;6;ZEILE($A$2:$A$11)-1/($B$2:$B$11=A24);2));"")
H24=WENNFEHLER(INDEX($C$2:$C$11;AGGREGAT(15;6;ZEILE($A$2:$A$11)-1/($B$2:$B$11=A24);3));"")
I24=WENNFEHLER(INDEX($D$2:$D$11;AGGREGAT(15;6;ZEILE($A$2:$A$11)-1/($B$2:$B$11=A24);3));"")
J24=WENNFEHLER(INDEX($E$2:$E$11;AGGREGAT(15;6;ZEILE($A$2:$A$11)-1/($B$2:$B$11=A24);3));"")
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg
Gruß Jörg
ich muss mich erst wieder ganz langsam heran robben. Also bitte ich um Nachsicht

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
[-] Folgende(r) 1 Nutzer sagt Danke an Jockel für diesen Beitrag:
  • MuHA1981
Antworten Top
#3
Hallo,

das geht z.B. mit nur zwei Matrixfunktion(alität)sformeln die im Gegensatz zu echten Matrixformeln keines spez. Formelabschlusses bedürfen, aber wie solche "arbeiten" nur mE einfacher zu konstruieren und schneller auswertend

Bezogen auf Dein Beispieldaten so:

In A15: =WENNFEHLER(AGGREGAT(15;6;B$3:B$12/(ZÄHLENWENN(A$14:A14;B$3:B$12)=0)/(B$3:B$12>0);1);"")

und Formel nach unten ziehend kopieren.

in B15: =WENNFEHLER(INDEX($C:$E;AGGREGAT(15;6;ZEILE(C$3:C$12)/($B$3:$B$12=$A15);KÜRZEN(SPALTE(C1)/3;));1+REST(SPALTE(C1);3));"")

und Formel nach unten und rechts ziehend kopieren.

Bei 1200 Datensätzen könnten es natürlich über 6000 Formeln werden, die natürlich etwas Zeit brauchen werden.
Gruß Werner
.. , - ...
[-] Folgende(r) 1 Nutzer sagt Danke an neopa für diesen Beitrag:
  • MuHA1981
Antworten Top
#4
(21.02.2017, 18:52)neopa schrieb: Hallo,

das geht z.B. mit nur zwei Matrixfunktion(alität)sformeln ...

Hallo Werner, das sehe ich nicht unbedingt so, wenn die Artikelnummern wirklich richtige Zahlen sind, braucht man für deren Auflistung kein AGGREGAT()...
Gruß Jörg
ich muss mich erst wieder ganz langsam heran robben. Also bitte ich um Nachsicht

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
Antworten Top
#5
Hallo Jörg,

natürlich könnte man die Auflistung der duplettenfreien Artikelnummern auch ohne AGGREGAT() mit nur einer Formel lösen (man könnte die Artikelnummern auch ganz ohne Formel mit PIVOT lösen, wäre aber hier mE ein "Stilbruch").
Für mich persönlich war/ist es aber so die einfachste Lösung (außerdem hatte ich erst vor, die ganze Tabelle anstelle mit zwei mit nur einer Formel zu lösen, was ich dann aber verworfen habe, weil   so eine schnellere Auswertung möglich sein dürfte)

In Deiner Formel für Spalte C  hast Du noch einen inkorrekten Bezug , so dass Du da Abweichungen von der Vorgabe hast.
Gruß Werner
.. , - ...
Antworten Top
#6
(21.02.2017, 19:36)neopa schrieb: Hallo Jörg,
...
In Deiner Formel für Spalte C  hast Du noch einen inkorrekten Bezug , so dass Du da Abweichungen von der Vorgabe hast.

Hi Werner, jupp habe ich später auch bemerkt, das war mit heißer Nadel gestrickt... ... nun habe ich aber keine Lust das Ganze nochmal zu ändern - das sollte {bei Interesse} der TE hinkriegen...
Gruß Jörg
ich muss mich erst wieder ganz langsam heran robben. Also bitte ich um Nachsicht

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
Antworten Top
#7
Hallo Jörg,


Zitat:... nun habe ich aber keine Lust das Ganze nochmal zu ändern -

brauchst Du ja auch nicht, der TE kann ja auch gleich auf meine 2 Formel-Lösung zurückgreifen
Gruß Werner
.. , - ...
Antworten Top
#8
(21.02.2017, 18:52)neopa schrieb: Hallo,

das geht z.B. mit nur zwei Matrixfunktion(alität)sformeln die im Gegensatz zu echten Matrixformeln keines spez. Formelabschlusses bedürfen, aber wie solche "arbeiten" nur mE einfacher zu konstruieren und schneller auswertend

Bezogen auf Dein Beispieldaten so:

In A15: =WENNFEHLER(AGGREGAT(15;6;B$3:B$12/(ZÄHLENWENN(A$14:A14;B$3:B$12)=0)/(B$3:B$12>0);1);"")

und Formel nach unten ziehend kopieren.

in B15: =WENNFEHLER(INDEX($C:$E;AGGREGAT(15;6;ZEILE(C$3:C$12)/($B$3:$B$12=$A15);KÜRZEN(SPALTE(C1)/3;));1+REST(SPALTE(C1);3));"")

und Formel nach unten und rechts ziehend kopieren.

Bei 1200 Datensätzen könnten es natürlich über 6000 Formeln werden, die natürlich etwas Zeit brauchen werden.

Hallo zusammen und vielen Dank für die Antworten. Im Beispiel klappt das auch ganz super. :18:  Jetzt hab ich versucht, das Ganze einfach unter meine Liste, also in Zelle A1171 zu beginnen und die Formel umgebaut in:

=WENNFEHLER(AGGREGAT(15;6;B$2:B$1167/(ZÄHLENWENN(A$2:A2;B$2:B$1167)=0)/(B$2:B$1167>0);1);"")

Leider funktioniert das dann nicht mehr. Beim runterziehen wird mir immer die gleiche Artikelnummer angezeigt. :16:
Antworten Top
#9
Hallo,

Deine Formelanpassung war auch nicht korrekt. Richtig muss es in A1171 so lauten:

=WENNFEHLER(AGGREGAT(15;6;B$2:B$1167/(ZÄHLENWENN(A$1170:A1170;B$2:B$1167)=0)/(B$2:B$1167>0);1);"")
Gruß Werner
.. , - ...
[-] Folgende(r) 1 Nutzer sagt Danke an neopa für diesen Beitrag:
  • MuHA1981
Antworten Top
#10
(22.02.2017, 10:48)neopa schrieb: Hallo,

Deine Formelanpassung war auch nicht korrekt. Richtig muss es in A1171 so lauten:

=WENNFEHLER(AGGREGAT(15;6;B$2:B$1167/(ZÄHLENWENN(A$1170:A1170;B$2:B$1167)=0)/(B$2:B$1167>0);1);"")

Danke auch hierfür noch mal. Das hat super geklappt. Problem ist wohl, dass ich nicht ganz verstehe, was die Formel macht. Selbstverständlich habe ich auch gleich versucht, die zweite Formel dann in Zelle B1171 zu bauen. Leider komme ich auch hier nicht weiter. Hier mein Entwurf:

=WENNFEHLER(INDEX($C:$E;AGGREGAT(15;6;ZEILE(C$2:C$1167)/($B$2:$B$1167=$A2);KÜRZEN(SPALTE(C1)/3;));1+REST(SPALTE(C1);3));"")

Die Formel wird zwar gefressen, die Zelle(n) bleiben aber leer. Tut mir echt leid, dass ich so nervig bin.
Antworten Top


Gehe zu:


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