2016-08-04 16 views
0

Ich bin neu bei Spotfire und ich hoffe, Sie können helfen. Ich habe eine Excel-Tabelle mit mehr als 280.000 Zeilen, daher wird meine Excel-Tabelle EXTREM langsam, wenn ich meine Formel ausführe. Ich hatte gehofft, Spotfire könnte helfen. Was ich versuche zu erreichen, ist dies: Ein Arzt wird einen bestimmten Betrag im Jahr 2015 bezahlt und dann wird genau der gleiche Betrag im Jahr 2016 zurückgenommen. Ich freue mich, diese im Jahr 2015 bezahlt und im Jahr 2016 zurückgenommen Transaktionen nur aus die 280.000 Zeilen. Das untere Bild zeigt und ein Beispiel für die positiven und negativen in Excel. enter image description hereSpotfire Calculated Spalte

Verwendung von Spalten D, L, N & J habe ich eine SUMIFS Formel in Spalte A der positiven und negativen Transaktionen zu identifizieren, die zu Nullpunktverschiebung. Kann Spotfire in einer berechneten Spalte dasselbe erreichen, ohne dass der Computer LANGSAM wird?

Unten ist, was ich bisher in Spotfire nicht viel habe, aber ich bin sehr neu und der Synax ist neu für mich. enter image description here Kann eine berechnete Spalte nach der Datumsspalte eingefügt werden und die Positive und Negative für 2015 und 2016, die auf Null versetzt sind, identifizieren? Jede Hilfe würde sehr geschätzt werden. Danke

Erster Schritt enter image description here

Nichts kam in der 3. Spalte zurück enter image description here

Dies ist die Formel i zu erreichen verwendet, was ich brauchte zeichnen sich durch ihre langen Zeiten aber zu verarbeiten dauert es funktioniert. Können wir diese Formel zu Spotfire bringen? enter image description here

+0

Sie können einige der Daten aus Excel in Ihren ursprünglichen Beitrag als kopieren/einfügen Text, um besser zu helfen. – scsimon

Antwort

1

Sie können dies erreichen, indem Sie mit einer over-Klausel aggregieren. Wenn Sie eine Textversion Ihres Datensatzes einfügen können, können wir sicherstellen, dass wir es zu 100% richtig haben, aber hier geht es darum, was Sie wollen.

Erhalten Sie die Summe für das Jahr 2015 für jeden Kunden. Diese Formel gibt an, wenn das Jahr der Zahlung 2015 ist, dann Summe der Spalte Betrag und Gruppe nach der CustomerID summieren.

If(DatePart("year",[Date of Payment])=2015,Sum([Amount]) OVER ([CustomerID])) as [2015CustomerTotal] 

Erhalten Sie die Summe für das Jahr 2016 für jeden Kunden

If(DatePart("year",[Date of Payment])=2016,Sum([Amount]) OVER ([CustomerID])) as [2016CustomerTotal] 

Dann können Sie überprüfen, ob sie Null aus.

If([2016CustomerAmount] - [2015CustomerAmount] = 0,True,False) 

Also habe ich folgendes zu arbeiten (V stolz auf mich)

If(DatePart("year",[Date of Payment])=2015, True,False) 

aus, um weiter oben Ich muss wissen, dass, wenn es im Jahr 2016 eine negative ist, und es entspricht einem Positive in 2015 für den Betrag und die [Natur] und [Kundennummer] Spalten-IDs stimmen dann zurück mir "GOT YOU" oder "1" :-) jede Hilfe würde sehr geschätzt werden.

Sie wissen nicht, warum das nicht funktioniert

CASE WHEN ([Amount]>0) AND (DatePart("year",[Date of Payment])=2015) Then "GOT YA" 

es herausgefunden

CASE WHEN [Amount]>0 AND (DatePart("year",[Date of Payment])=2015) Then "GOT YA" else "No GOT" end 

Ok, so dass wir irgendwo Ich fühle mich :-) So, jetzt die unten bekommen sagt mir, wo es gab eine Zahlung im Jahr 2015

CASE WHEN [Amount]>0 AND (DatePart("year",[Date of Payment])=2015) Then "1" else "0" end 

und die unten hier ist jetzt sagen mir wo ein -negativen Menge oder Geld dort in 2016

CASE WHEN [Amount]<0 AND (DatePart("year",[Date of Payment])=2016) Then "1" else "0" end 

Ok zurück genommen war, so habe ich eine visuelle hinzugefügt, um besser mein Problem zu beschreiben. Was ich die benutzerdefinierte Funktion tun möchte, ist: Wo gibt es eine 1 in [Pay in 2015] und eine 1 in [erstatten in 2016] und die [Kunden-ID] bleibt gleich und die 1s aus [Pay in 2015] und die 1s von [erstatte 2016] versetze die [Menge] Spalte auf Null dann zeige mir "1" sonst "0" in einer neuen Spalte

+0

Hallo scsimon. Danke, dass Sie sich die Zeit genommen haben, zu antworten. Ich wäre glücklich, einen txt einzufügen, aber ich weiß nicht, wie man das macht :-(Auch, wo Sie den Code eingeben, den Sie mir gegeben haben, habe ich keine Dropdowns für benutzerdefinierte Ausdrücke mit diesem visuellen Typ. Wieder tut mir leid, ein kompletter Anfänger und Danke –

+1

Keine Sorgen @PhilipConnell.Um eine berechnete Spalte einzufügen, auf der Symbolleiste in Spotfire klicken Sie auf "Einfügen> Berechnete Spalte" und stellen Sie einfach sicher, dass Sie es für den richtigen Datensatz einfügen. – scsimon

+0

Hallo So. Ich habe Zum Einfügen der berechneten Spalte und der Kundennummer ist in rot ich habe ein neues Bild für ein Visual angefügt Vielen Dank nochmal für Sie Hilfe ... Es war ein Leerzeichen zwischen Kunde und ID wie soll der Code in die Box gehen –