To pytanie ma już tutaj odpowiedź:
Próbuję automatycznie kolorować wiersze, gdy dany warunek jest prawdziwy, używając formatowania warunkowego.
Na przykład pokoloruj wiersz, jeśli w kolumnie D znajduje się coś: =INDIRECT("D"&ROW())<>""
To działa dobrze.
Jeśli jednak spróbuję czegoś bardziej złożonego, nic się nie dzieje, nawet jeśli wciskam Ctr + Alt + F9. W szczególności to nie działa:
=AND(INDIRECT("D"&ROW())<>"",INDIRECT("F"&ROW())="X")
Ma on kolorować wiersz, w którym kolumna D nie jest pusta, a kolumna F zawiera X. Jeśli umieściłem go bezpośrednio w arkuszu (w jednej z jego komórek), działa świetnie. Ocenia prawdę, gdy ma być fałszywa, a fałsz. Niemniej jednak, gdy próbuję go użyć do formatowania warunkowego (chociaż reguła zostanie dodana), nie ma żadnego efektu; Nie barwi komórek, które ma.
Jaki jest problem? Jak mogę to rozwiązać?
źródło
AND
, Sprawdziłem to=AND(INDIRECT("D"&ROW())<>"")
nie działa podczas=INDIRECT("D"&ROW())<>""
kolory wierszy, w których kolumna D nie jest pusta.AND
iINDIRECT
. Korzystając z odpowiedzi z duplikatu pytania, działa `= AND ($ D2 & lt; & gt;„ ”, $ F2 =„ X ”) (zakłada to, że pierwszy wiersz zakresu to wiersz 2).Odpowiedzi:
Według komentarzy jest to NIE sposób używania formatowania warunkowego - używaj odwołań do komórek, jak mówi Blackwood, np.
=AND(D2<>"",F2="x")
.... ale specyficznym problemem jest tutaj
ROW
funkcjonować. Nie wiem, dlaczego w arkuszu jest OK, a nie w CF, aleROW
funkcja faktycznie zwraca „tablicę”, a nie liczbę, chociaż jest to pojedyncza liczba, na przykład w wierszu 2ROW()
zwraca tablicę {2}. W niektórych okolicznościach Excel ma problemy z przetwarzaniem tej tablicy, więc rozwiązaniem jest zawinięcie w inną funkcjęSUM
lubMAX
, lubię to:=AND(INDIRECT("D"&SUM(ROW()))<>"",INDIRECT("F"&SUM(ROW()))="X")
chociaż zauważam, że również działa bez
SUM
jeśli pomnożysz warunki zamiast używaćAND
, tj.=(INDIRECT("D"&ROW())<>"")*(INDIRECT("F"&ROW())="X")
Uwaga:
COLUMN
funkcja czasami wyświetla to samo zachowanieźródło