Telefonszámunk: 1-472-0679

Excel 2013

Adatok módosítása szűrt tartományban – makró -VBA

Gyakori feladat, hogy egy szűrt táblázatban az egyik oszlopban az adatokat teljesen vagy részben másikra szeretnénk cserélni. Ezt kézi szerkesztéssel nagyon egyszerű megtenni, de ha a feladatot makró kódon belül szeretnénk megoldani (mert pl. egy nagyobb feladat része), akkor már nem annyira egyértelmű a helyzet.

Volt már egy korábbi anyag arról, hogy ha szűrt tartományba szeretnénk a vágólapról beilleszteni adatokat, de most nem erről van szó, hanem egyszerű felülírásról.

szurt_tartomany

Kézi módszer

Ez nagyon egyszerű, hiszen már jópár verzió óta az Excel kiválóan kezeli ezt  a problémát.

  1. Leszűrjük a táblát
  2. A módosítandó oszlopban az első elemet átírjuk
  3. Lehúzzuk az aljáig

Ha megszüntetjük a szűrést, akkor látni fogjuk, hogy csak az előzőleg szűrt adatok módosultak, a közbensők, amik a szűréskor rejtve voltak, nem változtak.

Makró – VBA módszer

Ha az előző műveletsort rögzítjük makróval, akkor a kódból nagyon gyorsan kiderül, hogy általánosan nem használható, tehát változó adattartalom esetén, ahol a szűrés más-más eredményt adna. Emiatt ezt a problémát kicsit komolyabban kell leprogramozni.

Elméleti háttér

Ha egy oszlop szűrt adatokat mutat, és abban módosítani szeretnénk, akkor előbb ki kell jelölni CSAK a látható cellákat.

  1. Kijelöljük a teljes, szűrt táblázatot (Ctl-A)
  2. Speciális kijelölés -> Csak a látható cellák

Látható cellák kijelölése

szurt_tablazat

Így viszont az oszlopban lévő adatok szétválnak egymástól, és ha újra kinyitjuk, azaz megszüntetjük a szűrést, akkor több, nem összefüggő tartományt fogunk látni.

Szurt-adatok-kijeloles-nem-osszefuggo

Tehát a makróval a kategória oszlopban lévő, látható tartományokat kell módosítani. Példánkban a „Beverages” szót, másik kategória névvel.

A Selection objektum

Ha több, nem összefüggő tartományt jelölünk ki, vagy hozunk létre a fenti módszerrel, attól az még a SELECTION objektummal lefedhető, és egy lépésben átírható a benne lévő összes cella értéke.

A Fejléc problémája

Mivel előre nem tudjuk, hogy milyen sorok fognak beleesni a szűrésbe, legegyszerűbb, ha a fejlécet is belevesszük a kijelölésbe. Viszont így annak az értéke is felülíródik. Ezt úgy oldjuk meg, hogy a felülírás előtt elmentjük a fejléc eredeti értékét, majd a végén visszaírjuk.

A VBA kód

A példában egy általánosabb megoldást adok, ahol a subrutin argumentumként kapja meg azt, hogy melyik oszlopban kell dolgoznia, és mire kell cserélni a szűrt elemeket.

A futás előtt feltételezi, hogy már a szűrés megtörtént, és az aktív cella a módosítandó oszlop fejlécén áll.

[vb]
Sub Replace_filtered_data(header_cell As Range, new_value As Variant)
Dim h As Variant

‘A fejléc tartalmának megjegyzése
h = header_cell.Value
‘A módosítandó oszlop kijelölése fejléccel együtt
Range(header_cell, header_cell.End(xlDown)).Select

‘Látható cellák kijelölése
Selection.SpecialCells(xlCellTypeVisible).Select

‘A létrejött, nem összefüggő tartomány feltöltése az új adattal
Selection.Value = new_value

‘A fejléc visszaírása
header_cell.Value = h
End Sub

Sub proba()

Call Replace_filtered_data(ActiveCell, Range("csere"))

End Sub

[/vb]

Letölthető gyakorló munkafüzet:  szurt_tartomany_modositasa

Az egészet működés közben, magyarázattal együtt láthatod a videóban

  • Szűrt adatok módosítása makróval

Tovább...

Feltételes összegzés és megszámlálás két dimenzióban

Az anyagban megmutatom, hogy lehet képlettel megoldani azt a feladatot, amikor a sor, illetve oszlop azonosítók alapján egyszerre kellene összesítést vagy megszámlálást csinálni. Volt egy korábbi anyag, ahol 2D keresést mutattam, de ez más.

Íme a probléma

2D-osszegzes-feladat

Tehát ugyanazok az értékek ismétlődgetnek a fejlécben, mint az első oszlopban. Nekünk pedig az alsó, összesített tábálázatot kell összehozni

Hű, ez nagyon érdekes. nem tudom, hogy mennyire gyakori probléma, de Nekem annyira megtetszett, hogy azt éreztem, ezt mindenképpen fel kell tenni az Excel Bázisra.

PIVOT?

Mivel ismétlődő fejléc elemek vannak, PIVOT-al nem lehet megcsinálni. Legalább is Én nem találtam rá megoldást. ha lenne valaki, aki IGEN, akkor commentben ossza már meg velünk!

MACRO?

Igen, makróval meg lehet csinálni. Egymásba ágyazott ciklusokkal. Már ha érted mire gondolok. Ez nagyobb táblázat esetén meglehetősen lassú, ráadásul tudni kell programozni, és a VBA nyelv ismerete is szükséges.

A megoldás – Képlet – SUM vagy SUMPRODUCT

Nem gondolnád, Igaz? Nézzük a feladatot konkretizálva az ‘A‘ kategóriára: Összesíteni kell az adattartomány azon elemeit, ahol a fejlécben ‘A‘ van és a sor elején is ‘A‘ van. Mivel az egyik feltétel vízszintesen van, a SUMIFS (Darabhatöbb) függvény nem jön számításba. Tömbökkel kell dolgoznunk, így esélyes, hogy tömbképlet lesz a megoldás.

Általánosan kb. így néz ki:

=ÖSSZEG((fejléc="A")  *  (Első oszlop="A") * (adatok))

A fenti kép alapján konkrétan, még mindig csak az „A” kategóriára

=SUMPRODUCT(($B$3:$B$12="A")*($C$2:$J$2="A")*($C$3:$J$12))

A SUMPRODUCT (SZORZATÖSSZEG) remek függvény. Kiválón alkalmas hasonló módon több feltétel szerinti összegzésre. Amíg nem volt 2007-es Excel, és nem nem volt SUMIFS (DARABHATÖBB), addig így lehetett csak hasonló problémákat megoldani.

Hogy működik?

Hát, ezt írásban meglehetősen hosszadalmas lenne elmagyarázni. Inkább nézd meg a videót. Abban elmondom, hogy mi a működés alapja, és megnézzük az összegzésen kívül a megszámlálást is.

Gyakorló munkafüzet: 2D-felt-osszegzes-megszamlalas

  • Két dimenziós összesítés

Tovább...

Az összes képlet átalakítása értékké egy kattintással

Gyakran felmerül az igény, hogy egy munkalapon a képleteket tartalmazó oszlopokat értékké alakítsuk. Ennek több oka is lehet:

  • Nem szeretnénk, hogy lássák a képleteket
  • Az értékké alakítással gyorsítjuk a működést, mert az Excel-nek nem kell állandóan újraszámolni  a képleteket

A probléma

A másolás / érték beillesztés műveletet mindenki ismeri. A baj az vele, hogy csak egy, összefüggő tartományban működik. Hiába jelölünk ki több tartományt pl. a Ctrl lenyomása mellett. A másolás is csak akkor működik, ha azonos a kijelölt területek sorainak a száma. De saját magára értékként nem lehet beilleszteni két egymással nem összefüggő területet.

Tobbszoros_kijeloles_ertek_beillesztes

A megoldás

A megoldás egy pár soros makró, ami kijelöli a képleteket tartalmazó cellákat (sorokat/oszlopokat), majd egy ciklussal végiglépked a kijelöléskor képződött területeken, és mindegyiket értékké alakítja.

[vb]

Sub keplet_helyett_ertek()

Range("a1").Select
‘Képleteket tartalmazó tartományok kijelölése
Selection.SpecialCells(xlCellTypeFormulas, 23).Select

‘A keletkezett területek bejárása és képlet-érték csere
For Each akt_range In Selection.Areas
akt_range.Formula = akt_range.Value
Next

End Sub

[/vb]

A fenti makrót másoljuk egy makró-munkafüzet egyik  moduljába, vagy a Personal (Egyéni) makró munkafüzet ,megfelelő moduljába, és máris kipróbálhatjuk.

A kapcsolódó videóban láthatjuk a folyamatot és a működést is. Ezen kívül mi van még a videóban?

  • Speciális kijelölés lehetőségei
  • Képleteket tartalmazó cellák kijelölése
  • Egyéni makró munkafüzet létrehozása (ha még nincs)
  • Makró elhelyezése az egyéni makró munkafüzetben
  • Eszköztár gomb rendelése a makróhoz

Tovább...

Az ‘ABC’ auto-kitöltése – érdekes és triviális

Az ‘autofill’ eszközt mindenki ismeri. Rengeteg dologra lehet használni, de ebben az esetben egy érdekes problémára mutatnék három megoldást.

Mit tennénk akkor, ha az ANGOL ABC-t szeretnénk a kitöltő eszközzel megoldani egy tartományban?

Egyéni lista – A triviális megoldás

Az első lehetőség adja magát. Egyéni listát (Custom List…) hozunk létre. Ezzel úgy fog működni a dolog, mint a hónapok vagy a hét napjai esetén. Ehhez egyszer le kell írni a listát egy tartományba, és onnan importálni.

Az egyéni listák szerkesztése Excel verziónként különböző helyen van az Excel beállítások között.

Excel 2007: Népszerű elemek -> Egyéni listák szerkesztése…

Excel 2010: Speciális -> Általános szakasz -> Egyéni listák szerkesztése…

Ha nagy nehezen megtaláltuk, akkor a beállító párbeszédablak már ismerős lehet, ez nem változott az Excel 2003-as, vagy talán még korábbi verziók óta.

  1. Begépeljük az ABC betűit egymás alá
  2. Beimportáljuk egy Egyéni listába

egyeni-lista

Ennek a megoldásnak az előnye az, hogy csak egyszer kell megcsinálni az importot, és bármely munkafüzetbe használhatjuk. Csak be kell írni egy cellába az ABC bármely betűjét, és lehúzni.

Kitöltés képlettel – első lehetőség

Ez a megoldás azon alapul, hogy a számítógép valójában a betűk kódját használja. Az „A” betű kódja a 65, a „B” betűé a 66, és így tovább. Az angol ABC-ben 26 betű van, az utolsó „Z” kódja a 90.

Kisbetűknél az „a” kódja a 97, a „z” kódja pedig a 122.

Az Excel CHAR() függvénye (magyar verziója a Karakter ) a kódból betűt állít elő. Az „A” betűt pl. így kapjuk meg:

=CHAR(65)
=KARAKTER(65)

Hogy lehúzható és automatikusan kitöltődő legyen, a 65 helyére egy 65-től folyamatosan növekvő képletet kellene találni, ami  a következő:

=CHAR(ROW(A65))
=KARAKTER(SOR(A65))

A fenti képletet beírva egy cellába, majd lehúzva, máris megvan az ABC.

A SOR ( ROW ) függvénynek bármely 65. sorban lévő cellát adhatjuk kezdőértéknek.

B65, C65, stb..

Kitöltés képlettel – második lehetőség

Itt azt csináljuk, hogy a kezdőbetűt beírjuk a lista elejére, és a következőket már számoljuk úgy, hogy az előtte lévő kódját képezzük, majd ahhoz egyet hozzáadva visszaalakítjuk betűvé. Így kapjuk a következő betűt.

1. Egy cellába(mondjuk C2-be) írjuk be az „A” betűt

2. A következő cellába ezt a képletet:

=CHAR(CODE(C2)+1)
=KARAKTER(KÓD(C2)+1)

Húzzuk lefelé a kitöltővel.

A Videóban mindez működés közben

  • Az ABC automatikus kitöltése

Tovább...

Két dimenziós keresés – VLOOKUP-INDEX-MATCH

Előfordulhat olyan feladat, amikor egy táblázat első oszlopában és a fejlécében kell megkeresni egy-egy konkrét értéket, és a kettő által adott metszéspontban lévő adatot szeretnénk kivenni, úgy, ahogy ez az alábbi ábrán látható.

2D-kereses-alaptabla

A feladat során lényeges, hogy mind az első oszlop, mind a fejléc egyedi adatsort tartalmaz, ahol nincs ismétlődő elem. Ez azért fontos, mert a kereséshez a közismert függvényeket fogjuk használni, amelyek alapesetben az első előfordulást keresik.

Két megoldást ismertetnék. Itt azonnal a megoldás látható, a videóban pedig ott  a magyarázat is.

1. VLOOKUP-MATCH páros (Fkeres-Hol.Van)

A lényeg az, hogy az egész táblára nézve a  ‘B’ oszlopban keressük VLOOKUP-al a kívánt autómárkát (Renault), és azt, hogy melyik oszlopból adja vissza az eredményt, nem egy konstans számmal adjuk meg, hanem a MATCH függvénnyel megkérdezzük, hogy a fejlécben a kívánt hónap (Március) hányadik.

1. lépés:  a VLOOKUP

=VLOOKUP("Renault";$B$2:$H$12;4;0)

A VLOOKUP megkeresi az első oszlopban a „Renault” szót, és a negyedik oszlopból visszaadja a 266-os értéket.

2. lépés: a MATCH

=MATCH("Március";$B$2:$H$2;0)

A MATCH megadja, hogy a fejlécben a „Március” hányadik

3. lépés: Egybe rakva

=VLOOKUP("Renault";$B$2:$H$12;MATCH("Március";$B$2:$H$2;0);0)

Az 1. lépésben lévő VLOOKUP  képletben a 4-es helyére beletettük a komlett MATCH részt.

INDEX-MATCH páros (Index-Hol.Van)

Ugyanezt a feladatot az INDEX függvénybe ágyazott két MATCH függvénnyel is meg lehet oldani. Ugyanis az INDEX pont azt tudja, amire itt szükségünk van, azaz egy táblázat adott számú sorában és adott számú oszlopának metszéspontjában lévő értéket ad vissza.

=INDEX(táblázat, sor_szám, [oszlop_szám])

INDEX-peldatabla

Ezt a lehetőséget ritkábban használjuk, sokkal gyakoribb, hogy az INDEX csak egy dimenziós sorozatban (oszlopban) keres, és a második (oszlop) argumentumot meg sem adjuk.

Tehát ha az INDEX függvény sor és oszlop argumentumaiba MATCH függvényekkel kiszámoltatjuk azt, hogy a „Renault” hányadik az első oszlopban, és a „Március” hányadik az első sorban, akkor meg is kapjuk a kettő metszéspontjában lévő értéket.

=INDEX($B$2:$H$12;MATCH("Renault";$B$2:$B$12;0);MATCH("Március";$B$2:$H$2;0))

Letölthető minta dokumentum: Ketdimenzios-kereses

A videóban a megoldást interaktívvá tesszük, azaz választható az autómárka és a hónap, és a megoldást bemutatom Táblázattá alakított tartományon is.

  • Két dimenziós keresés akció közben

Tovább...

Hiányzó kategóriák pótlása – Szuper gyors trükk

Talán már többen találkoztatok olyan táblázattal, amiben az egyik oszlopban olyan módon jelölték a csoportokat, ahogy az alábbi ábrán látható:

Hianyzo kategoriak

Az elképzelés, a szándék látszik, de az ilyen fajta csoportképzés legfeljebb nyomtatásban hasznos. Táblázatkezelés esetén lehetetlenné teszi a legegyszerűbb adatkezelő műveleteket is, mint pl. az Auto szűrő használata, vagy akár a PIVOT.

Mit kell tennünk ebben az esetben?

Mindenképpen ki kell egészíteni a hiányzó városneveket, azaz előállítani a javított táblázatot:

Javított kategóriák

A feladat hagyományos módszerekkel (másolgatás) meglehetősen reménytelennek tűnhet egy olyan táblázatban, ahol mondjuk több tíz vagy száz város van.

A trükk

Ha ki tudnánk jelölni az összes üres cellát, majd egyszerre feltölteni mindegyiket a felette lévő adattal, az megoldaná a problémát.

A Videóból kiderül, hogyan is kell ezt csinálni.

  • Kategóriák gyors pótlása

Tovább...

Struktúrált hivatkozás adattáblák használata esetén

A cikk megértéséhez tisztában kell lenni a TÁBLÁZAT fogalmával az Excel-ben. Erről részletesen egy korábbi cikkben lehet olvasni: Táblázatok az Excelben

A táblázatok használatának rengeteg előnye van. Ezek közül az egyik, hogy ha új sorokat vagy oszlopokat fűzünk hozzá, automatikusan kiterjeszti a táblázatot. Emiatt Dinamikus névtartományként is kiválóan használható.

Tartományi hivatkozás vs. Struktúrált hivatkozás

A legegyszerűbben ezt egy példán lehet bemutatni. Az alábbi tartomány táblázattá lett alakítva. A táblázat neve: ‘Forgalom

minta-adatok

Hogyan lehetne meghivatkozni az ID oszlop összes adatát?

Tartományi hivatkozással: =$A$2:$A$10

Struktúrált hivatkozással: =Forgalom[ID]

Ugye mennyivel olvashatóbb? Ráadásul nem kell foglalkozni azzal, hogy hány sora van a táblázatnak, mert a fenti hivatkozás mindig a teljes oszlopra fog vonatkozni.

Tehát a struktúrált hivatkozás azt jelenti, hogy a táblázat részeire nevekkel és nem címekkel hivatkozunk.

Minősített vs. nem minősített hivatkozás

Ez csupán annyit jelent, hogy ha a hivatkozás minősített, akkor tartalmazza a táblázat nevét is. Ekkor a képlet nem feltétlenül abban a táblázatban van, amire hivatkozunk, vagy egy táblázatból hivatkozunk egy másik táblázat valamely részére. nyilván ilyenkor meg kell mondani azt, hogy melyik táblázatról van szó.

Pl.: A fenti minta szerinti munkalap H1-es cellájába (ami ugye kívül esik a táblázaton) ki szeretném számolni, hogy hány terméknév van a D oszlopban:

=COUNTA(Forgalom[Termék])

Ha a hivatkozás az aktuális táblázatban van, pl. egy számított oszlop, ami másik, ugyanabban a táblázatban lévő oszlopok adatait használja, akkor a hivatkozáshoz elég az oszlop neve. Ez lesz a nem minősített hivatkozás.

Pl.: A ‘mennyiség’ és az ‘egységár’ oszlopokból szeretnénk számítani az ‘Érték’ oszlopot, közvetlenül a ‘G’ oszlopba:

=[mennyiseg]*[egysegar]

Ezt a G oszlop bármely cellájába beírva, az egész oszlopot kitölti a megfelelő eredménnyel.

Struktúrált hivatkozások bevitele (Bővebben a videóban)

  • Egérrel kattintgatva a megfelelő helyeken, vagy
  • Billentyűzetről gépelve, amihez azért jelentős támogatást kapunk. Vannak olyan hivatkozások, amelyeket csak billentyűzettel lehet megfelelően bevinni.

Speciális hivatkozások

A következő példákban a táblázat neve: ‘Forgalom

Hivatkozott rész Angol Excel Magyar Excel
A teljes táblázat az oszlopfejlécekkel, adatokkal és
összesítésekkel (ha van) együtt.
Forgalom[#All] Forgalom[#Mind]
Csak az adatok fejléc nélkül Forgalom[#Data] Forgalom[#Adatok]
Csak a táblázat fejlécsora Forgalom[Header] Forgalom[#Fejlécek]
Csak az ‘Összeg’ oszlop fejléccel együtt Forgalom[[#All],[Összeg]] Forgalom[[#Mind],[Összeg]]
Több, összefüggő oszlop =Forgalom[[Termék]:[mennyiseg]] =Forgalom[[Termék]:[mennyiseg]]

Ha a hivatkozásban csak a táblázat nevét használjuk, az megfelel a [#Data] használatának.

tehát az =Forgalom ugyanaz, mint az =Forgalom[#Data]

Hivatkozás az aktuális sorban

Ez Excel 2007 esetén a [#This Row] magyar verzióban [#Ez a sor] jelölővel, Excel 2010-től pedig a @ jellel történik.

Ezt a jelölőt az Én tapasztalataim szerint nem kell használni, attól még egy számított mezőnél felfogja, hogy az aktuális sorban kell dolgoznia, de vannak esetek, amikor ez lényeges lesz, például gördülő összeg számításakor, ha ilyen hivatkozást szeretnénk használni.

Aktuális sorban egy adott
oszlop cellája
Angol Excel Magyar Excel
Excel 2007 =Forgalom[[#This Row];[mennyiseg]] =Forgalom[[#Ez a sor];[mennyiseg]]
Excel 2010-től =[@mennyiseg] =[@mennyiseg]

Figyelem! Visszafelé nem kompatibilis! Az Excel 2007 nem fogja érteni a @ jelet!

Táblázat visszaalakítása tartománnyá. Mi lesz a hivatkozásokkal?

A struktúrált hivatkozások átalakulnak tartományi hivatkozássá. Ha a tartományt újra táblázattá alakítjuk, akkor ezt már nem követi vissza.

A kapcsolódó videóban mindez bővebben, néhány további érdekességgel, beállítási lehetőséggel megtekinthető.

Letölthető munkafüzet a gyakorláshoz: strukturalt_hivatkozas_nyers

  • Struktúrált hivatkozások alapjai

Tovább...

Az Excel alap sablonjának megváltoztatása

Milyen jó lenne, ha minden új dokumentum nyitásakor (fehér lapocska) egy olyan üres munkafüzet nyílna meg, ami már tartalmaz néhány alap beállítást, formátumot, cellastílust, stb…

Sőt az sem lenne rossz, ha új munkalapot nyitunk, az szintén tartalmazhatna néhány beállítást, pl. élőfej-élőláb beállítást, oszlopszélességeket, stb…

Többször kérdezték már tőlem pl. azt, hogy lehetne-e alap beállításként a celláknak 2 tizedesjegy formátumot beállítani az általános (general) helyett?

Hangsúlyozom, hogy nem egy szokásos sablonról beszélünk, amit *.xlt vagy *.xltx típusként mentünk a sablonjaink közé, hanem itt most az alapértelmezett sablonról beszélünk.

Készíthetünk alap munkafüzet sablont és alap munkalap sablont is. Utóbbit fogja használni az Excel új munkalap beszúrásakor.

Minden a megfelelő helyen és a sablonfájl nevén múlik

A hely, ahová menteni kell a sablonfájlokat

XP oprendszer esetén

Minden felhasználónak:

C:\Program Files\Microsoft Office\<OfficeXX>\XLSTART

<OfficeXX> lehetséges értékei

Office12: Office 2003
Office14: Office 2007
Office15: Office 2013

Csak egy adott felhasználónak, pl. saját magunknak:

C:\Documents and Settings\<felhasználónév>\Application Data\Microsoft\Excel\XLStart

Vista oprendszertől

Minden felhasználónak ugyanaz, mint az előbb

Csak egy adott felhasználónak, pl. saját magunknak:

c:\Users\<felhasználónév>\AppData\Roaming\Microsoft\Excel\Xlstart\

Fájlnevek

Angol verzió esetén

Munkafüzet sablon: Excel 2003-ig Book.xlt, Excel 2007-től Book.xltx

Munkalap sablon: Excel 2003-ig Sheet.xlt, Excel 2007-től Sheet.xltx

Magyar verzó esetén

Munkafüzet sablon: Excel 2003-ig Munkafüzet.xlt, Excel 2007-től Munkafüzet.xltx

Munkalap sablon: Excel 2003-ig Munkalap.xlt, Excel 2007-től Munkalap.xltx

A munkafüzet sablonban beállíthatjuk, hogy hány munkalappal induljon (Célszerű eggyel), megadhatjuk a szükséges cellastílusokat,

A munkalap sablon nem tartalmazhat egynél több munkalapot. Ezen az egy munkalapon beállíthatjuk a szükséges formátumokat,oldalbeállításokat, és minden új munkalapot ezen sablon alapján fog beilleszteni a munkafüzetekbe.

Nézzük mindezt működés közben

  • Az alap sablon módosítása

Tovább...

Táblázat rendezése oszlopok alapján

A táblázatok ugyebár sorokból és oszlopokból állnak. Gyakori művelet, amikor a táblázat sorait egy vagy akár több oszlop alapján sorba rendezzük. Például név szerint vagy érték szerint növekvő vagy csökkenő sorba.

Az erre szolgáló gombokat is mindenki ismeri.

rendezes

Igen ám, de mi van akkor, ha a táblázat oszlopait szeretnénk rendezni valamelyik sorban lévő értékek alapján? A következő példában a nevekhez tartozó oszlopokat szeretnénk névsor szerint rendezni úgy, hogy a napok a helyükön maradjanak.

rendezes_elott

Rendezés előtt

rendezes utan

rendezés után

Megoldás

A rendezés előtt be kell állítani, hogy nem oszlop szerint (fentről lefelé) hanem sorok szerint (balról jobbra) szeretnénk rendezni. Ezt a rendezés párbeszédablakban lévő „Options…” (Beállítások) gomb mögött tudjuk megtenni.

  • Data -> Sort -> Options -> Left to Right
  • Adatok ->Rendezés ->Beállítások ->Balról jobbra

Oszlopok rendezése

Ezután jelöljük ki a táblázatot az első oszlop nélkül, hiszen a hét napjait ott szeretnénk hagyni.

Most jön a rendezés végrehajtása. (Sort / Rendezés gomb)

rendezes_parbeszed

A rendezés beállítása sor alapján

Ezt az Excel korábbi verzióiban is meg lehetett csinálni. A rendezés párbeszéd bal alsó sarkában ott van az ‘Options…’ gomb

Mindez működés közben

  • Oszlopok rendezése sorok szerint

Tovább...

Dátumból negyedév számítás – hagyományos és érdekes megoldás is!

Feltételezve, hogy a vizsgált év január 1 és decmber 31 között tart, az adott dátumhoz kapcsolódó negyedévet a következő képletekkel lehet számítani:

Hagyományos módszer

A Hónap (MONTH)  függvénnyel kivesszük a dátumból a hónapot,ehhez kettőt hozzáadunk, majd az így kapott eredményt hárommal osztjuk, és képezzük az eredmény egész részét.

Feltételezve, hogy az átalakítandó dátum az ‘A2’ cellában van, abból így számolhatunk negyedévet:

=INT((MONTH(A2)+2)/3)

Érdekes módszer

A Választ (CHOOSE) függvényről már egy másik anyagban említést tettem. Ebben az esetben is tökéletesen használható. Ha az adott dátum (A2) hónap értéke 1 vagy 2 vagy 3, akkor 1. negyedév, ha 4, 5, vagy 6, akkor második negyedév, stb. Tulajdonképpen pontosan úgy működik, mint ahogyan mi fejben számítjuk a negyedévet.

CHOOSE(MONTH(A2),1,1,1,2,2,2,3,3,3,4,4,4)

A választ fv. első paraméterében kiszámolja az ‘A2’-ben lévő dátum hónap értékét, majd az ezt követő argumentum listájából az annyiadikat választja.

Lássuk működés közben:

  • Negyedév számítása a VÁLASZT függvénnyel

Tovább...