Sie sind eigentlich sehr nah an der richtigen Lösung hier, in dem tbl.CalculateColumn()
können Sie tun, was Sie möchten, um die Werte in einer Spalte, so in diesem Fall eine Tabellenfunktion wie tbl.Filter()
auf eine Spalte von Tabellen ist genau das richtige tun. Die Schwierigkeit besteht darin, die verschachtelten Anführungszeichen direkt im Snippet zu finden.
Schematiq können Sie entweder einfache oder doppelte Anführungszeichen in Schnipsel verwenden, was Sie tun, aber die innere Schnipsel Sie 'tbl.Filter()'
Bedürfnisse vorbei sind Anführungszeichen um SPOT2
sonst haben (in einer Excel-Formel) SPOT2
wird behandelt, als ein benannter Bereich anstatt als Text. Um eine wörtliche Zitat in einem Zitat zu schreiben, haben Sie es verdoppeln, so sollte die folgende für Sie arbeiten:
=tbl.CalculateColumn(C23,"Result","r =>tbl.Filter(r,'tier_info2','=''SPOT2''')")
(beachten Sie, dass ich zwei Apostrophe auf jeder Seite SPOT2
hinzugefügt haben)
All diese Verschachtelung von Anführungszeichen ist jedoch etwas umständlich, so dass eine Alternative darin besteht, das Snippet in eine eigene Zelle zu verschieben. Dies macht auch wahrscheinlich Ihr Blatt ein wenig leichter zu lesen:
C24: r => tbl.Filter(r, "tier_info2", "='SPOT2'")
C25: =tbl.CalculateColumn(C23, "Result", C24)
Durch die Schnipsel in ihre eigenen Zelle zu bewegen, gibt es keine Notwendigkeit, die ganze Sache in doppelten Anführungszeichen zu wickeln, so dass Sie doppelte Anführungszeichen um den Code-Schnipsel verwenden kann und einfache Anführungszeichen um den Textwert.
Eine weitere Alternative ist es, den inneren Filter Schnipsel in einen Eingang zu der Funktion zu machen, und verwendet fn.FixInput()
seinen Wert für die Berechnung zur Verfügung zu stellen: immer in C24
C24: (fn, tbl) => tbl.Filter(tbl, 'tier_info2', fn)
C25: '='SPOT2'
C26: =tbl.CalculateColumn(C23, "Result", fn.FixInput(C24, C25))
fn.FixInput()
fixen den fn
Eingang mit dem Schnipsel das Snippet von C25
sein, dann tbl.CalculateColumn()
wendet die Funktion an, indem es die Spaltenwerte als den verbleibenden tbl
-Eingang übergibt. Indem Sie die beiden Snippets voneinander trennen, können Sie die Filterlogik bei Bedarf leichter sehen und später ändern. Natürlich könnte dieser Ansatz auch in einer Zelle kombiniert werden, und das würde ich insgesamt empfehlen, wenn Sie Ihre Formel in nur einer Zelle behalten möchten: