Przekonałem się, że formuły i zakresy formatowania warunkowego dostosowują się automatycznie podczas kopiowania, usuwania lub przenoszenia danych w arkuszu kalkulacyjnym. Chociaż jest to fajny pomysł, ma tendencję do psucia mi rzeczy w dość dziwny sposób.
Aby tego uniknąć, próbowałem napisać reguły, które miały zastosowanie do całego arkusza kalkulacyjnego i odłączyłem nagłówki kolumn, aby podświetlić dane, które chciałem sprawdzić.
Przykład: =AND(A$1="Check This Column For Blanks),ISBLANK(A1))
zastosowano do=$1:$1048576
Jednak nawet jeśli reguła została wyraźnie zastosowana do całego arkusza, nadal automatycznie się dostosowywał (i działał w dziwny sposób, robiąc to) podczas pracy w arkuszu.
Jak mogę tego uniknąć?
Odpowiedzi:
Kiedy potrzebuję zakresu, który nie powinien się zmieniać w żadnych okolicznościach, w tym przenoszenia, wstawiania i usuwania komórek, użyłem nazwanego zakresu i
INDIRECT
funkcji.Na przykład, jeśli chcę, aby zakres zawsze dotyczył komórek
A1:A50
, zdefiniowałem nazwany zakres za pomocą Menedżera nazw:W Menedżerze nazw dodaj nowy zakres (kliknij Nowy), aw polu Odwołuje się do: użyj funkcji POŚREDNIE, aby określić żądany zakres komórek, np .
=INDIRECT("A1:A50")
Lub=INDIRECT("Sheet!A1:A50")
. Ponieważ zakres jest technicznie tylko argumentem tekstowym, żadna liczba przestawionych komórek nie spowoduje, że Excel go zaktualizuje.Działa to również w co najmniej Excel 2010 i Excel 2013. Chociaż mój zrzut ekranu pochodzi z 2013 roku, w przeszłości korzystałem z tej dokładnej techniki w 2010 roku.
Ostrzeżenia
Pamiętaj, że ta niezmienność może Cię również potknąć. Na przykład jeśli zmienisz nazwę arkusza, nazwany zakres ulegnie uszkodzeniu.
Zauważyłem niewielki spadek wydajności podczas korzystania z tej strategii na znacznej liczbie komórek. Model, którego używam w pracy, wykorzystuje tę technikę z nazwanymi zakresami, które obejmują kilka tysięcy różnych zakresów komórek, a Excel czuje się trochę powolny, gdy aktualizuję komórki w tych zakresach. Może to być moja wyobraźnia lub fakt, że Excel wykonuje dodatkowe wywołania funkcji do POŚREDNIEGO.
źródło
INDIRECT
funkcji samodzielnie?Przekonałem się, że reguły są bardzo łatwe do złamania, ale możesz spróbować czegoś, co nie łamie żadnych reguł.
Możesz zmienić tekst w komórkach. Jeśli chcesz dodać wiersz, dodaj dane na końcu tabeli i ponownie je posortuj. Jeśli chcesz usunąć wiersz, usuń tylko tekst / liczby, a następnie ponownie posortuj tabelę.
Działa to dla mnie, gdy mam formatowanie warunkowe zastosowane do kolumn i zwykle ustawiam formatowanie dla całej kolumny, np. $ F: $ F. Powinno nadal działać, jeśli formatujesz dla zakresu częściowego, po prostu upewnij się, że po zakończeniu dodawania / usuwania i uciekania się do tego, że wszystkie dane, które chcesz sformatować, nadal mieszczą się w oryginalnych parametrach zakresu.
To także dla mnie ogromna frustracja.
Mam nadzieję, że to pomoże.
źródło
Nie jestem tak pewny i zmierzyć się z tym samym problemem często.
Powiedziałbym, że pole „Zastosuj do” w panelu Formatowanie warunkowe (CF) ZAWSZE będzie działać dynamicznie. Tak więc ZAWSZE skonwertuje wszelkie odniesienia do formatu
=$A$1:$A$50
.To ból.
źródło
Odkryłem, że użycie
INDIRECT
funkcji iROW
funkcji w regule formatowania warunkowego eliminuje problem tworzenia nowych reguł i zmiany zakresu w programie Excel.Na przykład chciałem dodać linię między wierszami w arkuszu kalkulacyjnym rejestru książeczki czekowej, gdy miesiąc zmienił się z jednego wiersza do następnego. Tak więc moja formuła w regule CF to:
gdzie kolumna C w moim arkuszu kalkulacyjnym zawiera datę. Nie musiałem robić nic specjalnego dla zakresu (nie musiałem definiować nazwy zakresu itp.).
Dlatego w przykładzie oryginalnego plakatu zamiast „A1” lub „A $ 1” w regule CF użyj:
źródło
Wystąpił bardzo podobny problem. Zrobiłem kilka makr, aby dodać wiersze i skopiować formuły, a następnie dostosować kolumny i rozmiary wierszy, aby sformatować wygląd arkusza. Odkryłem, że ten problem występuje w jednym z dwóch przypadków.
1) Gdy coś z INSIDE „dotyczy” jest wycinane / wklejane poza tym zakresem.
2) Gdy komórki są scalone wewnątrz „dotyczy”, a dowolny z wierszy lub kolumn zostanie dostosowany.
Pojawia się podczas problemu z połączoną komórką, że program Excel musi wszystko rozdzielić, ponownie obliczyć swoją aplikację warunkową, dostosować wszystkie komórki (dodać lub usunąć wiersze lub co nie), a następnie ponownie je scalić. Jest dla nas niewidoczny, ale wydaje się, że tak właśnie jest.
Myśl, która może nam pomóc w rozwiązaniu tego problemu.
-T
źródło
Mam na to proste rozwiązanie.
Po prostu przejdź do komórki znajdującej się w zasięgu (tej, która nie jest zepsuta zakresu), kliknij Format malarza, a następnie wklej całą kolumnę. Ponownie pokaże, gdzie się zepsuł, wystarczy zrobić malarza formatów do komórki, która przekroczyła zasięg. Teraz to też może wydawać się nieco długie, możesz po prostu zbudować proste makro do tego.
źródło
W formule formatowania warunkowego użyj
R1C1
notacji zINDIRECT
funkcją:Przykład 1:
If same row column A = 1
...Przykład 2:
If same row column A = 2 AND next row column A = 3
...źródło
Jeśli przypadkiem użycia jest wygenerowanie arkusza kalkulacyjnego raportu, powinno to działać dobrze:
Możesz ominąć nadmierną pomoc programu Excel za pomocą kilku jednorazowych kroków konfiguracji, jeśli chcesz ręcznie wykonać proste odświeżenie ostatecznych danych po wykonaniu wszystkich danych.
Zakładając, że dane są ułożone normalnie (w rzędach):
Input
. Nie stosuj do niego żadnego formatowania warunkowego. Możesz swobodnie przenosić wartości do treści twojego serca (np. Usuń / wstaw / kopiuj / wklej)Output
.). Ręcznie skopiuj swoje globalne formatowanie, takie jak szerokości kolumn i formatowanie nagłówków (nie zawartość nagłówków, tylko formatowanie).$A$1
w poniższej formule lokalizację początku wiersza nagłówka, a następnie skopiuj wszystkie kolumny i wiersze, które chcesz wydrukować:=IF(LEN(OFFSET(Input!$A$1,ROW()-1,COLUMN()-1))>0,OFFSET(Input!$A$1,ROW()-1,COLUMN()-1),"")
(IF(LEN(...)>0,...,"")
instrukcja jest niezbędna, ponieważ program Excel również pomaga określić typy danych dla Ciebie i używa0
w przeciwnym razie pustych komórek oraz te-1
terminy pochodzą z offsetu kontra porządkowych semantyki)Output
arkusza.Spowoduje to skopiowanie
Input
arkusza danych doOutput
arkusza bez odwołań do komórek, które program Excel automatycznie wykonałby za rzeźnikiem, dzięki czemu można z pewnością zdefiniować formatowanie warunkowe naOutput
arkuszu.Wystarczy ręcznie rozszerzyć zakres, w którym formuła jest stosowana w
Output
arkuszu, gdyInput
zmienia się rozmiar danych.Sugeruję unikanie łączenia jakichkolwiek komórek.
PS To pytanie było zadawane wiele razy (dotyczy to również Arkuszy Google, które są klonem Excela), więc możesz znaleźć lepsze rozwiązanie dla swojego przypadku użycia, przeglądając je:
źródło
Jeśli wkleisz bez formatu (
Paste > Paste Special > Unicode Text
lub podobnego), specjalne formatowanie nie zostanie skopiowane i jako takie ustawienie „Dotyczy” nie powinno się zmienić.Możesz usunąć wiersze / kolumny, ale jeśli je wstawisz, zakres „Dotyczy” zostanie podzielony.
Rozszerzasz obszar, wybierając ostatni wiersz / kolumnę i „przeciągnij” na małym kwadracie w lewym dolnym rogu „kursora”. W ten sposób zakres „Zastosuj do” powinien pozostać nienaruszony. (Pamiętaj, że nie spowoduje to rozszerzenia żadnych formuł w wierszach lub kolumnach, jak w przypadku wstawiania).
Jednak wklejanie bez formatu itd. Jest całkowitym bólem. Zwykle tego nie robię.
Czasami definiuję także nazwę obszaru, który chcę sformatować. Nie będzie on używany w regule, ale można wyczyścić regułę, usuwając wszystkie reguły oprócz jednej i używając nazwy obszaru w sekcji „Dotyczy”.
Testowałem na komputerze Mac przy użyciu programu Excel 16.3 (myślę, że Office 2016 ... hmm).
źródło