Gyakorlat teszi a mestert - Excel feladvány megoldása már ismert függvényekkel

2015. november 26. - Office Guru

Bár ma még nem tértem volna vissza az egyértelműen legtöbb kérdést és egyben lehetőséget generáló Office-modulhoz, az Excelhez, de egy rövid olvasói kérdés miatt változott a terv, hiszen mi értelme különféle alakzatokat rajzolgatni, amikor a mindennapokban valószínűleg más problémák nehezítik meg az életünket elég sűrűn.

Úgyhogy most jöjjön egy olvasói kérdés és egy válasz, bár én kicsit átdolgoztam, nehezebbé tettem a feladványt. Szóval ha van egy kis táblázatunk, mint a lenti képen látható, akkor hogy érjük azt el, hogy bizonyos szavak találata esetén az adott sor melletti cellába kiírjon egy bizonyos értéket?

530.jpgA mi esetünkben mondjuk "eladva" kulcsszó esetén egy egyest, "kibérelve" kulcsszó esetén egy kettest, "törött" kulcsszó esetén egy hármast, minden más esetben pedig egy négyest szeretnék látni.

Nem kell megijedni, csak elsőnek tűnik nehéznek, alapvetően nem beszélünk egy komplex problémáról, mindössze három függvényt kell hozzá ismernünk: az IF, az ISNUMBER és a SEARCH formulákat.

Az IF-et nem kell bemutatni, de már a másik kettőről is volt szó itt - mindenesetre ismétlés a tudás anyja, szóval az ISNUMBER a paramétereként megadott celláról, értékről megmondja nekünk, hogy számértékről van-e szó vagy sem, és ennek tükrében ad TRUE vagy FALSE értéket. A SEARCH pedig nagyon jó barát, az első paramétereként megadott szöveget fogja megkeresni a második paramétereként megadott szövegben, majd visszaadja annak a karakternek a számát, ahol a keresett szövegünk elkezdődik először.

Azaz a mostani példánknál maradva a

=SEARCH("eladva",A2)

függvény megmondja, hogy szövegünkben hányadik karaktertől kezdődik az "eladva" szó, már persze ha kezdődik, hiszen ha nem talál semmit, hibaüzenetet ad.

531.jpgMiért van szükségünk az ISNUMBER függvényre? Ahhoz, hogy később tudjuk az IF-et használni, a SEARCH által visszaadott szám helyett arra van szükségünk, hogy tudjuk, a SEARCH számot adott-e vissza vagy hibaüzenetet, ergó az

=ISNUMBER(SEARCH("eladva",A2)

függvény abban az esetben, ha A2-ben van "eladva" szó, ad egy TRUE-t, ha nincs, ad egy FALSE-t.

532.jpgInnen pedig már nem kell nagy Excel-mágusnak lenni, hogy lássuk mit kell tennünk - szimplán fogunk egy IF-et és megnézzük, hogy az eddigi függvényünknek mi az eredménye, ha TRUE akkor kiírjuk a fent megfogalmazott és elvárt egyest, ha nem, akkor mondjuk egy nullát:

=IF(ISNUMBER(SEARCH("eladva",A2)),"1",0)

533.jpgLátható, hogy ez szépen működik, tehát feladatunk első részét teljesítettük. Hogy érjük el, hogy legyen kettes, hármas és négyes szám is? Most jönnek az egyébként később sokszor nehezen értelmezhető beágyazások, hiszen a mi esetünkben arra kell kérnünk az Excelt, hogy ha nem talál "eladva" szót az A2-ben, akkor ne nullát írjon, hanem vizsgálódjon tovább:

=IF(ISNUMBER(SEARCH("eladva",A2)),"1",IF(ISNUMBER(SEARCH("kibérelve",A2)),"2"))

Azaz ha nincs "eladva" szócska, akkor teljesen ugyanezzel a függvénnyel megnézi, hogy van-e "kibérelve" szócska. Innentől kezdve pedig már csak türelmünktől és az elvárt vizsgálatok számától függ beágyazásunk nagysága, jelen esetben a feladatot a következő függvénycsomag oldja meg:

=IF(ISNUMBER(SEARCH("eladva",A2)),"1",IF(ISNUMBER(SEARCH("kibérelve",A2)),"2",IF(ISNUMBER(SEARCH("törött",A2)),"3","4")))

534_1.jpg

A bejegyzés trackback címe:

https://officeguru.blog.hu/api/trackback/id/tr318117624

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Rodolfo63 2015.11.27. 19:59:09

ha már az egyszerűségre megyünk rá, talán lehet mégtovább egyszerűsíteni :)

=IF(SEARCH("eladva",A2)>0,"eladva","")

majd egy filter a találatok oszlopára, amiből ki lehet szűrni az eladva találatot, és az új szóval bővített új függvényt be lehet tenni

nem tűnik annyira elegánsnak, mint egy többszörösen beágyazott dolog, de talán könnyebben tudják kiviteleznia kevésbé programozó gondolkodásúak is :)