Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Solved] Excel zliczanie ile komórek ma kolor tła czerwony i jednoczesnie wartość 4

mar-ilo 12 Apr 2018 17:18 7977 9
  • #1
    mar-ilo
    Level 11  
    Witam!
    Mam plik excel w takim układzie:
    Excel zliczanie ile komórek ma kolor tła czerwony i jednoczesnie wartość 4

    Udało mi się za pomocą funkcji zaprogramować, że automatycznie zlicza ile razy każda osoba z wymieniona w kolumnie K wystąpiła w kolumnie C, automatycznie zlicz mi ile razy konkretna karta o numerach 1-15 z kolumny N występuje w kolumnie B, teraz potrzebuję jeszcze aby automatycznie podliczało mi ile razy dla poszczególnego numeru z kolumny N występującego w kolumnie B w przedziale D6:E111 występuje pole o kolorze tła czerwony.
    w kolumnie P ma zliczać ile razy "1" ma czerwone tło , jeśli "2" jest czerwona to ma zliczać w Q itd.

    Bardzo proszę o pomoc w zaprogramowaniu funkcji, nie wiem jak sprawić aby zliczało na podstawie koloru tła.

    W załączniku dodaję plik, aby bardziej zobrazować problem. Pola P6:S19 wypełniłem ręcznie aby pokazać jak ma to być podliczone finalnie.
  • #4
    mar-ilo
    Level 11  
    Wprowadziłem w komórce S8 (dodałem 2 kolumny i 2 wiersze w stosunku do przykładowego pliku) następującą formułę =LICZ.WARUNKI($E$8:$E$113;$S$7;$B$8:$B$113;$Q8) która sprawdza ile razy numer karty jest wymieniony w kolumnie B oraz ile razy w podanym zakresie występuje 1, nie bardzo wiem w jaki dokładnie sposób i przy użyciu której konkretnie funkcji dodać formułę sprawdzającą dodatkowo kolor LiczKolor(E8:E113;3), tak aby podliczała tylko dla konkretnej liczby czerwone pola.

    Gdy wstawię to jako kolejny warunek:
    =LICZ.WARUNKI($E$8:$E$113;$S$7;$B$8:$B$113;$Q8;E8:E113;LiczKolor(E8:E113;3))
    mimo że pokolorowane mam tylko jedno pole w tym zakresie zwraca wartość 5
    Excel zliczanie ile komórek ma kolor tła czerwony i jednoczesnie wartość 4

    pomoże ktoś z większą wiedzą? ja niestety utknąłem w martwym dla mnie punkcie...
  • #5
    Prot
    Level 37  
    Jak już odpowiadałem Ci na PW

    Gdybyś poczytał dokładnie wszystkie wpisy z Twojego wątku (również z tego podlinkowanego) to miałbyś sporą kopalnię wiedzy nt "zliczania kolorów" :please:

    Na początek zatem trzeba ustalić, że:
    - metody liczenia kolorów tła komórki dotyczą jedynie formatowania ręcznego lub formatowania przez makro - nie dotyczą w ogóle formatowania warunkowego :cry: ;
    - w jakiej wersji Office działasz - od wersji 2007 istnieje możliwość filtrowania wg kolorów i pośrednio na zliczanie kolorów tła;
    - co chcesz uzyskać poprzez swoją formułę:
    =JEŻELI(WYSZUKAJ.PIONOWO($N$8;B8:B21;1);LiczKolor(D8:D21;3);"")
    przeanalizuj: wyrażenie testowe może mieć tylko dwa wyjścia: PRAWDA lub Fałsz -
    a Twoje WYSZUKAJ :?: - gdyby było prawidłowo utworzone da Ci w rezultacie tylko
    wartość "odnalezionej" komórki w wyszukiwanym zakresie tj = $N$8 lub błąd #N/D! jeśli w tym zakresie wartości tej nie będzie (tak jak w Twoim przykładowym pliku ) :D

    Dodano po 5 [godziny] 53 [minuty]:

    mar-ilo wrote:
    =LICZ.WARUNKI($E$8:$E$113;$S$7;$B$8:$B$113;$Q8) która sprawdza ile razy numer karty jest wymieniony w kolumnie B oraz ile razy w podanym zakresie występuje 1,

    Precyzyjnie ujmując to ta formuła liczy jednak tylko te przypadki w których jednocześnie spełnione są oba warunki - "numer karty" = 1 oraz "odpowiadał na pytanie" nr 1 - :D
    mar-ilo wrote:
    =LICZ.WARUNKI($E$8:$E$113;$S$7;$B$8:$B$113;$Q8;E8:E113;LiczKolor(E8:E113;3))
    mimo że pokolorowane mam tylko jedno pole w tym zakresie zwraca wartość 5

    Funkcja LICZ.WARUNKI(Zakres1;Warunek1;Zakres2;Warunek2;...) ma ściśle określoną strukturę i nie możesz bez określenia zakresu3 wprowadzać niewłaściwego kryterium wyróżniania :cry:

    Dla przygotowania jakiejś sensownej formuły - potrzebował bym zrozumienia jak to ma funkcjonować :?: Kto ? Na jakiej podstawie ? Koloruje te komórki na czerwono ? Czy nie można tego oznaczyć inaczej ?
  • Helpful post
    #6
    adamas_nt
    Moderator of Programming
    Skoro już VBA, to można rozwinąć funkcję "LiczKolor" do "LiczKolorJeżeli", Np
    Code: vbscript
    Log in, to see the code

    Wtedy w P21 wpisujesz:
    Code: text
    Log in, to see the code
    i przeciągasz w prawo.

    Podobną funkcją (dokładając zmienne) możesz "policzyć drobne" w zakresie P6:S20, a sumowanie zostawić tak jak jest.
  • #7
    lanzul
    Level 30  
    Prot wrote:
    ... metody liczenia kolorów tła komórki dotyczą jedynie formatowania ręcznego lub formatowania przez makro - nie dotyczą w ogóle formatowania warunkowego ...

    Swobodne moje "spostrzeżenie":
    Można jedynie stwierdzić, czy "w ogóle" nałożony jest kolor w formatowaniu warunkowym, odnosząc to do np. braku koloru w ogóle, i nawet podać nr tego koloru, np.:
    Code: vba
    Log in, to see the code

    "nie można" zaś stwierdzić (pewnie w 99% przypadków ?), czy akurat w danej chwili jest on wyświetlany.
    W przypadku bardzo prostych formuł pewnie jest to wykonalne, można by bowiem pokusić się o analizę:
    Code: vba
    Log in, to see the code

    dla np.:
    Code: vba
    Log in, to see the code

    każdego z obiektów:
    Code: vba
    Log in, to see the code

    w odniesieniu do zawartości komórki ...

    ... ale to naprawdę "chciałoby się musieć komuś bardzo chcieć", siedzieć nad tym i pisać pracę doktorską, dla samej swojej satysfakcji "ruszania szarymi komórkami", cokolwiek to oznacza, czy nie oznacza ... :)
  • #8
    Prot
    Level 37  
    mar-ilo wrote:
    Bardzo proszę o pomoc w zaprogramowaniu funkcji, nie wiem jak sprawić aby zliczało na podstawie koloru tła.

    Po głębszej analizie Twojego "problemu" dochodzę do wniosku, że najprostszym rozwiązaniem w Twoim wypadku będzie zmiana budowy arkusza :D - zastosowanie innego układu (np jak na zrzucie)
    Excel zliczanie ile komórek ma kolor tła czerwony i jednoczesnie wartość 42018-04...png Download (43.69 kB)

    pozwoli Ci na zastosowanie najprostszych formuł zwykłego sumowania lub sum warunkowych dla wykonania potrzebnych wyliczeń :ok:
    protpy..lsx Download (14.18 kB)Points: 1.5 for user
  • #9
    mar-ilo
    Level 11  
    adamas_nt wrote:
    Skoro już VBA, to można rozwinąć funkcję "LiczKolor" do "LiczKolorJeżeli", Np


    Faktycznie zlicza ile razy jaka wartość jest pokolorowana na czerwona ale łącznie dla wszystkich wierszy a chciałbym jeszcze dodać aby porównywało numer karty z kolumny N (wartość 1, 2, 3, 4 itd.) z pozycjami w kolumnie B i podliczało dla konkretnych kart. W P6 miałoby policzyć pokolorowane tylko te wiersze dla których w kolumnie B będzie 1

    Obecnie podlicza wszystkie wystąpienia czerwonej 1, 2, 3 i 4 a chciałbym aby podliczało w poszczególnych wierszach gdy w kolumnie N będzie taka sama wartość jak w kolumnie B

    Prot wrote:
    Po głębszej analizie Twojego "problemu" dochodzę do wniosku, że najprostszym rozwiązaniem w Twoim wypadku będzie zmiana budowy arkusza - zastosowanie innego układu (np jak na zrzucie)


    Niestety układ pliku nie może być zmieniony, musi pozostać taki jaki jest.
  • #10
    mar-ilo
    Level 11  
    Wielkie dzięki adamas_nt - działa super :-)