Formatowanie warunkowe programu Excel 2016 nie działa z AND [duplikat]

1

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ć?

Cerike
źródło
Nie wiem, jaka jest odpowiedź, ale mogę odtworzyć problem. Aby sprawdzić, czy problem dotyczy 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.
Blackwood
1
Wydaje się, że problem występuje podczas używania obu AND i INDIRECT. 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).
Blackwood

Odpowiedzi:

0

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, ale ROW funkcja faktycznie zwraca „tablicę”, a nie liczbę, chociaż jest to pojedyncza liczba, na przykład w wierszu 2 ROW() 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 lub MAX, 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

barry houdini
źródło