Tabellenkalkulationsformel zur Anzeige der aktuellsten Preise

Tabellenkalkulationsformel zur Anzeige der aktuellsten Preise

Ich habe eine LibreOffice Calc-Tabelle mit den Spalten A bis C erstellt. In Spalte A habe ich eine Liste der gekauften Teile (in chronologisch aufsteigender Reihenfolge). In Spalte B habe ich eine Liste der entsprechenden Preise. In Spalte C möchte ich dieletzter Kaufpreisfür den aktuellen Teil.

Folgendes habe ich mir dazu ausgedacht:

=INDIRECT(CONCATENATE("B",TEXT(MATCH(A8,A1:A7,1),"#")))

Grundsätzlich funktioniert es, aber es gibt zwei Probleme:

  1. Es ist sehr kompliziert. Gibt es einen einfacheren Weg, dies zu erreichen?
  2. Wenn das Teil noch nie zuvor gekauft wurde, wird der Preis des Teils in der Zeile darüber angezeigt.

UPDATE: Nach weiteren Tests funktioniert es definitiv nicht wie erwartet. Ich kann nicht sagen, ob es sich um einen Fehler in der MATCH-Funktion handelt oder ob es sich nicht um die geeignete Funktion für den Job handelt. Die MATCH-Funktion findet „kleiner oder gleich“, und ich denke, die Bedingung „kleiner“ verursacht Probleme.

Antwort1

Dies ist ein ziemlich ähnliches Problem wieWie kann ich mit SVERWEIS diezuletztübereinstimmen?. ALösungvon Excellll entspricht ziemlich genau Ihren Anforderungen.

=INDEX(IF($A$1:$A$1000=A1,$B$1:$B$1000),MAX(IF($A$1:$A$1000=A1,ROW($A$1:$A$1000))))

Ich habe die Nachschlagebereiche beliebig groß gemacht. Sie können einen großen Bereich verwenden, sodass Sie die Formel nicht anpassen müssen, wenn Sie weitere Daten hinzufügen. Mein Testbeispiel hatte nur sechs Einträge; die nicht verwendeten Zeilen stimmen mit nichts überein und werden daher ignoriert.

Dies ist die Formel, die in C1 eingefügt wird, das Nachschlageziel ist also A1 (zwei Standorte).

Die Funktion MAX findet die Zeile mit der höchsten übereinstimmenden Nummer (in chronologischer Reihenfolge, also die aktuellste).

Es handelt sich um eine Matrixformel, daher muss sie mit Strg-Umschalt-Eingabe eingegeben werden. Sobald C1 eingegeben ist, können Sie die Zelle mit Strg-C kopieren, bei Bedarf einen Zellbereich auswählen und mit Strg-V einfügen. Wenn Sie weitere Daten hinzufügen möchten, kopieren und fügen Sie einen weiteren Zellblock ein.

Oder packen Sie dies in einen Test mit leeren Zellen und füllen Sie mehr Zellen vorab aus, als Sie jemals benötigen werden:

=IF(ISBLANK(A1),"",formula_above)

Bei diesem Ansatz bleiben die vorab ausgefüllten Zellen leer, bis Sie Daten für die Zeile hinzufügen.

verwandte Informationen