Concept: kubusbladberekeningen moeten worden geëvalueerd naar nul
Deze waarschuwing geeft aan dat uw kubusberekening wordt weergegeven als een fout in de bladweergave. De fouten zorgen ervoor dat het kubusblad blijft presteren.
Hoe evalueren tot nul helpt
Beschouw het kubusblad als een eettafel en de cellen als stoelen aan de tafel. De host serveert eten op stoelen met borden. Op dezelfde manier voert een kubus de berekening niet uit wanneer formules verwijzen naar lege cellen. In plaats daarvan wordt de kubus berekend op nul of wordt er geen eten geserveerd.
Dit systeem werkt allemaal goed wanneer de rekening waarnaar wordt verwezen zich in dezelfde kubus bevindt. Maar wanneer de rekening waarnaar wordt verwezen zich niet in dezelfde kubus bevindt, weet de kubus niet wanneer deze moet worden geëvalueerd naar nul.
Het is alsof u de gastheer blinddoekt tijdens het diner. Als de gastheer eten moet serveren zonder te weten waar de borden zijn, verspilt de gastheer voedsel en energie. Evenzo, als de kubus elk snijpunt moet doorzoeken om te weten wanneer deze moet worden geëvalueerd naar nul, belast dit de prestaties van het blad.
In plaats daarvan weigert de host de weergave. de kubus weigert ook te berekenen en retourneert in plaats daarvan fouten.
Berekeningen binnen hetzelfde kubusblad
In dit voorbeeld ziet u hoe berekeningen in kubusbladen werken wanneer u naar rekeningen binnen hetzelfde blad verwijst.
- ACCT.CubeCalc en ACCT.Cube_001 bestaan in hetzelfde kubusblad.
- ACCT.Cube_001 is een rekening voor gegevensinvoer.
- ACCT.CubeCalc heeft deze formule die verwijst naar de kubusrekening: ACCT.Cube_001 * 5.
Rekening | Jan | Feb |
|---|---|---|
ACCT.Cube_001 | 5 | |
ACCT.CubeCalc | 25 | 0 |
Omdat ACCT.Cube_001 geen gegevens voor februari heeft, wordt de kubusberekening geëvalueerd als 0.
Berekeningen met verwijzingen buiten de kubus
In dit voorbeeld ziet u hoe kubusberekeningen werken wanneer u naar rekeningen buiten het kubusblad verwijst.
- ACCT.CubeCalc verwijst naar ACCT.002, een grootboek dat zich buiten het kubusblad bevindt.
- ACCT.CubeCalc bevat de volgende formule die verwijst naar het grootboek:div (ACCT.002, 2).
Wanneer u de berekende rekening voor de kubus opslaat in
Modellering
, krijgt u de volgende foutmelding: Kubusberekeningsformules moeten worden geëvalueerd naar nul
. De fout verhindert niet dat u het blad opslaat. Op het blad ziet u echter fouten in de cellen:Rekening | Jan | Feb |
|---|---|---|
ACCT.CubeCalc | Fout | Fout |
De kubusberekening weet niet of er in januari of februari platen zijn voor ACCT.002, omdat die rekening niet op het kubusblad staat. In plaats van eten op elke mogelijke stoel te serveren - of naar elk mogelijk snijpunt te zoeken - weigert de kubus het eten te serveren, wat betekent dat er een fout wordt geretourneerd.
Rekeningen in kubusbladen activeren
U kunt de fout als volgt oplossen:
- Verwijs naar een andere kubusrekening als activeringsrekening en voeg een voorwaardeisleegtoe aan de formule. U moet de syntaxisACCT.rekeningcodegebruiken enrekeningcodevervangen door een geldige rekeningcode in uw model. U kuntaccount.thisniet gebruiken.
- Voeg de grootboekrekening of aangepaste rekening aan de kubus toe als aan een kubus toegevoegde rekening. Zie Grootboekrekeningen en aangepaste rekeningen toevoegen aan kubusbladen.
- Maak een samengevoegd kubusblad, zodat u geen activeringsrekening meer nodig hebt. Zie Concept: samengevoegde kubusbladen.
Een trigger kan elke rekening op dezelfde kubus zijn, met uitzondering van kubusmetriekrekeningen. De trigger vertelt de kubusberekening waar de verwachte platen zich in de tabel bevinden. Als u de fout voor de formule van ACCT,CubeCalc wilt verwijderen, werkt u deze als volgt bij:
- Oude formule: div (ACCT.002, 2)
- Nieuwe formule: if (isblank (ACCT.Cube_Trigger), 0, div (ACCT.002, 2))
De nieuwe formule zegt: Als de activeringsrekening
leeg is
, retourneert u een nul. Anders wordt de grootboekrekening gedeeld door 2. U verwijdert nu de fouten uit het blad. De berekening werkt alleen als er een plaat in de trigger aanwezig is, zelfs als er gegevens in het grootboek staan: Rekening | Jan | Feb |
|---|---|---|
ACCT.CubeCalc | 3500 | 0 |
ACCT.Cube_Trigger | 1 |
Nadat u voor de trigger gegevens aan februari hebt toegevoegd, worden de gegevens in het grootboek gevonden en voor februari berekend.
Beperkingen voor kubusactiveringrekeningen
Metriekrekeningen voor kubussen werken niet als triggers. Kubusmetriekwaarden worden berekend op elk mogelijk snijpunt in de kubus. Ze berekenen niet alleen alle mogelijke snijpunten op het laagste niveau, maar berekenen ook alle mogelijke permutaties van bovenliggende snijpunten.
Kubusstatistieken dwingen een host het diner op een enorme schaal te serveren, zelfs als er maar een paar gasten aanwezig zijn. Wanneer een kubusmetriek 10 gasten ontvangt, worden 10.000 schalen met eten geserveerd.
Het gebruik van een metriek als trigger zou daarom onnodige spanning op het kubusblad veroorzaken.
Triggers kunnen over het algemeen stress aan het systeem toevoegen. Zorg ervoor dat u geen triggers toevoegt aan snijpunten die momenteel niet worden gebruikt.
Efficiënte triggers maken alleen de benodigde snijpunten. Voorbeeld: gebruik een planningsgegevensbron om triggers voor bepaalde dimensiewaarden te laden. Of gebruik historische combinaties om toekomstige waarden aan te geven.