freshman2017
Goto Top

Microsoft-Excel - Hilfe zu Formel zum Befüllen n. bestimmter Voraussetzung

Moin moin, ich hoffe Ihr könnt mir helfen bei einer Excel-Formel, um eine Preis-Spalte zu füllen.

Die Excel-Liste hat folgenden Spalten-Aufbau:

Spalte A: Artikelnummer (Aufbau: 100.11.22.111.111.111.111)
Spalte B: Preis (soll unter bestimmten Voraussetzungen gefüllt werden.)

Spalte C2: Wert (Preis) für Preiskategorie I
Spalte D2: Wert (Preis) für Preiskategorie II
Spalte E2: Wert (Preis) für Preiskategorie III
Spalte F2: Wert (Preis) für Preiskategorie IIII

Jetzt würde ich gerne, anhand der letzten 4 Blöcke der Artikelnummer (100.11.22.111.111.111.111) über eine Formel den Preis füllen.

- solange sich nur der letzte Block (100.11.22.111.111.111.111) ändert, soll Spalte B (Preis) mit Wert aus Spalte C2 Wert (Preis) für Preiskategorie I gefüllt werden
- sobald sich die letzten beiden Blöcke 100.11.22.111.111.111.111 ändern, soll Spalte B (Preis) mit Wert aus Spalte D2 Wert (Preis) für Preiskategorie II gefüllt werden
- sobald sich die letzten drei Blöcke 100.11.22.111.111.111.111 ändern, soll Spalte B (Preis) mit Wert aus Spalte E2 Wert (Preis) für Preiskategorie III gefüllt werden
- sobald sich die letzten vier Blöcke 100.11.22.111.111.111.111 ändern, soll Spalte B (Preis) mit Wert aus Spalte F2 Wert (Preis) für Preiskategorie IIII gefüllt werden

Ist das über eine Excel-Formel möglich?

Ich freue mich auf Eure Rückmeldungen.

Content-Key: 388669

Url: https://administrator.de/contentid/388669

Printed on: April 20, 2024 at 01:04 o'clock

Member: Pjordorf
Pjordorf Oct 06, 2018 at 21:24:01 (UTC)
Goto Top
Hallo,

Zitat von @freshman2017:
Spalte C2: Wert (Preis) für Preiskategorie I
Spalte D2: Wert (Preis) für Preiskategorie II
Spalte E2: Wert (Preis) für Preiskategorie III
Spalte F2: Wert (Preis) für Preiskategorie IIII
Das sind jetzt aber keien Spalten oder? Spalte A bis XFD gibbet und dann in jeder Spalte noch die Reihe und schon hast du Zellen. Redest du jetzt also von Zellen wenn du z.B. D2 sagts?

- solange sich nur der letzte Block (100.11.22.111.111.111.111) ändert, soll Spalte B (Preis) mit Wert aus Spalte C2 Wert (Preis) für Preiskategorie I gefüllt werden
Änderung ist was? Autos oder die Schuhfarbe oder die Rocklänge oder die Getränkefarbe und wie soll eine Änderung erkannt werden? Nur weil in den letzten 4 Blöcken kein 111.111.111.111 drin steht?

Ist das über eine Excel-Formel möglich?
Es gibt fast nicht was Excel nicht kann z.B. Kaffe Kochen und Würstchen reichen.

Gruß,
Peter
Mitglied: 137289
137289 Oct 07, 2018 updated at 16:00:38 (UTC)
Goto Top
solange sich nur der letzte Block (100.11.22.111.111.111.111) ändert,
Verstehe ich auch nicht.
  • Von was nach was ändert? Was ist die Referenz für den Unterschied?
  • Blöcke immer gleich lang oder unterschiedlich? Immer mit Punkt getrennt?

Es gibt fast nicht was Excel nicht kann z.B. Kaffe Kochen und Würstchen reichen.
Och, wenn man es ihm beibringt geht auch das face-smile.

Gruß speedlink
Member: freshman2017
freshman2017 Oct 08, 2018 updated at 07:37:19 (UTC)
Goto Top
Moin Peter,

danke für deine schnelle Antwort, leider komme ich erst jetzt dazu, Dir zu antworten.

Spalte C2: Wert (Preis) für Preiskategorie I
Spalte D2: Wert (Preis) für Preiskategorie II
Spalte E2: Wert (Preis) für Preiskategorie III
Spalte F2: Wert (Preis) für Preiskategorie IIII
Das sind jetzt aber keien Spalten oder? Spalte A bis XFD gibbet und dann in jeder Spalte noch die Reihe und schon hast du Zellen. Redest du jetzt also von Zellen wenn du z.B. D2 sagts?

Hierbei spreche ich von Zellen, nicht Spalten.


- solange sich nur der letzte Block (100.11.22.111.111.111.111) ändert, soll Spalte B (Preis) mit Wert aus Spalte C2 Wert (Preis) für Preiskategorie I gefüllt werden
Änderung ist was? Autos oder die Schuhfarbe oder die Rocklänge oder die Getränkefarbe und wie soll eine Änderung erkannt werden? Nur weil in den letzten 4 Blöcken kein 111.111.111.111 drin steht?


Solange alle letzten 4 Blöcke gleich sind, welche Buchstaben und Zahlen enthalten können, soll der Wert auf aus C2 genommen werden, solange nur noch drei Blöcke gleich sind, soll der Wert aus D2 genommen werden, usw. Es sollen hier nur die letzten 4 Blöcke verglichen werden.

Beste Grüße.
Mitglied: 137289
137289 Oct 08, 2018 updated at 08:25:25 (UTC)
Goto Top
Hier eine Beispielmappe dafür:
https://we.tl/t-qC7mSa0NPe

Modul erstellen und folgendes einfügen
Public Function GetPrice(rng As Range)
    Set regex = CreateObject("vbscript.regexp")  
    regex.Pattern = "([^\.]+)\.([^\.]+)\.([^\.]+)\.([^\.]+)$"  
    Set matches = regex.Execute(rng.Value)
    If matches.Count > 0 Then
        block1 = matches(0).submatches(0)
        block2 = matches(0).submatches(1)
        block3 = matches(0).submatches(2)
        block4 = matches(0).submatches(3)
        If block1 = block2 And block1 = block3 And block1 = block4 Then
            GetPrice = Application.Caller.Offset(0, 1).Value
        ElseIf block1 = block2 And block1 = block3 Then
            GetPrice = Application.Caller.Offset(0, 2).Value
        ElseIf block1 = block2 Then
            GetPrice = Application.Caller.Offset(0, 3).Value
        Else
            GetPrice = Application.Caller.Offset(0, 4).Value
        End If
    End If
End Function
Dann in die Zelle B2 eintragen:
=GetPrice(A2)
und dann Formel nach unten ziehen.

Gruß speedlink
Mitglied: 137289
137289 Oct 08, 2018 updated at 08:51:02 (UTC)
Goto Top
Oder als Nurformel ohne VBA und mit Hilfe von Hilfsspalten (nur um ellenlange Formeln zu verhindern):
https://we.tl/t-wCSP45LAEI
Member: freshman2017
freshman2017 Oct 08, 2018 at 11:31:14 (UTC)
Goto Top
Zitat von @137289:

Oder als Nurformel ohne VBA und mit Hilfe von Hilfsspalten (nur um ellenlange Formeln zu verhindern):
https://we.tl/t-wCSP45LAEI

Super Vielen lieben Dank, das mich schon einiges weitergebracht face-smile

Momentan ist die Formel ja so aufgebaut, dass sobald sich ein Block ändert, er dann die Preiskategorie wählt. Ich stelle mir jetzt noch vor, wenn ein Block ungleich einem bestimmten Wert ist, dann wählt er eine entsprechende PreisKategorie. Bsp.:

100.11.22.111.111.111.111 -> bestimmter Wert wäre 111

Jetzt wäre die ArtNr.: 100.11.22.111.111.111.111 dann würde er PreisKat 1 nehmen,
wenn ArtNr.: 100.11.22.111.555.111.111 dann würde er PreisKat 2 nehmen,
wenn ArtNr.: 100.11.22.111.555.111.555 dann würde er PreisKat 3 nehmen,
wenn ArtNr.: 100.11.22.111.555.555.555 dann würde er PreisKat 4 nehmen,
wenn ArtNr.: 100.11.22.555.555.555.555 dann würde er PreisKat 5 nehmen.
Mitglied: 137289
137289 Oct 08, 2018 updated at 12:33:16 (UTC)
Goto Top
Momentan ist die Formel ja so aufgebaut, dass sobald sich ein Block ändert, er dann die Preiskategorie wählt.
Nein, es vergleicht den Wert der ersten Spalte mit allen anderen.
Ich stelle mir jetzt noch vor, wenn ein Block ungleich einem bestimmten Wert ist, dann wählt er eine entsprechende PreisKategorie. Bsp.:
Na und? Wo ist das Problem, passe die WENN Formel deinen Bedürfnissen an, die nötigen Bestandteile der Nummern hast du ja schön in separate Spalten geliefert bekommen! Soweit sollte man nun eigentlich kombinieren können.