Jeden z czytelników często napotyka w swojej codziennej pracy z Excelem następujący problem:
W firmie, w której pracuję, korzystam głównie z Excela. Często zdarza się, że przeklejam dane z plików PDF, gdzie liczba w tysiącach wyraża się następująco: 1.234.23 Nie mam pojęcia, jak zamienić pierwszą kropkę na przecinek, a drugą pozostawić lub też sformatować tę liczbę przez skasowanie tylko jednej kropki (pierwszej od lewej) tak, by liczba miała postać: 1234.23. Jest to dla mnie bardzo istotne, ponieważ pracuję na dużych tabelach i bardzo utrudnia mi to liczenie!
W tym poście odpowiem na powyższe pytanie i dodatkowo zasugeruję inny wynik końcowy – moim zdaniem użyteczniejszy.
Mamy do czynienia z liczbami w następującej formie (kolumna A):
Są to liczby wyglądające tak, jak zaciągnięte z pliku PDF, o których pisze Czytelnik, czyli:
- separatorem tysięcy jest kropka,
- separatorem dziesiątek też jest kropka.
Warto zwrócić uwagę na fakt, że – ze względu na typ separatora (kropka zamiast przecinka) dla Excela każda liczba z przykładu jest tekstem. W związku z tym na tych danych nie da się wykonywać żadnych obliczeń.
Opiszę teraz:
1. w jaki sposób pozbyć się pierwszej kropki i dodatkowo…
2. w jaki sposób zamienić powstałą wartość (dla Excela – powstały tekst) na taką, która dla Excela będzie liczbą (będzie można na niej wykonywać obliczenia).
Polecam wykonać szczególnie drugi krok. Warto jednak zdać sobie sprawę z tego, że zaprezentowany sposób usunięcia pierwszej kropki (separatora tysięcy) dotyczy tylko liczb mniejszych niż milion. Milion bowiem ma już dwa separatory tysięcy (1.000.000 -> 1 000 000).
A więc…
1. Aby usunąć pierwszą kropkę (separator tysięcy), należy w komórkę B2 wpisać następującą formułę:
=ZASTĄP(A2;SZUKAJ.TEKST(".";A2);1;"")
i skopiować ja do pozostałych komórek w kolumnie B.
2. Aby zamienić drugą kropkę (separator dziesiętny) na przecinek, należy w komórkę C2 wpisać następującą formułę:
=JEŻELI.BŁĄD(ZASTĄP(B2;SZUKAJ.TEKST(".";B2);1;",");B2)*1
i skopiować ją do pozostałych komórek w kolumnie C. Formuła ta pozwoli dodatkowo wyeliminować błąd #ARG! w przypadku, gdy nie ma drugiej kropki – separatora dziesiętnego.
3. Ostatnim krokiem jest zmiana formatowania na takie, które ułatwi odczytanie liczby. W moim przykładzie wstawiłam dodatkową kolumnę (kolumna Liczba sformatowana), aby pokazać tylko wynik formatowania. Polecam format liczbowy – z separatorem tysięcy i dwoma miejscami po przecinku:
Oto wynik:
Oczywiście gdy mamy już liczbę tylko z jedną kropką (separatorem dziesiętnym), można zamienić ją na przecinek również w inny sposób. Należy:
1. Zaznaczyć liczby w zakresie B2:B6
2. Skopiować je
3. Ustawić się w komórce B2
4. Skopiowane liczby wkleić specjalnie jako wartości (przeczytasz o tym tutaj)
5. Za pomocą narzędzia Znajdowanie i zamienianie zamienić kropkę na przecinek (przeczytasz o tym tutaj lub – jeśli interesuje cię rozwiązanie używające makra – tutaj)
Gotowe!
Zaproponowałbym inne rozwiązanie: usunąć wszystkie kropki przez Ctrl-H i potem wynik podizelić przez 100 oddzielną formułą.
Super pomysł!
Łukaszu, a co w przypadku jeżeli któraś z liczb nie ma części setnych, tylko np. dziesiętną 123.234.5 ?
Super artykuł, bardzo pomocny 🙂 Mam jednak jeszcze jeden problem – w moich danych występują spacje. Nie jestem w stanie usunąć ich za pomocą funkcji „zastąp”. Masz pomysł jak sobie z tym poradzić? Z góry wielkie dzięki 🙂
Szafran – cieszę się, że artykuł Ci się przydał. Jeśli chodzi o pozbycie się spacji może spróbuj tak:
=ZASTĄP(A2;SZUKAJ.TEKST(” „;A2);1;””)
Ta formuła usunie spację. O to chodziło?
jedna z możliwości ;
=PODSTAW(PODSTAW(A2;”.”;””;1);”.”;”,”;1)
Pewnie, super 🙂