Kategorie szkoleń | Egzaminy | Kontakt
  • 4
  • 4
  • 13.5K

Czy w funkcji JEŻELI warunkiem może być kolor komórki? Na przykład: =jeżeli (komórka ma kolor czerwony; A2+AB;0).

Karolina.

Karolina_Biernacka
  • Zapytał
  • @ Karolina_Biernacka | 26.06.2014
    • 8
    • 0
    • 9
Zaloguj się aby zadać pytanie
Pokrewne

Odpowiedzi (4)

  • 11

Bezpośrednio nie może. Chyba najprostszym rozwiązaniem byłoby napisanie w VBA funkcji:

Function kolor(komorka As Range)

    kolor = komorka.Interior.ColorIndex

End Function

Interior.colorindex zwraca numer koloru, użytego w formacie tła komórki.

Poniżej lista numerów kolorów:

 

 


Formuła w komórce, wyglądać będzie tak:

 = jeżeli(kolor(adres)=3;prawda;fałsz).

Proszę zerknąć do załącznika.

 

Załączniki

  • xlsm

    kolor komórki.xlsm ( 13K )
  • Odpowiedział
  • @ | 27.06.2014
  • TRENER ALTKOM AKADEMII
Komentarze
Witam. Czy jest opcja żeby funkcja automatycznie przeliczała wynik jeżeli nastąpi zmiana koloru komórki? Obecnie muszę po zmianie koloru komórki przeciągnąć formułę.
Skomentował : @ Slaw_Pra ,29.01.2020
  • 0
  • 0
  • 0
Dlaczego ta funkcja nie działa w Excel 2016?
Skomentował : @ Krzysztof_Janczuk_64jp ,06.04.2021
  • 0
  • 0
  • 0
szkoda, że nie da się tego jakoś odświeżać
Skomentował : @ Miro_Mro ,31.03.2022
  • 0
  • 0
  • 0
  • 8

Używam często funkcji UDF do sumowania wartości w zależności od koloru zaznaczenia, którą znalazłem tutaj:

http://www.exceltrick.com/how_to/sum-cells-based-on-background-color

Na stronie jest przykładowy plik. Po wklejeniu do modułu VBA można używać dodatkowej funkcji SumByColor (komórka zawierająca kolor, który ma być sumowany zakres sumowanych komórek).

Zmieniłem w niej jedynie rodzaj zmiennej cSum z Long na Double, bo wynik w wersji z Long nie był precyzyjny:

Function SumByColor(CellColor As Range, rRange As Range)
Dim cSum As Double
Dim ColIndex As Integer
ColIndex = CellColor.Interior.ColorIndex
For Each cl In rRange
  If cl.Interior.ColorIndex = ColIndex Then
    cSum = WorksheetFunction.Sum(cl, cSum)
  End If
Next cl
SumByColor = cSum
End Function
Function ColorIndex(CellColor As Range)
ColorIndex = CellColor.Interior.ColorIndex
End Function
Jacek_Kotowski
  • Odpowiedział
  • @ Jacek_Kotowski | 08.09.2014
    • lider
    • laureat
    • ekspert
    • 60
    • 54
    • 94
  • 0

Dlaczego ta funkcja nie działa w Excel 2016?

Jak powinna ona wyglądać dla tej wersji programu?

Krzysztof_Janczuk_64jp
  • Odpowiedział
  • @ Krzysztof_Janczuk_64jp | 06.04.2021
    • 0
    • 0
    • 0
  • 0

Dlaczego ta funkcja nie działa w Excel 2016?

Jak powinna ona wyglądać dla tej wersji programu?

Krzysztof_Janczuk_64jp
  • Odpowiedział
  • @ Krzysztof_Janczuk_64jp | 06.04.2021
    • 0
    • 0
    • 0