Új hozzászólás Aktív témák

  • Mutt

    aktív tag

    válasz Kloden #15853 üzenetére

    Hello,

    Már javasolták a HOL.VAN és INDEX opciókat, itt láthatod műkődés közben amit összeraktam (főleg HOL.VAN és ELTOLÁS-t használva).

    A fájlban az Órarend munkalapon van amiben keresünk, A-oszlopban vannak a hetek, a B-ben pedig az időpontok, a C-G oszlopokban a napi (hétfő, kedd, sb.) tanórák.

    Két megoldással is készültem:
    Az első nagyon egyszerű, mivel az aktuális hetet megjeleníti és elrejti egy egyszerű feltételes formázással a ki nem választott tantárgyat. A képernyő mentésen ezt látod felül.

    Ide elég kevés függvény kell:
    1. C1 cellában az aktuális hét sorszáma: =HÉT.SZÁMA(MA())
    2. C2 cellában van egy függvény: =HOL.VAN(C1;Órarend!A:A;0) , ezt egyszerűen fehér alapon-fehér betűszínnel elrejtettem, de megmondja, hogy az adott hét az Órarend táblának hanyadik sorában kezdődik.
    2. E2-ben van egy egyszerű adat érvényesítés (data validation).
    3. C4-ben ez van: =ELTOLÁS(Órarend!C$1;$C$2+SOR()-3;0)

    A C4 függvényt másold C4:G12 tartományba, ezzel eléred hogy mindig az aktuális teljes hetet fogod itt látni.
    A végső simítás már csak hogy elrejtsük feltételes formázással azon cellákat, amelyek nem egyenlőek E1-el.

    Én még itt kavartam egy kicsit, vagyis amikor nincs kiválasztva egy tantárgy, akkor mindent mutasson, így a függvényem: =ÉS($E$1<>C4;$E$1<>"")
    Ha ez a függvény igaz, akkor a cella betűszíne a háttérszínre állítódik.

    Készen is van.

    A második megoldás a képernyőn alul látható, amely szövegesen kiírja hogy melyik napon, melyik órában van a kiválasztott tantárgy. Ennek a megoldása már sokkal bonyolultabb, mivel az Excel számokban érzi jól magát és szövegekkel dolgozni sokkal nehezebb.

    Kell egy segédszámolás, hogy tudjuk melyik nap/melyik óra érintett. Ezt a számolást én a H17:M26 tartományban végeztem.
    1. H17-ben ez a függvény: =HOL.VAN(C1;Órarend!A:A;0)+1
    2. I17:M17-ben számok 1-től 5-ig vannak (1 hétfőt jelenti, 2 keddet stb).
    3. H18:M26-ban számok 8-tól 16-ig vannak az időpontok.
    4. I18-ban egy összetett függvény van: =HA($E$1="";(I$17+$H18/100);HAHIBA(HOL.VAN($E$1;ELTOLÁS(Órarend!C1;$H$17;0);0)*(I$17+$H18/100);""))
    Ezt 2 részből áll:
    - a második része (a HAHIBA-tól kezdődő) ugyanazt csinálja, mint az első megoldásban, vagyis az aktuális hét egy adott időpontját kiírja és ha az megegyezik a kiválasztott tantárggyal (ami E1-ben van), akkor ad egy számot. Ez a szám a tantárgy poziciója (pl. 2,09; amely azt jelenti hogy a második napon 09 órakor van a tantárgy).
    - az első része akkor ugrik be, amikor nincs kiválasztva E1-ben tantárgy.
    5. Az I18-ban lévő függvényt másold át I18:M26 tartományra.

    A segédtábla kész, esetleg rejtsd el majd

    Jöhet a kiíratás, hogy mikor vannak találatok.
    D16-os cellába tettem egy hosszű függvényt: =HAHIBA(VÁLASZT(INT(KICSI($I$18:$M$26;SOR()-15));"Hétfő";"Kedd";"Szerda";"Csütörtök";"Péntek")&" - "&INT((KICSI($I$18:$M$26;SOR()-15)-INT(KICSI($I$18:$M$26;SOR()-15)))*100)&" óra";"")

    Ennek a magja a KICSI(tömb;k) függvény, amely a tömbből a k-adik elemet adja vissza.
    Esetünkben a tömb a segédtábla, amelyben vagy üres mezők vagy poziciókat jelölő számok (pl. 4,12) vannak.
    A függvény többi része ezt a számot alakítja át. Előbb veszi az egész részét és az annak megfelelő napot kiírja (pl. 4 - Csütörtök), majd az időponthoz veszi a maradék részét (0,12) megszorozza 100-al hogy egész legyen.

    Vége.

    [ Szerkesztve ]

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

Új hozzászólás Aktív témák