Problem ze złączeniem warstw csv z shp

Planuję zrobić kartogram używając QGIS. Pobrałem już dane .shp dotyczące gmin w Polsce (Pobieracz danych GUGiK). W Excelu obliczyłem trochę danych o zmianie ludności gmin Polski. Zmieniłem następnie w Excelu komórki z formułami na komórki z wartościami liczbowymi, tak, aby QGIS nie miał problemów z ich odczytaniem. Dane z Excel połączyłem z danymi .shp za pomocą kodu TERYT.
Gdy próbuję przerobić mapę na kartogram (“Symbol stopniowy” w “Stylu”), nie pokazuje mi w ogóle przyłączonych kolumn. Gdy natomiast robiłem coś innego, działa się rzecz niesłychana, bowiem komórki, w których wpisane miałem dane liczbowe z moich obliczeń, przedstawiało mi jako “NULL”. Co ciekawe, mogę przedstawić te dane, ale jako “Wartość unikalną” i z tym QGIS już nie ma problemu.

Jak mogę temu zaradzić?

Cześć, zmiana typu wyświetlania komórki w Excelu (która nie jest równa zmianie typu komórki) nie wystarczy, dalej jest traktowana przez QGISa jako tekst.

Stwórz w twojej tabeli w QGISie nowe pole typu “liczba rzeczywista”, w którym w kalkulatorze pól użyjesz formuły to_real(“nazwa_przyłączonego_pola_z_excela”). Wówczas QGIS przekształci pole tekstowe w pole liczby rzeczywistej i zapisze to pod liczbą rzeczywistą. Gdyby były problemy z separatorem dziesiętnym (przecinek zamiast kropki), wystarczy to_real(replace(“nazwa_przyłączonego_pola_z_excela”, ‘,’, ‘.’)). Na tym polu nie będzie problemu z symbolizacją.

Alternatywnie - naprawa w excelu:

  • wersja 1: załóżmy że wartość której chcesz użyć w QGISie jest w kolumnie A, a dane zaczynają się od A2 bo w pierwszym wierszu masz nagłówki. Stwórz nową kolumnę, w której w polu B2 wpiszesz =A21* albo =WARTOŚĆ(A2), to przekształci tekst w liczbę. Następnie przeciągnij to pole po całej kolumnie, zaznacz kolumnę, skopiuj, a potem Wklej specjalnie → Wartości i zapisz. Z taką kolumną QGIS nie powinien mieć już problemu.
  • wersja 2: zaznacz kolumnę z danymi, potem na pasku Dane → Tekst jako kolumny, potem dwa razy Dalej bez ruszania czegokolwiek, wybierz format Ogólny i Zakończ. Kolumna powinna zyskać typ liczbowy, po zapisaniu QGIS powinien zaczytać.

Przerobiłem zgodnie z twoją poradą, zarówno w wersji z przecinkiem jako separatorem, jak i z kropką. Niestety, dalej wyświetla mi "NULL.

Nie wiem czy porada Jakuba zadziała, tak zakładam, ale wpierw popraw wyrażenie funkcji. Pisząc je w pojedynczych apostrofach każesz QGISowi czytać całość jako po prostu tekst, a nie funkcję (zwróć uwagę co Ci pokazuje podgląd - nie wynik funkcji tylko jej treść). Dodatkowo, jeśli spodziewasz się liczb dziesiętnych w tym polu, to nie “liczba całkowita” a “liczba dziesiętna”. Daj znać czy pomogło

Wszystko z innymi apostrofami podświetla mi jako “Błędne wyrażenie”. Jaki znak powinienem tam wstawić?

Po prostu to_real(“Zmiana”)

Nadal QGIS nie uznaje mi tego działania.

Bo jest tak jak wspominałem w pierwszej odpowiedzi, masz przecinek zamiast kropki :wink: Użyj to_real(replace(“Zmiana”, ‘,’, ‘.’))

Udało się, dziękuję za pomoc Wam obojgu :hugs: