Mam arkusz kalkulacyjny z około 300 wierszami. Każdy wiersz ma około 15 kolumn, a każda komórka zawiera wartość liczbową. Każdy rząd odpowiada produktowi.
Chcę uzyskać program Excel dla każdego produktu, aby podświetlić komórki o najwyższych liczbach na czerwono i najniższych liczbach na żółto, z gradientem dla liczb pomiędzy nimi. Tak się dzieje, jeśli zaznaczę wiersz (konkretnie 15 komórek w wierszu, które zawierają moje dane), a następnie kliknę Formatowanie warunkowe> Skale kolorów> Skala kolorów czerwono-żółta.
Mam jednak 300 wierszy i wybranie każdego wiersza z osobna i ustawienie formatowania warunkowego potrwa zbyt długo. Z drugiej strony, jeśli wybiorę cały zakres i zastosuję formatowanie warunkowe, program Excel obliczy kolory na podstawie całego zakresu, podczas gdy w rzeczywistości chcę, aby były obliczane na podstawie rzędów. Na przykład weź te przykładowe dane:
1 2 3
4 5 6
7 8 9
Dane wyjściowe, które chcę, używając Y dla żółtego, O dla pomarańczowego, R dla czerwonego, to:
Y O R
Y O R
Y O R
Jeśli jednak wybiorę cały zakres i zastosuję formatowanie warunkowe, otrzymam:
Y Y Y
O O O
R R R
Czy istnieje sposób na osiągnięcie tego bez robienia pojedynczych rzędów?
źródło
Odpowiedzi:
Oto makro, które tworzy format warunkowy dla każdego wiersza w wybranym zaznaczeniu. Robi to, kopiując format pierwszego wiersza do KAŻDEGO wiersza w zaznaczeniu (jeden po drugim, nie całkowicie). Zamień B1: P1 na odniesienie do pierwszego wiersza w tabeli danych.
Aby użyć, zaznacz niesformatowane wiersze w zbiorze danych (w moim przypadku B2: P300 ), a następnie uruchom makro. W poniższym przykładzie zwróć uwagę, że maksymalne liczby w pierwszych dwóch wierszach wynoszą odpowiednio 5 i 15 ; obie komórki są ciemnoczerwone .
Jestem jednak pewien, że istnieje szybsze rozwiązanie niż to.
źródło
Najłatwiejszym sposobem na osiągnięcie tego jest przyrostowe kopiowanie / wklejanie. Najpierw sformatuj 1 wiersz tak, jak chcesz. Następnie skopiuj i wklej formatowanie tylko do TYLKO drugiego wiersza. Teraz skopiuj ZARÓWNO rzędy 1 i 2, a następnie wklej formatowanie do wierszy 3 i 4. Spłucz i powtórz, Kopiuj 4, przeszłość 4, kopiuj 8, wklej 8, kopiuj 16, wklej 16. Gdy masz już przyzwoitą ilość, np. 16, wklej go kilka razy, aby uzyskać do 64 lub 128. Następnie możesz je skopiować i wkleić ich formatowanie, a wykładniczo pokrywasz więcej terytorium niż wcześniej.
To nie jest eleganckie, i z mojego doświadczenia wynika, że zasoby wymagane do warunkowego sformatowania jedzącego wiersza zaczynają być zwiększane do około 2500 wierszy ... ale załatwiają sprawę.
Chciałbym tylko, żeby istniała logika, która nie stworzyła osobnego formatu warunkowego dla każdego wiersza, ograniczając zasoby ...
źródło
Właśnie znalazłem ten i inne przykłady tego, jak to zrobić za pomocą VBA i przyszło mi to do głowy, i wymyśliłem stosunkowo szybki i bezbolesny sposób robienia tego samego bez konieczności znajomości lub kopiowania jakiegokolwiek skryptu.
Zastosuj żądane formatowanie warunkowe do dowolnego wiersza, a następnie podświetl cały wiersz. Następnie kliknij prawym przyciskiem myszy w dowolnym miejscu wzdłuż krawędzi (mysz powinna być ikoną Przenieś) i przeciągnij w dół do następnego wiersza. W wyskakującym menu kontekstowym wybierz „Kopiuj tutaj tylko jako formaty”. Teraz powinieneś zastosować format warunkowy do obu wierszy osobno. Następnie kontynuuj robienie tego rekurencyjnie, tyle że teraz możesz zaznaczyć i skopiować 2 lub więcej wierszy jednocześnie.
Nie jest to jednorazowa transakcja jak powyższy kod, ale jest wykładniczo szybsza niż wykonywanie jednej linii na raz. Mam nadzieję że to pomoże.
źródło
Możesz także zastosować formatowanie warunków do jednego wiersza. Ponownie podświetl wiersz i kliknij dwukrotnie „Format Painter”, aby go zablokować. Użyj klawisza strzałki w dół, aby zastosować warunek do innych wierszy.
Dla mojej firmy zwykle blokuje makro w programie Excel, więc to działa dla mnie. mam nadzieję, że ci to pomoże.
źródło