Miért hívják szorzatösszegnek a SUMPRODUCT Excel függvényt?
Köszi a válazokat, azokon felbuzdulva továbbolvastam! :) Valóban, lehet szorzásra is használni...
De amiért kérdeztem, ez a képlet nem szoroz, csak számol:
=SZORZATÖSSZEG((B2:B9=régió)*(C2:C9=gyümölcs)*D2:D9)
A "régió" mezőben megadottat (észak) a régiók között megkeresi és ahol a "gyümölcs" mezőben lévő gyümölcs van (alma), ott az eladott Mennyiségeket összeadja:
B C D
Régió Gyümölcs Mennyiség
észak alma 2
kelet alma 2
észak körte 2
észak alma 4
Keresendő régió és gyümölcs és a kiszámolt mennyiség:
észak alma 6
Tehát 6 db almát adtak el északon.
Szóval így már látjátok, hogy miért nem értettem, miért Szorzatösszeg a neve? De aztán utánanéztem, hogy több célra is fel lehet használni ezt a függvényt... érdekes...
Még annyi, hogy szerintem az angol nevében nincs benne a szorzás...
Nézd, ha egy ütvefúrót arra használsz, hogy beverjél vele egy szöget, akkor panaszkodhatsz, hogy nem fúr.
A leírás szerint használva a függvény szoroz.
Hogy te kiagyaltál egy nem rendeltetésszerű használatot, amivel nem szoroz, de nem is ad hibaüzenetet, az nem fáj senkinek. Egyszerűen nem arra használod, amire való, az nem a Microsoft hibája.
Itt nem a szorzatösszegnek a tulajdonságát használod ki, hanem annak, hogy egy bool értéket át tud alakítani implicit számmá.
Pl írd be az A1 cellába, hogy: alma
Az A2-be hogy =(A1="alma")*2
És azt írja ki, hogy 2. Mert az A1="alma" igaz, azaz 1 lesz.
UGyanez van nálad is, egy tartományt vizsgálsz, hogy egyenlő-e a régióval. Mivel ez egy tartomány az eredmény nem egy szám, hanem egy vektor, de a léynegen ez nme változtat, abból számokat készít az excel, amit szorozhatsz.
Tehát annak amit kérdezel semmi köze a SUMPRODUCT függvényhez.
Hogy nem a Microsoft hibája lenne, azt kétlem. De köszönöm, hogy feltételeztétek, hogy ennyire penge vagyok ebből a függvényből, hogy mást hozok ki belőle, mint amire való. LOL. Sajnos, ahhoz nagyobb Excel ismeret kellene, ami viszont nekem nincs.
Viszont tök jókat írtatok, amiért nagyon hálás vagyok!
És hogy mire alapozom az 1. mondatot?
Lásd a linket. Itt csak az 1. példában van szorzás, az összes többiben nincs. És ez egy eléggé hivatalos Microsoft support oldal...
De, mindegyik példában van szorzás, csak más szintaxissal.
Ahogy a #5 elmagyarázta neked, az egyik szorzótényező mindenhol egy logikai érték, ami a keresésnek megfelelő sorokban 1, a többiben nulla. Tehát ami kell, azt megszorzod eggyel, vagyis meghagyod, ami volt, ami nem kell, azt megszorzod nullával, vagyis eldobod, és ezeket a szorzatokat adod össze.
Egy válasz a kérdésedre, hogy a függvény korábban a szűkebb értelmezést tudta, és valóban csak a klasszikusan látható szorzatösszeget számolta. az évek és verziók során bővült a tudása, de szerencsére maradt a neve. Az lenne a baj, ha átneveznék. Néha megteszik, pont elég gond az is azoknak, akik nem ma kezdtek Excellel foglalkozni, hanem mondjuk 20-25 éve.
Végül pedig: nem lehet a Microsoft hibája, mert egyáltalán nem hiba. A programozók azt mondják ilyenkor, hogy ez nem hiba, hanem lehetőség/tulajdonság. Ha a saját bevallásod szerint nem vagy még penge Excelből, akkor ne mondd valamire, hogy hiba, amit nem értesz. EZ egy ilyen jó magyar szokás, hogy állandóan hibákat mg felelősöket keresünk, amikor nem is kéne. A Microsoft nem követett el hibát, te nem látod még át teljes mélységében a témát. Ez nem baj, csak ne nevezd hibának, ami nem az.
Köszönöm szépen a válaszokat, felnyitottátok a szemem! :) (De ezt most komolyan mondom, nem gúnyolódásból, tényleg sokat segítettetek.)
Már csak azt nem értem, hogy az IGAZ/HAMIS logikai értékeket tartalmazó oszlopot miért nem lehet egy újabb szorzó-tömb paraméterként megadni, miért kell konkrétan szorozni a számokat tartalmazó tömböt?
Ez működik: =SZORZATÖSSZEG((B2:B9="észak")*(C2:C9="alma")*D2:D9)
Ez nem működik: =SZORZATÖSSZEG((B2:B9="észak");(C2:C9="alma");D2:D9)
Pedig a második esetben is tömböket adok át szorzásra, mégpedig a boolean értékek tömbjeit. Azt miért nem tudja soronként összeszorozni, miért csak akkor működik, ha a D2:D9-es tartományt direktben szorzom meg?
(Mondjuk az észrevettem, hogy ha direktben adok össze logikai értékeket, jó eredményt kapok: HAMIS+IGAZ+IGAZ=2, de ha a SZUM() függvénnyel, mint tartományt adatom össze, akkor 0-t... Lehet, hogy ez a bizonyos "implicit számmá" alakítás nem megy, ha tartományként kapja meg az excel a boolean értékeket? Akkor mát csak azt kéne tudnom, mi az, hogy "implicit szám..." :) )
az nem "implicit szám", hanem implicit módon alakítja számmá. Implicit mód = nem mondod meg neki külön, hogy ét kell alakítani, hanem magától csinálja.
És igen, úgy néz ki, hogy a matematikai műveleteknél van csak ilyen, tehát ha (B2:B9="észak")*(C2:C9="alma")-t írsz, akkor ebből mér egy számokat tartalmazó vektor lesz.
És úgy néz ki, hogy a függvények ilyet maguktól nem tesznek.
Viszont ezt kikányszerítheted az INT() függvénnyel:
=SZORZATÖSSZEG(INT((B2:B9="észak"));INT((C2:C9="alma"));D2:D9)
(Ezt hívják explicit módnak, amiokr te megadot, hogy számokat akarsz a pl. bool értékek helyett)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!