< návrat zpět

MS Excel


Téma: Výpočet hodnoty podle barvy buňky rss

Zaslal/a 28.8.2026 14:30

Ahoj všichni, potřeboval bych poradit. Na netu jsem si našel makro, které spočítá hodnoty v buňkach ve sloupci. Problém je, že někdo nejdřív napíše číslo a pak změní barvu buňky a někdo to udělá naopak. V tom prvním případě to excel nesečte, protože změna barvy buňky je definována uživatelem a excel to nebere. Exelem měnit barvy není v tomto případě možné. Je nějaká možnost, aby třeba po stisknutí tlačítka to excel znovu projel a vrátil správnou hodnotu? Nebo pojmout řešení nějak jinak? Nèjaký nápad?

Děkuju za pomoc Libor

Modul1:

' Function to sum cells in rRange that have the same background color as Cellcolor
Function SumColor(Cellcolor As Range, rRange As Range) As Double
Dim c As Range
Dim total As Double
Dim targetColor As Long

' Validate inputs
If Cellcolor Is Nothing Or rRange Is Nothing Then
SumColor = 0
Exit Function
End If

' Get the color index of the reference cell
targetColor = Cellcolor.Interior.Color

' Loop through each cell in the range
For Each c In rRange
' Check if the cell has the same background color
If c.Interior.Color = targetColor Then
' Ensure the cell contains a number before adding
If IsNumeric(c.Value) Then
total = total + c.Value
End If
End If
Next c

' Return the sum
SumColor = total
End Function

Funkce v Listu:
=SumColor($C$3841;QI2:QI3843)

Zaslat odpověď >

#057703
avatar
Změna barvy v buňce není změna hodnoty => neaktivuje se přepočet listu.

Zajímavé je, že použití štětce přepočet spustí.

Tj. po změně barvy je nutné přepočíst list 'ctrl-shift-F9'

Nápad označit buňky barvou a pak sečíst hodnoty vypadá sice dobře, ale má své nevýhody.
1. V této podobě vyžaduje VBA
2. Snadno se vybere podobná barva, pak se složitě hledá chyba.
3. Makro je hodně pomalé, hodí se to jen na malá data
4. Je nutné zajistit přepočet listu.
c-f-f9 spustí přepočet všeho - v kombinaci s rychlostí makra a většho sešitu je to hodně otravné.
5. Obvykle jsem chtěl také některé barvy dočasně skrýt.

+ ještě něco, už si to nepamatuju.

Tak jsem přešel na pomocné sloupce s texty + podmíněné formátování.
- Barvy v pomocném sloupci se dají vybírat z menu (validace dat)
- Barvy lze snadno pomocí podmínky skrýt - přehlednější práce.
- sumace pomocí *.ifs funkcícitovat
#057704
avatar
Děkuju za odpověď. Nevím jak bych to jinak udělal než pomocí makra. Problém je, že funkce dokáží fungovat jen s číselnými hodnotami. Aspoň všechny nápovědy na netu k funkcím se tak tváří. Ale to je jen moje doměnka. Nevím, pomocí které funkce bych to měl udělat. Dokonce jsem zkoušel hit poslední doby. Nechal jsem si napsat makro od AI. Bylo super. Co tohle makro přepočítá během pár sekund (4000 řádek), to od AI vytěžovalo všech 12 jader a asi 10 sekund se nedalo s listem pracovat. Pokud by někdo věděl nějaké konkrétní elegantnější řešení, byl bych moc rád.

Díkycitovat
#057705
avatar
Pokud to chcete řešit makrem, tak samozřejmě můžete. Problémy jsem popsal. Většina z nich je nicotná, jen se musíte smířit s tím, že ne vždy bude suma správně.

Přepočet je snadný, ale pokud ten někdo bude volit barvu jinou, než tu kterou hledáte, tak taková chyba se někdy hledá dost dlouho.

Navíc makro to je hodně pomalé - při malém počtu řádků čekat pár sekund na každou aktulizaci by mne nebavilo.

Problém s funkcemi a číselnými hodnotami nechápu.

Pokud ve sloupci (třeba) QK2:QK3843 budete označíte políčko např. hodnotou 1,
tak vzorec =SUMIFS(QI2:QI3843;QK2:QK3843;1) sečte hodnoty označených řádcích.

Značka může být číslo, text...

A barvy doplní podmíněný formát. Pokud formátem vyplníte jen pomocný sloupec, tak je to dál primitivní úloha.citovat
#057707
avatar
...a šlo by to tedy vyřešit vzorcem? Mám ve sloupci hodnoty a dole součet jen tech buněk, které mají jen zelenou barvu, o řádek níž součet toho samého sloupce ale jen těch buněk, které jsou oranžové atd. V pomocném sloupci budou obsažené tyto barvy jako mustr.citovat
#057708
avatar

LiborL napsal/a:

...a šlo by to tedy vyřešit vzorcem?


Jak jsem už psal výše, ano.

LiborL napsal/a:

Mám ve sloupci hodnoty a dole součet jen tech buněk, které mají jen zelenou barvu, o řádek níž součet toho samého sloupce ale jen těch buněk, které jsou oranžové atd.


LiborL napsal/a:

V pomocném sloupci budou obsažené tyto barvy jako mustr.


Proč "mustr"? Do pomocného slouce napište kód barvy třeba zelená, oranžová, červená, ...

Raději zkratky, celé názvy se hůře vyplňují.

Pro lepší orientaci přidejte podmíněný formát, který kód (název, zkratku, ...) v pomocném sloupci převede na skutečnou barvu.

Vzorec viz výše. Ve vzorci z příkladu nahraďte hledanou hodnotu (1) za odkaz na buňku, ve které je skutečný kód.

Pozn. *ifs funkce (sumifs, maxifs, ...) jsou velmi rychlé, obvykle o několik řádů rychlejší než makra.citovat
#057709
avatar
Dobrý den,

děkuji, že se mi snažíte pomoct ale nějak tomu nerozumím...

"Proč "mustr"? Do pomocného slouce napište kód barvy třeba zelená, oranžová, červená, ...

Raději zkratky, celé názvy se hůře vyplňují.

Pro lepší orientaci přidejte podmíněný formát, který kód (název, zkratku, ...) v pomocném sloupci převede na skutečnou barvu.

Vzorec viz výše. Ve vzorci z příkladu nahraďte hledanou hodnotu (1) za odkaz na buňku, ve které je skutečný kód."citovat
#057710
avatar
Dobře.

1. Do buňky QN2 napište "Z".
2. Do buňky QM2 napište:
=SUMIFS($QI$2:$QI$3843;$QK$2:$QK$3843;$QN2)

3. Do buňky QK2 napište "Z".

Co je výsledkem v buňce QM2 ???

4. Do buňky QK5 napište "Z"

5. Zkopírujte buňku QM2 do buňky QM3
6. Do buňky QK3 napište "M"
7. Do buňky QK4 napište "M"

Co je výsledkem v buňce QM2 ???
Co je výsledkem v buňce QM3 ???

Dále použijte podmíněné formátování na blok $QK$2:$QK$3843.
Nastavte v podmínce barvu pozadí "zelená" pokud je v buňce "Z" a modrou když v buňce je "M"

Jak popisovat tady nebudu, postupů jsou na netu tuny.citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje