Kategorie szkoleń | Egzaminy | Kontakt
  • 4
  • 8
  • 693

Odpowiedzi (4)

  • 7

Ciekawy przykład :-) Interesuje mnie, jak taka tabela powstała :-)

 

Te dziwne znaki są znakami twardej spacji, inaczej nazywanej spacją nierozdzielającą. Kod znaku: 160. Zwykła spacja ma kod znaku 32. Prawdopodobnie jest to efekt niewłaściwie wykonanego pliku tekstowego, który następnie został zaimportowany do Excela. Względnie efekt kopiowania danych z internetu lub z MS Word. W każdym razie dla Excela jest to tekst, który nie powinien brać udziału w obliczeniach.

 

Ponieważ podejrzewam, że to MS Word jest winowajcą, więc wykorzystam ten program do szybkiego usunięcia tego typu niepotrzebnych znaków. Oczywiście można by wykorzystać narzędzia i funkcje tekstowe Excela, ale wydaje mi się, że w tym przypadku Word będzie ciekawszym narzędziem. :-)

 

Trzeba skopiować dane z Excela i wkleić je do czystego dokumentu Worda. Warto w Wordzie włączyć wyświetlanie znaków niedrukowanych (skrót Ctrl+Shift+8 z klawiatury literowej) - wtedy zobaczymy, że między cyframi w tabeli znajdują się znaki twardej spacji. Następnie trzeba użyć polecenia Znajdź i Zastąp (skrót klawiszowy Ctrl*H)

 

 

 

W okienku przyciskiem Więcej rozwijamy dolną część okna dialogowego i widzimy przycisk Specjalne, po kliknięciu którego można wybrać spację nierozdzielającą, czyli twardą spację. Symbolem, który w Wordzie jest podstawiany za spację nierozdzielającą jest ^s - i taki symbol powinien się znaleźć w polu Znajdź.

 

Pole Zamień można zostawić puste. Wciskamy przycisk Zamień wszystko. Word znajdzie wszystkie znaki twardej spacji i je usunie.

 

Tak przerobioną tabelę można z Worda skopiować, wkleić do Excela - a w Excelu już formatować i obliczać dane jako normalne liczby.

 

Pozdrawiam

Andrzej

  • Odpowiedział
  • @ | 29.04.2014
  • TRENER ALTKOM AKADEMII
  • 1

Innym rozwiązaniem będzie użycie VBA.

Proszę zastosować następujący kod:

 

Sub ascii()
    For Each xcell In Selection
        If IsNumeric(xcell) = True And xcell <> "" Then
        xcell.Value = CDec(xcell.Value)
        xcell.numberformat="0.00"   
        End If
    Next xcell
End Sub

Załączniki

  • xls

    twarda spacja.xls ( 39K )
  • Odpowiedział
  • @ | 30.04.2014
  • TRENER ALTKOM AKADEMII
  • 6

A może po prostu funkcja PODSTAW(), gdzie wystarczy skopiować ten znak do wyszukania i zastąpić pustym tekstem. Jeżeli wartość ma być traktowana jako liczbowa to jeszcze ew. funkcja WARTOŚĆ() (lub przemnożenie przez 1 czy dodanie 0)

Pozdrawiam

Tomasz Grabowski

  • Odpowiedział
  • @ | 19.05.2014
  • TRENER MODERATOR ALTKOM AKADEMII
Komentarze
A przykład można prosić?
Skomentował : @ TRENER ALTKOM AKADEMII ,21.05.2014
  • 8

To w takim razie w odpowiedzi na komentarz dokładam jeszcze plik z przykładem.

W tym wypadku, aby zamienić te odstępy należy skopiować jeden z nich i wstawić go jako argument funkcji.

=WARTOŚĆ(PODSTAW(B2;" ";"")) - gdzie drugi argument to skopiowany odstęp a trzeci argument to pusty tekst.

Dodatkowo zastosowałem funkcję WARTOŚĆ(), aby przekonwertować wynik do postaci liczby (można zamiast tej funkcji zastosować "*1" lub "+0" )

 

Przykład w załączniku

Pozdrawiam

Tomasz Grabowski

Załączniki

  • xlsx

    Podstaw.xlsx ( 10K )
  • Odpowiedział
  • @ | 22.05.2014
  • TRENER MODERATOR ALTKOM AKADEMII
Komentarze
Dziękuje. Fajna sprawa.
Skomentował : @ TRENER ALTKOM AKADEMII ,26.05.2014