Nem áll szándékomban egyesével bemutatni az adatbázis-függvényeket, aki nem elég jártas e témában, nézzen utána a súgóban. Szeretnék azonban egy összefoglaló táblázatot adni, ami segít áttekinteni pár függvény rendeltetését és az azok közti összefüggéseket.
"alapfüggvény" | egy feltétellel | több feltétellel | adatbázis-függvénnyel |
---|---|---|---|
SZUM() | SZUMHA() | SZUMHATÖBB() | AB.SZUM() |
ÁTLAG() | ÁTLAGHA() | ÁTLAGHATÖBB() | AB.ÁTLAG() |
DARAB() | DARABTELI() | DARABHATÖBB() | AB.DARAB() |
DARAB2() | DARABTELI() | DARABHATÖBB() | AB.DARAB2() |
MIN() | - | - | AB.MIN() |
MAX() | - | - | AB.MAX() |
Furcsa nevet kapott magyarul a DARABTELI() függvény, találóbb lett volna a "darabha" elnevezés. Elgondolkodtató az is, hogy vajon miért nincs például MINHA() és MINHATÖBB() függvény.
Balról jobbra haladva, a függvények egyre több lehetőséget biztosítanak. Például egy ÁTLAGHA() függvénnyel szűkíthetjük az átlagolni kívánt adatokat: megadhatunk egy oszlopot (Tartomány) és egy arra vonatkozó egyszerű feltételt, például "<5" (Kritérium). Az ÁTLAGHATÖBB() függvény ennél csak annyival tud többet, hogy több feltétel-oszlop páros adható meg. Az igazán nagy ugrás az AB.ÁTLAG() függvény: itt a feltételek már bonyolultabbak is lehetnek, szólhatnak például több oszlop kapcsolatáról. Ezeket a feltételeket egy táblázatban kell megadni, melynek elkészítése teljesen megegyezik az irányított szűrő szűrőtartományának létrehozásával (ezért is szokás mindkettőt kritériumtáblának, kritériumtartománynak, szűrőtartománynak vagy kritériumtáblázatnak nevezni). Képletesen értve elmondható, hogy hasonló viszonyban állnak az adatbázis-függvények a "hatöbb-függvényekkel", mint az irányított szűrő az autószűrővel.
Nézzünk meg egy konkrét példát, melyre a későbbiekben vissza fogok utalni!
29. példa: Nemes 2009-2010 3. forduló, 5/D (Holdak)
A feladattal már többször is találkozhattunk: egy holdak felfedezésének adatait tartalmazó táblázattal dolgozunk. A feladat most az, hogy egy felhasználó által megadott névről megadjuk a következőket:
Az első ponttal nincs sok dolgunk, hiszen egy egyszerű DARABTELI() képlettel eldönthető, ez az eset áll-e fenn. Ezért ennek megoldását most nem mutatnám be.
Ahhoz, hogy eldöntsük, hogy amennyiben van ilyen felfedező, a második vagy a harmadik állítás igaz rá, azt kell megnézni, hogy a névhez tartozó évszámok közül a legkisebb és a legnagyobb megegyezik-e. A feladat kulcsa tehát ennek a két évszámnak a meghatározása, a feladat többi részével sem foglalkozom (a megoldásban úgyis megtalálható a teljes képlet).
Ezek után már triviális, hogy az AB.MIN() és AB.MAX() függvények használatára lesz szükség. Mivel a két függvény argumentumlistája megegyezik, a következő leírás mindkettőre értendő.
A megoldás az adatok (3) munkalapon található meg.
Az adatbázis-függvények velejárója tehát, hogy használatuk "segédcellákat" igényel, még ha ez nem is a szokásos módon értendő. Ugyanebben a rejlik az előnyük is: a kritériumtábla révén sokkal bonyolultabb képletek is megadhatóak. Versenyen a segédcellák mellőzése a legtöbbször elvárt, ez alól azonban általában kivételt képeznek a kritériumtáblák cellái.
Nem ritka az ehhez hasonló feladatszöveg: "Kritériumtartomány felvétele megengedett, de ha egyéb segédcellákat is használsz, számíts rá, hogy a megoldásod így kevesebb pontot ér!". Vagyis adatbázis-függvények esetén megengedett a plusz cellák használata, máskülönben viszont nem.
Ajánlom további gyakorlásra az OKTV 2010-2011 1. forduló, 5/I (Tisztavatás) feladatot, melynek adatbázis-függvénnyel történő megoldása a Válaszok munkalapon található.
Készült az "Országos koordinációval a pedagógusképzés megújításáért” című TÁMOP-4.1.2.B.2-13/1-2013-0007 pályázat keretében. |
A tananyag az ELTESCORM keretrendszerrel készült