Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Excel makro lub formuła do obliczania ile zostało dni do...

karolczyzycki 19 Sty 2010 23:25 6572 10
  • #1 19 Sty 2010 23:25
    karolczyzycki

    Poziom 20  

    Witam.
    Mam taki nietypowy zadanie do zrobienia, chciałbym utworzyć makro, lub napisać formułę która na podstawie dzisiejszego dnia, obliczy ile zostało dni roboczych do końca miesiąca.
    Excel makro lub formuła do obliczania ile zostało dni do...
    Zrobiłem takie pomocnicze tabelki:
    1. nazwa dnia
    2. numer dnia
    3. dni: robocze-"0" wolne-"1"
    4. jeśli zaznaczony dzień = któremuś na liście, wtedy wstaw "1"

    Mam dwateoretycznych rozwiązania tego problemu, ale ani jednego praktycznego:
    Zliczanie "0" (w określonym zakresie) aż do napotkania "1"
    lub
    Formuła licz.jeżeli której zakres zależy od położenia "1"

    0 10
  • Pomocny post
    #2 20 Sty 2010 00:06
    yogi009
    Poziom 42  

    Jak już zrobiłeś taką ładną tabelkę, to pomyśl, czy nie lepiej, zamiast zagnieżdżać wiele razy funkcję jeżeli(), dać sumowanie warunkowe albo liczbę komórek niepustych z zakresu od podanego dnia do końca miesiąca. Jedynym tematem będzie eleganckie podstawienie adresu początku zakresu do funkcji. Osobiście zaznaczyłbym dni robocze jako niepuste (dowolny znak), a wolne jako puste (nie spacje), wtedy funkcja ile.niepustych() działa na takim zakresie niejako standardowo.

    0
  • #3 20 Sty 2010 00:30
    karolczyzycki

    Poziom 20  

    Czyli mam coś takiego:
    Excel makro lub formuła do obliczania ile zostało dni do...
    21 liczba dni roboczych w całym miesiącu
    13 liczba dni roboczych, od danego zakresu, do końca.
    Ale to jest przypisane na sztywno, czyli zmieniając dzień zakres zostaje...
    Jak to powiązać?

    0
  • Pomocny post
    #4 20 Sty 2010 06:58
    adamas_nt
    Moderator Programowanie

    Można wykorzystać funkcję ADR.POŚR. Np coś w ten deseń

    Code:
    =SUMA(ADR.POŚR("J"&A4-6):AN7)
    Zakładając, że A4 to komórka, w którą wpisujesz dzień miesiąca.

    0
  • #5 20 Sty 2010 10:46
    kernel-panic
    Poziom 16  

    hmm
    tochyba mu poda ilość dni wolnych nie roboczych

    0
  • Pomocny post
    #6 20 Sty 2010 11:08
    yogi009
    Poziom 42  
  • Pomocny post
    #7 20 Sty 2010 15:57
    adamas_nt
    Moderator Programowanie

    Sorry za zamieszanie. Dane ułożone są w poziomie przecież. Należy uderzyć w inny Np taki deseń

    Code:
    =SUMA(ADR.POŚR(ADRES(7;A4-7)):AN7)
    Wciąż zakładając, że A4 to komórka z dniem miesiąca.

    0
  • #8 20 Sty 2010 20:09
    karolczyzycki

    Poziom 20  

    Nie działa tak jak powinno...
    Nie bardzo rozumiem po co jest to 7 i -7?
    A4 to dzień, np. 13 i formuła liczy ile jest jedynek aż do komórki AN7 ?
    Jeśli a4 = 20 to liczy od numeru 20 aż do AN7 ?

    0
  • Pomocny post
    #9 20 Sty 2010 23:14
    adamas_nt
    Moderator Programowanie

    Chodzi o sumę zakresu. Wartość pierwszego argumentu funkcji SUMA określana jest przez funkcję ADR.POŚR gdzie zmienia się Nr kolumny (dane w poziomie) i dlatego użyłem funkcji ADRES.
    Pierwszym argumentem funkcji ADRES jest Nr wiersza, drugim Nr kolumny. Pomniejszyłem go o 7 sugerując się adresem z Twojego rysunku. Dopasuj go do arkusza. Jeśli 13 dzień to kolumna N, to

    Code:
    ADRES(7;A4+1)
    bo 13 (wartość z A4) + 1 = 14 czyli kolumna N. Podstawiając wynik ADR.POŚR(ADRES(7;A4+1) gdzie A4=13 do SUMA wyjdzie
    Code:
    SUMA(N7:AN7)

    0
  • #10 20 Sty 2010 23:30
    karolczyzycki

    Poziom 20  

    Działa super.
    Kiedyś w makro używałem właśnie liczby jako, oznaczeń kolumn, ale teraz zapomniałem że można z tego skorzystać.
    I zastanawiało mnie jak liczyć kolumny, gdyby to były wiersze to byłoby łatwiej, bo są to liczby.
    Dzięki za pomoc.

    0
  • #11 20 Sty 2010 23:39
    yogi009
    Poziom 42  

    I taki finał cieszy najbardziej, bo człowiek widzi, że podsunął pomysł, a nie przememłaną papkę jako gotowe rozwiązanie. Gratuluję sukcesu, dociekliwość to podstawa :-)

    0