Muszę dowiedzieć się, czy tekst w moich komórkach jest wartością liczbową i chciałem zastosować elegancką metodę inną niż VBA , która nie wpływa na jej obecny stan ani wartość.
Odkryłem, że ISNUMBER()
funkcja działa tylko wtedy, gdy komórki formatują liczby lub nie ma spacji, jeśli formatuje tekst, np .:
Przez pierwsze trzy użyłem, =ISNUMBER(...)
a moja ostatnia próba to =ISNUMBER(TRIM(...))
.
Jedyną metodą, której użyłem, która nie używa VBA, jest zastąpienie moich bieżących wartości za pomocą tekstu do kolumn, a następnie użycie =ISNUMBER()
funkcji.
Uwaga: biegle posługuję się językami VBA i Excel i rozumiem, że mogę utworzyć funkcję zdefiniowaną przez użytkownika. Ale nie chcę, ponieważ nakłada to skoroszyt wymagany na makro lub dodatek do zainstalowania, co mogę i zrobiłem w niektórych przypadkach.
Będę wdzięczny za wszelkie porady, przemyślenia (nawet jeśli powiedzą mi, że nie da się tego zrobić) lub rozwiązania VBA (jednak nie zostaną oznaczone jako odpowiedzi).
ISNUMBER
rzadko używanejN
. Coś w tym stylu=NOT(ISERR(N(--A1)))
=N(-A1)
. Nie wiedziałem, że to istnieje.Odpowiedzi:
Spróbuj pomnożyć wartość komórki przez 1, a następnie uruchom funkcje
IsNumber
iTrim
, np .:=IsNumber(Trim(A1)*1)
źródło
trim
. Moje pozdrowienia.Zakładając, że wartość, którą chcesz przeliczyć, znajduje się w A1, możesz użyć następującej formuły:
=ISNUMBER(VALUE(TRIM(CLEAN(A1)))
W tym przypadku funkcje czyszczenia i przycinania usuwają spacje i nie drukują znaków. Wartość funkcji konwertuje ciąg na liczbę, a za pomocą przekonwertowanego ciągu możemy sprawdzić, czy wartość jest liczbą.
źródło
=VALUE(A1)
ponieważ moje dane nie będą miały takiej potrzebyCLEAN()
. Nie wiedziałem, żeVALUE()
funkcja istnieje. Wystarczy zauważyć, żeTRIM()
nic nie robi, ponieważ i tak spacje są ignorowane.Najkrótsza odpowiedź Mam na moje pytanie:
Dzięki brettdj
źródło
Wiem, że ten post jest stary, ale znalazłem to bardzo przydatne w tym przypadku miałem formułę, która zwróciła (333), mimo że jest to liczba i ISNUMBER powie, że jest to liczba, mimo że nie chciałbym odpowiedzi, gdyby znaki inne niż cyfry. Poniższe działało dla mnie.
Działa, jeśli DOWOLNE są inne znaki niż cyfry. Jeśli chcesz tylko prawdziwego fałszywego upuść IF
Jak stwierdził David Zemens
Działa, ale jeśli występuje „-” lub liczba jest w nawiasach, oznacza to, że jest to liczba.
Mam nadzieję, że to pomoże tobie lub innym.
źródło
jeśli ktoś musi filtrować komórki zawierające coś, co nie jest liczbowe:
wyniki dziesiętne i ujemne
FALSE
źródło