Kerekítési módszerek MDX-ben (Arithmetic & Banker's Rounding)


Tudta Ön hogy a Round() függvény a 2,5-öt lefelé, a 3,5-öt felfelé kerekíti? Próbálja ki!

with

member [Measures].[2,5 kerekítve] as 'Round(2.5, 0)'

member [Measures].[3,5 kerekítve] as 'Round(3.5, 0)'

select

     {[Measures].[2,5 kerekítve], [Measures].[3,5 kerekítve]}

     on columns

from [Adatkocka]

 

Banker's rounding

Ahogy az ábráról leolvasható a Round() függvény a 2,5-öt 2-re, a 3,5-öt 4-re kerekíti. Első ránézésre talán úgy tűnhet, mintha ez egy bug lenne, hiszen ez a kerekítési módszer nem felel meg a kerekítés általános szabálya alatt tanult módszernek. Pedig ez nem hiba, csak a VBA Round() függvény nem a kerekítés általános szabálya szerint kerekít.

A kerekítés általános szabálya (Arithmetic Rounding)

A kerekítés általános szabálya szerint az 0,5 től felfelé, 0,49-től lefelé kell kerekíteni. Azaz a 0,5 már 1 lesz, míg a 0,49 nulla. Ezt a módszert használja az Excel, és az SQL server Round() függvénye is.

Banker’s Rounding.

Ha sok kerekített értékeket kell összeadnunk, és a ,5-öt mindig felfelé kerekítjük, akkor az eredmény szép lassan elkezd torzítani. Ha ezt ki akarjuk küszöbölni, akkor a ,5-öt néha felfelé, néha lefelé kell kerekítenünk.

A Banker’s kerekítés lényege, hogy az ,5-öt néha felfelé, néha lefelé kerekíti (így csökkenti az egyirányú kerekítés torzítását). A Banker’s kerekítés mindig páros számra kerekít. A 2,5-öt 2-re, a 3,5-öt 4-re. És pont így működik a VBA Round() függvénye.

Összefoglalva: Ha azt akarjuk, hogy MDX lekérdezésünk a kerekítés általános szabálya szerint kerekítsen, akkor a VBA Round() függvény helyet használjuk ez Excel Round() függvényét:

with

member [Measures].[2,5 kerekítve] as 'Excel!Round(2.5, 0)'

member [Measures].[3,5 kerekítve] as 'Excel!Round(3.5, 0)'

select

     {[Measures].[2,5 kerekítve], [Measures].[3,5 kerekítve]}

     on columns

from [adatkocka]

 

Eredménye:

kerekítés a kerekítés általános szabálya szerint

 

Felhasznált irodalom:

Kapcsolódó anyagok:

POWER BI WORKSHOP

Tudjon meg többet az itt elhangzottakról! Jöjjön el a 2017. november 30.-i Power BI workshopra. Részletek >>

  

Elválasztó

Már készül a következő cikk. Kérjen értesítést a megjelenéséről itt.

|

1 Hozzászólás

oxhNtJfOPwJxgm

A simple and intelligent point, well made. Thanks!

Szóljon hozzá!

Szabály: Legyen kedves, segítõkész és vállalja a nevét.
A mező tartalma nem nyilvános.
  • A web és email címek automatikusan linkekké alakulnak.
  • Engedélyezett HTML elemek: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • A sorokat és bekezdéseket automatikusan felismeri a rendszer.
ANTI SPAM
A robot regisztrációk elkerülésére.
Image CAPTCHA
Figyeljen a kis és nagybetűk használatára

POWER BI WORKSHOP

Tudjon meg többet az itt elhangzottakról! Jöjjön el a 2017. november 30.-i Power BI workshopra. Részletek >>