#NUM bekommen! für äußere Nester der IF-Anweisungsteilung

356
Frameworker247

Ich habe einige Verkaufszahlen, für die ich Werte in Pfund, Einheiten und Dollar habe. Von PowerPivot aus erstelle ich einen Drehpunkt mit Periodenspalten (Aktuelle Woche, MTD, QTD, YTD) und Unterspalten von "Messen" (Dollar, Pfund, Einheiten). Die Berechnung, die ich verwende, bezieht sich auf die prozentuale Differenz zwischen dem diesjährigen Wert für die angegebene Periode und das angegebene Maß und dem Vorjahreswert für die gleiche Periode und das gleiche Maß, z. B. ([MTD in diesem Jahr] - [MTD im letzten Jahr]) / [MTD Vergangenes Jahr].

Dazu habe ich in PowerPivot neben meiner Datentabelle eine einspaltige Periodentabelle und eine einspaltige Messtabelle hinzugefügt, in der keine Beziehungen zu Data erstellt wurden. Ich verwende diese für meine Spaltenwerte und verwende verschachtelte IF-Anweisungen, um zu bestimmen, was für welche Perioden und Kennzahlen zu tun ist.

Die Maßnahmen, die ich verwende, um die Werte für dieses Jahr und das Vorjahr zu erreichen, laufen gut. Aber wenn ich die Division mache, bekomme ich #NUM! Fehler nur für die äußeren Nester der IF-Anweisung. Ich habe damit herumgespielt und die Formel in ihren wesentlichen Teilen vereinfacht (dh, dies ist eine Vereinfachung meiner Formel):

= ( IF( COUNTROWS(VALUES(Periods[Period]))=1, IF( VALUES(Periods[Period])="Current Week", 1, IF( VALUES(Periods[Period])="MTD", 2, IF( VALUES(Periods[Period])="QTD", 3, IF( VALUES(Periods[Period])="YTD", 4 ) ) ) ), 0  ) )  / ( IF( COUNTROWS(VALUES(Periods[Period]))=1, IF( VALUES(Periods[Period])="Current Week", 1, IF( VALUES(Periods[Period])="MTD", 2, IF( VALUES(Periods[Period])="QTD", 3, IF( VALUES(Periods[Period])="YTD", 4 ) ) ) ), 0 ) ) 

Ich erwarte, dass dies für alle Werte "1" zurückgibt. Stattdessen wird #NUM zurückgegeben. für alle aktuellen Wochen- und MTD-Werte und "1" für den Rest. Wenn ich die verschachtelten Argumente neu anordnen, #NUM! wird immer für die äußeren Argumente zurückgegeben.

Irgendeine Idee, was hier los ist?

0

1 Antwort auf die Frage

0
Frameworker247

Ich habe eine Lösung gefunden, obwohl mir nicht klar ist, warum dies funktioniert, während die andere Struktur nicht funktioniert. So habe ich es eingerichtet:

= IF( COUNTROWS(VALUES(Periods[Period]))=1, IF( VALUES(Periods[Period])="YTD", DIVIDE(1,1), IF( VALUES(Periods[Period])="QTD", DIVIDE(2,2), IF( VALUES(Periods[Period])="MTD", DIVIDE(3,3), IF( VALUES(Periods[Period])="Current Week", DIVIDE(4,4) ) ) ) ), 0 ) 

Mein Mitnehmen ist es, zu vermeiden, dass zwei verschachtelte IF-Anweisungen gegeneinander aufgeteilt werden.