Verwenden Sie Loc Sorted für exakte Übereinstimmung über Tabellen hinweg - oder ein anderes Tool?Ein Kunde ist daran interessiert, eine Formel in einer Spalte einzurichten, die VLOOKUP (Excel) ähnelt. Die Funktion würde zu der gleichen Ausgabe führen wie die Verwendung von Tabellenverknüpfung, aber der Kunde hat berechtigte Gründe, dies mit einer Formel anstelle einer Verknüpfung zu tun.
Als Beispiel könnte seine Basistabelle so aussehen:

Und die zweite Referenztabelle könnte dies sein:

Wir können diese Formel der Spalte "Output" der Basistabelle zuweisen:
dtRefTable = Datentabelle ("RefTable");
KeyBracket = Loc Sorted (dtRefTable: Key << getvalues,: Key);
dtRefTable: SpecificInfo [KeyBracket];
Wenn die Formel ausgeführt wird, ändert sich die Basistabelle folgendermaßen:

Das Problem ist, dass in der Basistabelle der Schlüssel für Zeile 2 2401 lautet. Es gibt keine Übereinstimmung für 2401 in der Ref-Tabelle, daher rundet Loc Sorted ab und wählt den nächstniedrigeren Wert von Key aus, in diesem Fall Key = 2400, und wählt 111 für die Ausgabe aus.
Was der Kunde wünscht, ist, dass diese Zelle (Ausgabespalte, Zeile 2) "fehlt" oder ein anderer Wert ist, der über eine bedingte Anweisung als "keine Übereinstimmung gefunden" identifiziert werden kann. Und natürlich ist es nicht so einfach, nur "wenn Schlüssel = 2401 Zelle fehlt" zu sagen, da es in den realen Daten viele verschiedene Möglichkeiten für Übereinstimmungen und Nicht-Übereinstimmungen gibt.
S o Der ideale Basistisch sieht folgendermaßen aus:

Wie schaffen wir das? Gibt es eine andere Funktion (anstelle von Loc Sorted), die in Tabellen wie dieser funktioniert?
Vielen Dank,
Jerry
Betreff: Loc Sorted für exakte Übereinstimmung über Tabellen hinweg verwenden - oder ein anderes Tool?Nett! Vielen Dank an Brady und an alle, die geantwortet haben. Ich denke, der Kunde wird zufrieden sein.
JSL überrascht mich weiterhin mit allen verfügbaren Funktionen. Ich wusste überhaupt nichts über die "Try" -Funktion und hatte "As List" nicht verwendet. Sehr cool und sehr geschätzt!
Jerry
Betreff: Loc Sorted für exakte Übereinstimmung über Tabellen hinweg verwenden - oder ein anderes Tool?Das gefällt mir besser. Kürzer und eleganter.
Betreff: Loc Sorted für exakte Übereinstimmung über Tabellen hinweg verwenden - oder ein anderes Tool?
Hier ist eine andere Option.
dt = Data Table( "reftable" );
Try( dt:specificInfo[Loc( As List( dt:key << getvalues ), :Key )[1]], . );
Betreff: Loc Sorted für exakte Übereinstimmung über Tabellen hinweg verwenden - oder ein anderes Tool?Dies sollte funktionieren, solange die Werte in den Schlüsselspalten numerisch sind und Sie Ihre Tabellenreferenzvariable festgelegt haben. Die in Ihrem Beispiel verwendete Spaltenreferenzierung scheint in Spaltenformeln nicht zu funktionieren.
KeyBracket = Loc(Column(dtRefTable,"Key") << getvalues == :Key);
If(N Row(KeyBracket > 0,
Column(dtRefTable,"SpecificInfo")[KeyBracket[1]],
.
);
Ich bin mir nicht sicher, wie ich Code in einer Tabellenformel finde. Es erspart jedoch das hastige Durchlaufen aller Schlüsselwerte in der Zieltabelle. Wenn Ihre Schlüsselwerte Zeichen sind, ersetzen Sie das "==" durch ein Komma im Loc-Befehl und ändern Sie die Reihenfolge der Argumente.
Betreff: Loc Sorted für exakte Übereinstimmung über Tabellen hinweg verwenden - oder ein anderes Tool?Ja - ich meine, du könntest das wahrscheinlich mit Formeln machen ... Wenn es Probleme mit der Tabellensteuerung gibt, ist JMP Table Query Builder möglicherweise eine bessere Route. Anschließend können sie einen standardisierten Workflow als QB-Datei speichern und eine Tabelle mit Aktualisierungsfunktionen erstellen. Der Vorteil von QB ist, dass der Code bereits von JMP formatiert und erstellt wurde.Betreff: Loc Sorted für exakte Übereinstimmung über Tabellen hinweg verwenden - oder ein anderes Tool?Joins (normal oder virtuell) funktionieren tatsächlich, und ich habe sie ursprünglich dem Kunden vorgeschlagen. Sie haben jedoch einige interne Anforderungen (mehrere Personen greifen auf sichere Datendateien zu - ich verstehe nicht alle Vor- und Nachteile), die es erforderlich machen, dass sie Formeln anstelle von Verknüpfungen verwenden. Es tut uns leid!
Betreff: Loc Sorted für exakte Übereinstimmung über Tabellen hinweg verwenden - oder ein anderes Tool?Das würde ich auch vorschlagen. Beachten Sie, dass Sie die referenzierte Tabelle nicht schließen dürfen, bevor Sie die Tabelle mit den Formeln gespeichert haben. Wenn Sie dies tun, werden die Formeln entfernt!
Betreff: Loc Sorted für exakte Übereinstimmung über Tabellen hinweg verwenden - oder ein anderes Tool?Hast du virtuelle Joins ausprobiert?
M