Autor Thema: @dblookup Suche und bei Nichtübereinstimmung den nächsten Wert nehmen  (Gelesen 2970 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

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • 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: 377
  • 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