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.

Excel umbasteln, VBA?
#1
Hallo Zusammen,

ich arbeite seit 2 Wochen an einem Problem, welches mich in die Verzweiflung treibt.

Ich habe eine Tabelle.
In Spalte A stehen Artikelnummern.
In Spalte B stehen Kundennummern.
Ab dann folgen in Zweier Spalten Informationen zu Menge und Preis pro Monat.
Spalte C ist die Menge im Januar und Spalte D ist der Preis im Januar.
Spalte E ist die Menge im Februar und Spalte F ist der Preis im Februar.

Das Ganze dann über einen Zeitraum von Januar 2019 bis Dezember 2022.

Für diesen Zeitraum möchte ich nun eine Funktion in Excel basteln mit welcher ich bewerten kann, ob der Preis über einen bestimmten Zeitraum gefallen ist. Das bekomme ich auch eigentlich hin, dank des Forums hier. Aber das ist nicht mein Problem.

Mein Problem ist dass unterschiedliche Mengen unterschiedliche Preise pro Stück haben und ich NUR gleiche Mengen miteinander vergleichen möchte.

In der jetzigen Tabelle sind diese unterschiedlichen Mengen in einer Reihe.

Die Tabelle müsste so aufgestellt sein, dass dazu nur noch die Preise über die genannten Monate in einer Reihe sind, sofern Artikelnummer, Kundennummer und Menge gleich sind.
Mit Pivot ist es etwas bastelei, aber so bekomme ich die Übersicht fast schon so hin wie ich sie zur weiteren Bearbeitung brauche, aber eben nicht ganz.

Mit rudimentären VBA Kenntnissen und ChatGPT versuche ich nun seit 2 Wochen eine Lösung zu finden, aber es wird nicht besser sondern schlimmer.

Wie würdet ihr das Ganze angehen? Ich bin für jeden Tip dankbar.
Antworten Top
#2
Hi,


Zitat:Ab dann folgen in Zweier Spalten Informationen zu Menge und Preis pro Monat.


...aha... und das geht dann weiter bis? 2036? Wer soll denn da den Überblick behalten?
Erstell Dir eine Produkttabelle mit ID und eine Preistabelle, in der Du für jede Preisänderung jeder Produkt ID das Datum einträgst, ab wann die gelten soll und was dann der neue Preis ist... 
Und dort kannst Du dann nachsehen, welcher Preis zu welchem Datum berechnet werden soll.
Kann mir jedenfalls nicht vorstellen, das ihr euch monatlich neue Preise für alle Produkte ausdenkt...
Vermutlich wird Dir selbst ChatGPT nicht bei fehlenden Kenntnissen zu einer vernünftig organisierten Datenstruktur helfen können. Es gibt immer noch Dinge, die setzen einfach den Einsatz des eigenen Kopfes voraus...
KI ist kein Allheilmittel bei völliger oder überwiegender Unwissenheit...
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#3
Wo hatte ich geschrieben dass es bis 2036 gehen soll?

Auch mangelt es nicht an Kenntnis darüber wie eine vernünftige Datenstruktur aussieht, sondern daran dass eine solche einfach nicht vorhanden ist. Sonst wäre ich ja auch nicht gezwungen als Nicht IT-ler und Mensch mit wenig IT Kenntnissen mich mit so etwas auseinander zu setzen. Wir bekommen demnächst SAP HANA und dann soll alles besser werden, was ich allerdings bezweifle.

Sofern also jemand behilflich sein kann, würde ich mich nach wie vor sehr freuen!
Antworten Top
#4
(03.01.2023, 00:40)BenBrix77 schrieb: Wo hatte ich geschrieben dass es bis 2036 gehen soll?

Auch mangelt es nicht an Kenntnis darüber wie eine vernünftige Datenstruktur aussieht, sondern daran dass eine solche einfach nicht vorhanden ist. Sonst wäre ich ja auch nicht gezwungen als Nicht IT-ler und Mensch mit wenig IT Kenntnissen mich mit so etwas auseinander zu setzen. Wir bekommen demnächst SAP HANA und dann soll alles besser werden, was ich allerdings bezweifle.

Bitte Satzzeichen beachten. Außerdem ist es egal, ob der Unsinn nur bis Ende 2022 oder bis 2036 geht.

Wenn keine vernünftige Datenstruktur vorhanden ist, dann bedeutet das, dass entweder keine oder eben nur eine chaotische vorhanden ist.
Im 1. Fall solltest Du Deine vorhandenen Kenntnisse nutzen und eine erstellen, im 2. wäre eine Adaption denkbar. Nur... kann das niemand von hier machen, weil keiner die Ausgangsvoraussetzungen kennt. Da müsste aber jemand sehr viel Zeit und Liebe aufbringen, um alle offenen Fragen zu klären...

Aber... eine Firma, die sich SAP leisten kann, die hat eine IT Abteilung. Und die ist dafür zuständig, nicht Du, als Nicht IT-ler. Auch sind Foren keine Personalersatzbank für überforderte IT-Abteilungen (die sicher bis über beide Ohren in der SAP-Vorbereitung steckt).

Wenn es so wichtig für die Firma ist, dann könnt ihr euch an einen Dienstleister wenden. Der kann dann die Sache von A - Z vor Ort analysieren und organisieren. Denn genau für solche Fälle sind die da...
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#5
Satzzeichen kann ich leider nur begrenzt beachten. Ich weiß dass es dabei hilft, verständlich zu sein. Ich bin aber eigentlich Engländer, spreche zwar nahezu perfekt deutsch da ich hier seit 20 jahren lebe und Ortographie nicht zu meinen Stärken gehört. Daher bitte ich im Voraus um Entschuldigung.

Auch ist die Lösung des Problems für unser Unternehmen unwichtig. (Leider). Unsere IT ist hoffnungslos veraltet und überlastet.

Ich selbst habe mit einem C64 angefangen, ein wenig Basic gelernt und eigene kleine Programme geschrieben. Später dann auf Win 95 Systemen versucht Spiele ans Laufen zu bringen. Das Gefühl, Probleme zu lösen war teiilweise befriedigender als das Spielen selbst. Irgendwann habe ich entdeckt dass man in Excel sehr vieles mit kleinen Makros vereinfachen kann. Für Mehr reichen meine Kenntnisse leider nicht aus und im Nachhinein bedauere ich sehr dass ich mich damit nicht intensiver oder beruflich beschäftigt habe. In meinem Alter ist es auch nicht mehr so leicht das Alles nachzuholen. Dennoch fasziniert mich die IT und meiner Meinung nach unterschätzen sehr viele Unternehmen sehr massiv (auch das in dem ich arbeite) die Möglichkeiten die einem eine gute Datenstruktur inkl. gut überlegter IT bietet.

Zu dem Problem dass ich geschrieben habe - ich brauche das nicht beruflich sondern eher für "Peace of Mind". Es beschäftigt mich übermäßig das nicht lösen zu können. Ich hätte nicht Mal ein Problem damit diese Leistung zu entlohnen. Ich erwarte auch nicht das mir irgendjemand einen vollen VBA Code hier reinstellt. Es wäre schon hilfreich zu erfahren wie ihr, grob umrissen, diese Aufgabenstellung angehen würdet. Würdet ihr einen Dictionary in VBA anlegen und denn dann auslesen lassen, etc.?

Ich respektiere und verstehe es auch, wenn jemand keine Lust hat hierauf zu antworten, so ein Forum ist ja natürlich freiwillig.

Grüße
Antworten Top
#6
Hei Ben,

das Grundproblem wurde ja bereits angesprochen, es liegt genau hier:


Zitat:Spalte C ist die Menge im Januar und Spalte D ist der Preis im Januar.

Spalte E ist die Menge im Februar und Spalte F ist der Preis im Februar.


so baut man keine Listen auf, weil das die Auswertung verkompliziert. So etwas gehört in einzelne Zeilen. Nur dann kann Excel seine Funktionalität entfalten.
Hoffe geholfen zu haben
Hubert
Antworten Top
#7
Zitat:ich arbeite seit 2 Wochen an einem Problem, welches mich in die Verzweiflung treibt.
Und ohne Beispieldatei treibst du uns auch dorthin.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#8
(03.01.2023, 09:41)BenBrix77 schrieb:  - ich brauche das nicht beruflich sondern eher für "Peace of Mind". Es beschäftigt mich übermäßig das nicht lösen zu können. Ich hätte nicht Mal ein Problem damit diese Leistung zu entlohnen. Ich erwarte auch nicht das mir irgendjemand einen vollen VBA Code hier reinstellt. Es wäre schon hilfreich zu erfahren wie ihr, grob umrissen, diese Aufgabenstellung angehen würdet. Würdet ihr einen Dictionary in VBA anlegen und denn dann auslesen lassen, etc.?

Ich esse unheimlich gern, kann aber nicht gut kochen. Da ich das weiß, ärgere ich mich nicht übermäßig, wenn es mal nicht schmeckt, freue mich aber, falls es doch gelungen ist. Sich zu ärgern, wenn das, was man nicht beherrscht, nicht gelingt, ist aus meiner Sicht die falsche Herangehensweise... 
Darauf zu bestehen, die Temperatur zu erhöhen statt, wie von Fachköchen empfohlen, weniger Salz zu verwenden, trägt ebenfalls nicht zur Verbesserung des Geschmacks bei...

Noch mal (einen Lösungsansatz hatte ich schon im Post #2 gegeben), Dir ist nicht mit einem VBA Code (erhöhter Temperatur) geholfen solange das Grundproblem nicht behoben wurde. Und das Grundproblem ist und bleibt die geschilderte Datenstruktur. Sie (also eine durchdachte Struktur - weniger Salz) ist die Basis einer vernünftigen Datenverarbeitung. Du willst den 25. Schritt vor dem ersten machen...
Google mal nach Datennormalisierung...
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

[-] Folgende(r) 1 Nutzer sagt Danke an Ralf A für diesen Beitrag:
  • HubertK
Antworten Top
#9
Normalisierte Daten:

Code:
Sub M_snb()
  sn = sheet1.Cells(1).CurrentRegion
  ReDim sp(UBound(sn) * (UBound(sn, 2) - 2) \ 2, 4)
 
  For j = 1 To UBound(sn)
    For jj = 3 To UBound(sn, 2) Step 2
      sp(n, 0) = sn(j, 1)
      sp(n, 1) = sn(j, 2)
      sp(n, 2) = sn(j, jj)
      sp(n, 3) = sn(j, jj + 1)
      n = n + 1
    Next
  Next
 
  sheet1.Cells(20, 1).Resize(UBound(sp), UBound(sp, 2)) = sp
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#10
Ich habe es nun geschafft, die Tabelle in eine neue Form zu bringen.

Spalte A ist die Artikelnummer.

Spalte B ist die Kundennummer.

Spalte C ist die Menge.

In den Spalten von D nach rechts dann die einzelnen Monate von Jan 19 bis Dez 22.



Habe das Gefühl einen gehörigen Schritt weiter zu sein.

Nun hat aber jede Kombination eine eigene Zeile.


Siehe hier


   

Jemand einen Tip ? :/ . Stimmt es das Excel bald VBA nicht mehr unterstützen wird? Grüße
Antworten Top


Gehe zu:


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