Autor Thema: @dblookup Suche und bei Nichtübereinstimmung den nächsten Wert nehmen  (Gelesen 3233 mal)

Offline lusik

  • Frischling
  • *
  • Beiträge: 5
Hallo

Ich habe eine kleine Tabelle mit MwSt-Sätzen.

1. Spalte 2. Spalte
1.1.1995  6.5%
1.1.1996  6.5%
1.1.1999  7.5%
1.1.2001  7.6%
1.1.2011  8.0%
1.1.2018  7.7%

Gibt es in Notes eine Möglichkeit mit @dblookup die Tabelle zu durchsuchen und den Wert auszulesen, ohne das exakte Suchdatum zu verwenden? Beispiel: Mit der Suche nach dem 19.12.2017 müssten mir dann die Werte aus Zeile mit Datum 1.1.2011 ausgegeben werden.  (analog sverweis() in Excel)

Danke für jeden Hinweis.

Gruss lusik

Offline eknori (retired)

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.742
  • Geschlecht: Männlich
@dblookup geht immer auf den Wert, der übergeben wird. Daher wird das so nicht funktionieren, wie du es dir vorstellst.

Mit script ließe sich was machen, aber mit @formula ...
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Du könntest mit zwei @DBColumns die beiden Spalten als Liste auslesen und dann mit einer @Do-Schleife durch die erste Liste gehen, bis das Datum passt und dann den entsprechenden Wert aus der zweiten Liste nehmen.

Offline lusik

  • Frischling
  • *
  • Beiträge: 5
der Gedanke kam mir auch, aber ich hoffte auf eine einfachere Lösung ;-)  aber herzlichen Dank!

Gruss lusik

Offline ronka

  • Senior Mitglied
  • ****
  • Beiträge: 378
  • Was macht der hier denn, muß der überall sein ?
    • das nächste DominoCamp kommt in Juni 2023
Mit den 2 @DBcolumn kannst du 2 felder füllen, MwStDatum und MwStSaetze.
Dann kannst du dir das berechnen z.B. mit folgenden @Formel.

EL := @Elements(MwStDatum);
@If( Datum <= MwStDatum[1] ; @Do( @SetField( "Wert" ; MwStSaetze[1] ) ; @Return("") ); "");
@If( Datum >= MwStDatum[EL] ; @Do( @SetField( "Wert" ; MwStSaetze[EL] ) ; @Return("") ); "");
Res := -1;
@For(i := 1; i <= EL; i := i + 1; @If ( MwStDatum <= Datum ; @If (MwStDatum[i+1] > Datum ; Res := i ; "") ; "" ) );
@If ( Res = -1 ; @Return(""); "" );
@SetField( "Wert" ; MwStSaetze[Res] );
@Command([ViewRefreshFields])
das neueste von Notes und Domino auf den DominoCamp vom 19 bis 21 Juni 2023 auf www.DominoCamp.de

Offline lusik

  • Frischling
  • *
  • Beiträge: 5
ganz herzlichen Dank! Das hilft weiter!

Gruss lusik

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz