Mam niektóre kody produktów, z których niektóre są cyframi z zerami wiodącymi, zapisanymi w arkuszu kalkulacyjnym.
Wykonuję niektóre operacje, które opierają się na LICZNIKU, który nie jest równy funkcji (szczegóły w komentarzach, ale nie dotyczą pytania). Countif wydaje się łamać, gdy mamy do czynienia z ciągami zawierającymi liczby z wiodącymi zerami.
Dla prostej demonstracji
Na przykład, jeśli A1 zawiera „foo”, to:
=COUNTIF(A1,"<>"&A1)
zwraca 0. To znaczy, nie ma komórek w A1, które nie są równe A1 (oczywiście).
Ale jeśli A1 zawiera „0001234” jako tekst, wówczas zwraca 1, tzn. A1 NIE JEST RÓWNY DLA A1
Dalsze informacje: =countif(A1:"<>"&"1234")
zwraca 0, więc wydaje się, że problem polega na tym, że excel automatycznie konwertuje ciąg „0001234” na liczbę 1234, ale tylko w kryteriach, a nie w zakresie, a następnie znajduje „0001234” = / = 1234.
OBEJŚCIE: utwórz kolumnę pomocniczą z niepotrzebnym znakiem tekstowym dołączonym do wszystkich kodów. Obecnie dodałem kolumnę pomocnika zawierającą = "@" i X1 do wszystkich moich list, ale nie jest to eleganckie rozwiązanie.
=Countif(A1:A100,"<>"&A1)
?Odpowiedzi:
EDYCJA : aby zmienić z dodawania
NUL
na dodawanie*
do kryteriów.Podobne zachowanie zobaczysz w przypadku booleanów. Jednym ze sposobów, w jaki znalazłem „wymuszanie”,
COUNTIF
aby nie przeprowadzać konwersji, jest dodanie (lub oczekiwanie)*
argumentu do kryteriów. Na przykład:zwróci
0
nawet z ciągiem0001234
w A1„*” Zmusza COUNTIF do traktowania A1 jako tekstu w argumencie kryterium. Nie powiedzie się to oczywiście, jeśli A1 zawiera liczbę. Może być konieczne przetestowanie tego
Oto zrzut ekranu z wykorzystaniem danych opublikowanych w komentarzu:
Ponieważ używanie
COUNTIF
w ten sposób nie jest całkowicie kuloodporne, możesz również rozważyć tęEXACT
funkcję.lub nawet prościej, jeśli rozróżnianie wielkości liter nie stanowi problemu:
zwróci takie same wyniki jak
COUNTIF
w przypadku symbolu wieloznacznego w kryteriach, a także będzie w stanie wykluczyć możliwość pojawienia się testowanego zakresu w ramach kryteriów.Jeśli rozumiem
COUNTIFS
formułę zamieszczoną w powyższym komentarzu, poniższe informacje mogą dostarczyć odpowiednika, ale chciałbym zobaczyć dane z oczekiwanymi wynikami.Ponadto formuła działałaby znacznie wydajniej (szybko), gdyby można ograniczyć odwołania do całej kolumny do mniejszej niż cała kolumna.
źródło
COUNTIF
, istnieją inne rozwiązania. Opublikuję jeden.