Telefonszámunk: 1-472-0679

Összeadás hiba ?

Kezdőlap Fórumok Excel témák Összeadás hiba ?

9 bejegyzés megtekintése - 1-9 / 9
  • Szerző
    Bejegyzés
  • #10225
    Speter
    Felhasználó

      Az alábbi kis tábla mutatja a problémámat. Excel számsorokat kapok. Ezeket összeadom, és azt tapasztaltam, ha pont nulla lenne a végeredmény, akkor egyes esetekben hibásan számol az excel. Azt tudom, ha kerekítem, akkor ez már nulla lesz, de sok számsor van, ha mindegyiket kerekítem, akkor a végső eredmény már fals lesz, ezért nem kerekíthetek. Szerintetek én látok rosszul valamit, vagy tényleg hibás a számolás?

      Attachments:
      You must be logged in to view attached files.
      #10227
      Speter
      Felhasználó

        Még egy adalék, ha minden mezőbe beírt számot kerekítem 2 tizedesre, és úgy adom össze, akkor sem kapok pontos eredményt, így már tényleg nem tudok összehasonlításokat tenni pontosan. Az pedig, hogy minden hasonlításkor egy ‘Eps’ eltérést alkalmazzak, nem életszerű!

        #10228
        horvimi
        Adminisztrátor

          Szia!

          Igen, problémák vannak az Excellel nagyon nagy, illetve nagyon kicsi számok esetén.
          A nagyon kicsit lehet érteni a bármilyen tört egész rész utáni részének.

          Épp nemrég szívtam ezzel, amikor időértékeket kellett (volna) kezelnem, amik ugyebár másodpercig lemenve igen kicsi és hosszú törtek. Nekem bevált az 5 tizedesre kerekítés.

          Ha egy kicsit utánanézel, akkor rengeteg cikk, probléma szól erről a neten.

          A Microsoft saját leírása:
          https://learn.microsoft.com/en-us/office/troubleshoot/excel/floating-point-arithmetic-inaccurate-result

          A te esetedben (ahogy tapasztaltad) nem megoldás a kerekítés, mert valamerre hibás lesz a dolog.
          – Egyik lehetőséged, hogy megadsz a szum képletben egy 0-hoz képesti tűrést, és ha azon belül van, akkor nullának tekinted.
          – A másik megoldás az Excel beállításaiban lehet:
          – Fájl -> Beállítások -> Speciális -> Megkeresed az „Ennek a munkafüzetnek a kalkulálása” részt, és beállítod, hogy
          a kalkulációs pontosság a megjelenítéshez igazodjon. Ez adatvesztéssel fog járni, pl. 2 tizedes feletti részeket eldobja.

          Egészen konkrétan itt van:
          https://learn.microsoft.com/en-us/office/troubleshoot/excel/floating-point-arithmetic-inaccurate-result#method-2-precision-as-displayed:~:text=Method%202%3A%20Precision%20as%20displayed

          De itt is
          https://www.icaew.com/technical/technology/excel-community/excel-community-articles/2022/excel-tips-and-tricks-447

          Imre

          #10229
          horvimi
          Adminisztrátor

            Miután válaszoltam, ki is próbáltam 🙂

            Ahol 0,01 a difi, az maradni fog a cellában, ha 2 tizedesre formázom.
            Ugyanezt adja ha kerekítek 2 tizedesre.

            De az egy század valós érték, ha összeadod az utolsó 2 oszlopot.

            Kérdés, hogy te minek tekinted.

            I

            #10230
            Speter
            Felhasználó

              Szia! Köszönöm a válaszokat, még próbálkoztam, és agyaltam, de nem igazán jutottam előre.
              A „furcsa” számomra az, hogy azt írja a Microsoft, hogy nagyon kicsi, illetve nagyon nagy számoknál áll fenn ez a probléma a tárolás végessége miatt. Ez én is tudom, ezzel számoltam volna, de itt egyáltalán nem nagy számokról van szó, a számok 2 tizedesre kerekítve vannak, és ennek ellenére nem számol pontosan! Ez azért szerintem nem korrekt. Sok excel táblát nézegettem (másokét is), és ezekben simán összehasonlít kést számolt oszlopot, és egyezőséget keres közte, ami ugye hibás eredményt adhat igen sok esetben! Ráadásul az én példámban a 0 érték helyett, egy normál alakban kapott számérték került az összesenbe. Ezt sokan értelmezni sem tudják. Nekem is átkerül a táblám csv formábtumba, és egy feldolgozó program hozta ki, hogy hibás számok vannak a táblában, mert a feldolgozó programnak normál alakot elemezni esze ágában sem volt!
              Szóval meg tudom oldani, mert kerekítgetek a szumma értékben is (mondjuk 4 tizedesre). Ezzel a probléma lényegében megoldva, de ha sok ilyen kerekített értéket újra összeadok, az újabb hibákat generálhat!

              Az excel persze könnyen elkeni a dolgot, mert a megjelenítés jól formázható, és a hiba nem is látszik!
              Remélem érthetően írtam le a gondolataimat.

              Péter

              #10231
              horvimi
              Adminisztrátor

                Sajnos ez valóban probléma.
                Az én esetemben COUNTIF függvénynél burult ki a bili, hogy nem talált meg valamit, amit meg kellett volna.
                Az időértékek tele vannak végtelen tizedestörttel.

                Különben nem csak az Excel-ben probléma ez, hanem a teljes lebegőpontos számábrázolásban ez a hiba benne van.

                Résen kell lenni és kompromisszumokat kötni.

                I

                #10232
                verax
                Felhasználó

                  Sziasztok!
                  Ne bántsátok az Excelt! 😉
                  A számolási hiba a tízes és a kettes számrendszer különbözőségéből és a számábrázolás során használt helyiértékek véges számából adódik.

                  További részleteket például itt is találsz.

                  üdv’
                  verax

                  #10233
                  verax
                  Felhasználó

                    Ha módodban áll, törekedj arra, hogy tizedes tört részt nem tartalmazó egész számokkal dolgozz!
                    Nem lesz egyszerű dolgod.

                    #10234
                    Speter
                    Felhasználó

                      Köszönöm a jó tanácsokat, de saját adatokkal feltöltve én mindig korrekt táblát készítettem. Most olyan adatokkal kell dolgoznom, amit igen sok helyről kapok (NAV számla adatoka). Na ebben olyan elképesztő pontatlanságok vannak, mindig újabb, és újabb hibákat találok benne. Az általam átdolgozott táblában igyekeztem mindent úgy összekerekíteni, hogy konzisztens adatokat kapjak. A ft tételek esetében mindent összekerekítek (néha csalok is), hogy jó legyen, de egyre több számla készül más valutanemben, amit általában 2 tizedesre kell kezelne. Na itt jönnek elő a problémák, mert a 2 tizedesre kerekített értékekkel már nem tud az excel pontosan számolni az excel. Persze újabb kézimunkával ez is megoldható, hogy 100-al felszorozzam minden hasonlító műveletnél, csak ez annyira gáz, hogy ilyen módon kell varázsolni, egy olyan számolótáblában, amit a világon nem néhány ember használ! A legtöbb embernek fogalma sincs a számábrázolásokról, és nem érti miért nem jók a táblázatainak egyes döntései. Lényegében ezért írtam, mert ez bosszant engem, de nagyon!

                    9 bejegyzés megtekintése - 1-9 / 9
                    • Be kell jelentkezni a hozzászóláshoz.