Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 62713 Skopiuj do schowka Nowe typy błędów arkuszowych (XL 365)
Autor Wiadomość
Artik 



Wersja: Win Office 365
Pomógł: 2643 razy
Posty: 8756
Wysłany: 29-09-2018, 13:32   Nowe typy błędów arkuszowych (XL 365)

Zanim przejdę do sedna, kilka słów, co spowodowało powstanie tego wątku.

Od stosunkowo niedawna M$ udostępnił nową funkcjonalność - typy danych połączonych. Na podstawie wprowadzonych przez nas danych, Excel próbuje się domyślić jakich innych danych możemy potrzebować. Np. wypisałem nazwy kilku województw, a Excel zaproponował mi niektóre dane dotyczące tych województw, jak: obszar, populacja, stolica województwa, największe miasto, które mogę dodać w kolejnych kolumnach tabeli. Więcej na ten temat u źródła:
https://support.office.com/pl-pl/article/notowania-giełdowe-i-dane-geograficzne-61a33056-9935-484f-8ac8-f1a89e210877
Jeżeli Excel nie był w stanie zidentyfikować danych połączonych dla którejś danej źródłowej (w tym przypadku użyłem błędnej nazwy województwa - Górnośląskie ;-) ), to w kolumnach danych połączonych wyświetla się błąd #POLE! (załącznik Typy danych).
I od tego się zaczęło. :-)

Dotychczas mieliśmy 7 poniższych typów błędów arkuszowych:
#ZERO!
#DZIEL/0!
#ARG!
#ADR!
#NAZWA?
#LICZBA!
#N/D!

Doszło nam nowe 7:
#POBIERANIE_DANYCH
#ROZLANIE!
#POŁĄCZ!
#ZABLOKOWANE!
#UNKNOWN!
#POLE!
#OBL!

Nie mam zielonego pojęcia jakim celom będą służyć powyższe błędy (poza błędem #POLE!), bo M$ jeszcze milczy. Ale już są.

Obserwacje.
Dotychczas, chcąc wstawić makrem w komórkę błąd, stosowałem:
Kod:
ActiveCell.Value = CVErr(xlErrNum)
Jednak, w przypadku niektórych nowych błędów, ta metoda zawodzi. Dla błędów wyróżnionych na pomarańczowo w załączniku Typy błędów arkuszowych zwracany jest błąd #ARG! zamiast ich właściwych typów. Metodą obejściową okazało się zastosowanie własnej funkcji zwracającej błąd.
Kod:
Sub AAA()
  Dim vArr As Variant
  Dim i As Long
  Dim lVal As Long
 
  'tablica błędów arkuszowych
  vArr = Split("00,07,15,23,29,36,42,43,45,46,47,48,49,50", ",")
 
  'chcę być pewny, że nazwa błędu będzie wyświetlana w całości
  ActiveCell.ColumnWidth = 30#
 
  For i = 0 To UBound(vArr)
    'numer błędu
    lVal = CLng("20" & vArr(i))
    'wpisanie do komórki błędu z wykorzystaniem  mojej funkcji
    ActiveCell.Formula = "=CellsErr(" & lVal & ")"
    'ActiveCell.Formula = CVErr(lVal) '<~~ nie dla wszystkich błędów działa prawidłowo
   
    'w oknie Immediate lokalne nazwy błędów
    Debug.Print lVal & " " & ActiveCell.Text
  Next i
End Sub


Private Function CellsErr(Nr As Long) As Variant

  Select Case Nr
    Case 2000
      CellsErr = CVErr(xlErrNull)  '#ZERO!
    Case 2007
      CellsErr = CVErr(xlErrDiv0)  '#DZIEL/0!
    Case 2015
      CellsErr = CVErr(xlErrValue) '#ARG!
    Case 2023
      CellsErr = CVErr(xlErrRef)   '#ADR!
    Case 2029
      CellsErr = CVErr(xlErrName)  '#NAZWA?
    Case 2036
      CellsErr = CVErr(xlErrNum)   '#LICZBA!
    Case 2042
      CellsErr = CVErr(xlErrNA)    '#N/D!
    Case 2043
      CellsErr = CVErr(xlErrGettingData) '#POBIERANIE_DANYCH
    Case 2045
      CellsErr = CVErr(xlErrSpill) '#ROZLANIE!
    Case 2046
      CellsErr = CVErr(xlErrConnect) '#POŁĄCZ!
    Case 2047
      CellsErr = CVErr(xlErrBlocked) '#ZABLOKOWANE!
    Case 2048
      CellsErr = CVErr(xlErrUnknown) '#UNKNOWN!
    Case 2049
      CellsErr = CVErr(xlErrField) '#POLE!
    Case 2050
      CellsErr = CVErr(xlErrCalc) '#OBL!
    Case Else
      MsgBox "Nieprawidłowy numer błędu arkuszowego", _
              vbCritical, "Ogarnij się"
  End Select

End Function

#POBIERANIE_DANYCH, mimo zaliczenia go do błędów arkuszowych, wydaje się nie być błędem. Odbierałbym to raczej jako informację, być może pojawiającą się tymczasowo w komórce. Proszę zwrócić uwagę, że Reguły sprawdzania błędów nie oznaczają go jako błąd (brak indykatora w górnym lewym rogu komórki).

I to na razie tyle z obserwacji nowych błędów.

Mam prośbę o podanie wyświetlanych błędów na anglojęzycznych wersjach Excela, bo jak widać w załączniku moja tabela jest niekompletna.

Artik

Typy danych.png
Plik ściągnięto 12 raz(y) 43.18 KB

Typy błędów arkuszowych.png
Plik ściągnięto 14 raz(y) 25.49 KB

_________________
Persistence is a virtue in the world of programming.
ID posta: 353517 Skopiuj do schowka
 
 
Bill Szysz 
Excel Expert


Wersja: Win Office 365
Pomógł: 794 razy
Posty: 3302
Wysłany: 29-09-2018, 20:19   

Artik napisał/a:
wypisałem nazwy kilku województw

Na razie dostępne są tylko dwa typy danych typu record - geograficzne i giełdowe - a i te są ograniczone. Dane tego typu korzystają z Bing'a jako wyszukiwarki i nie działają jeszcze poprawnie z polskimi nazwami (np "Polska" zostanie zastąpiona przez "Poland" i nazwy dostępnych pól rekordu też niestety będą po angielsku - da się to kulawo obejść ale zmienić wyszukiwarki sie nie da (albo nie znalazłem takiego sposobu))
Błędy #ROZLANIE! i #OBL! w pewnych okolicznościach możemy otrzymać gdy wynikiem wprowadzonej formuły jest więcej niż pojedyncza wartość.
Gdy np w A2 wpiszemy =B2:B4 to excelek będzie próbował wypisać od A2 do A4 zakres od B2 do B4. Jednak gdyby w A3 już coś było to otrzymamy błąd #ROZLANIE! ponieważ excel nie może wpisać czegoś do już zajętej komórki - usunięcie wpisu w A3 spowoduje zniknięcie błędu.
Błąd #OBL! wydaje się być właściwym dla nowo wrpowadzonych POTĘŻNYCH funkcji takich jak FILTRUJ, SORTUJ itp.
Warto też wspomnieć o możliwym w pewnych wypadkach sposobie adresowania. Mam na myśli zapis typu A5# który oznacza że odwołujemy sie do pewnego zakresu komórek otrzymanego poprzez użycie w komórce A5 jakiejś funkcji której wynikiem jest więcej niż jedna wartość. Tak wpisany adres jest dynamiczny i gdy zmieni się wynik formuły wpisanej w A5 (np formuła zwróci więcej wyników w wierszach) to formuła powiązana (poprzez użycie A5#) również się uaktualni. Podobne jest to do użycia adresów strukuralnych w Tabelach.
Pewnie o wielu rzeczach zapomniałem ale na teraz to tyle :-) )
_________________
Szkolenia z Power Query!!!

Pozdrawiam, były szbill62 aktualnie Bill Szysz
ID posta: 353531 Skopiuj do schowka
 
 
Artik 



Wersja: Win Office 365
Pomógł: 2643 razy
Posty: 8756
Wysłany: 30-09-2018, 12:36   

Bill Szysz napisał/a:
Dane tego typu korzystają z Bing'a jako wyszukiwarki (…) ale zmienić wyszukiwarki sie nie da (albo nie znalazłem takiego sposobu))
Pewnie nie będzie to możliwe, bo niby dlaczego mielibyśmy wpuszczać obcych na swoje podwórko.

Dzięki za info. I proszę, przyłóż się bardziej ;-) do odpowiedzi w wolnej chwili.

A nazwy anglojęzyczne błędów? ...

Artik
_________________
Persistence is a virtue in the world of programming.
ID posta: 353558 Skopiuj do schowka
 
 
Artik 



Wersja: Win Office 365
Pomógł: 2643 razy
Posty: 8756
Wysłany: 30-09-2018, 23:49   

Dobra, z nazwami dałem sobie radę
Kod:
xlErrGettingData    2043    #GETTING_DATA
xlErrSpill                2045    #SPILL!
xlErrConnect            2046    #CONNECT!
xlErrBlocked            2047    #BLOCKED!
xlErrUnknown        2048    #UNKNOWN!
xlErrField            2049    #FIELD!
xlErrCalc            2050    #CALC!


Artik
_________________
Persistence is a virtue in the world of programming.
ID posta: 353574 Skopiuj do schowka
 
 
Bill Szysz 
Excel Expert


Wersja: Win Office 365
Pomógł: 794 razy
Posty: 3302
Wysłany: 30-09-2018, 23:59   

Artik, qrde właśnie Ci odpisywałem :-) ))
W sumie to masz te nazwy na swoim obrazku (drugim)....ale w arkuszu #GETTING_DATA, #CONNECT!, #BLOCKED! nie są zagłaszane jako błędy (funkcja CZY.BŁĄD zwraca fałsze przy tych błędach.

P.S. WE ARE THE CHAMPIONS!!!!!!!!!! :clap :clap :cool1 :happy :beer
_________________
Szkolenia z Power Query!!!

Pozdrawiam, były szbill62 aktualnie Bill Szysz
ID posta: 353575 Skopiuj do schowka
 
 
Artik 



Wersja: Win Office 365
Pomógł: 2643 razy
Posty: 8756
Wysłany: 01-10-2018, 00:08   

Bill Szysz napisał/a:
funkcja CZY.BŁĄD zwraca fałsze przy tych błędach.
Robi się ciekawie, bo u mnie CZY.BŁĄD() oraz CZY.BŁ() zwracają PRAWDA dla wszystkich nowych błędów. Zaskoczony jestem, że funkcje zwracają PRAWDA dla #POBIERANIE_DANYCH (#GETTING_DATA) bo to taki błąd i nie błąd. ;-)

Edit:
W trakcie transmisji z meczu (po meczu), jeden z naszych podszedł do swojej dziewczyny. Całowali się a potem jej pewnie szepnął do ucha: Od teraz możesz do mnie mówić złociutki.

Artik
_________________
Persistence is a virtue in the world of programming.
ID posta: 353577 Skopiuj do schowka
 
 
Bill Szysz 
Excel Expert


Wersja: Win Office 365
Pomógł: 794 razy
Posty: 3302
Wysłany: 01-10-2018, 00:16   

Artik, wyłączyłem excelka (z ustawioną gdzie tylko się da wersją angielską) i po ponownym włączeniu #GETTING_DATA zaczął być błędem (pewnie zrobiła się aktualizacja jakaś w tle - jestem w programie Insider preview). Pozostałe dwa jak nie chciały tak nadal nie chcą być błędami. Ciekawa sprawa...zobaczymy co będzie jutro :-) )
_________________
Szkolenia z Power Query!!!

Pozdrawiam, były szbill62 aktualnie Bill Szysz
ID posta: 353578 Skopiuj do schowka
 
 
Artik 



Wersja: Win Office 365
Pomógł: 2643 razy
Posty: 8756
Wysłany: 01-10-2018, 00:27   

Dla jasności. W kolumnie Local Cell error value posiadam formuły z UDF CellsErr.
Za każdym razem, po zamknięciu i ponownym otwarciu pliku, dla błędu nr 2043 zwracany jest błąd #N/D! (#N/A), a nie #POBIERANIE_DANYCH. Dopiero edycja formuły zmienia na właściwy typ.
Bill Szysz napisał/a:
#CONNECT!, #BLOCKED! nie są zgłaszane jako błędy
A dla #SPILL! i #CALC! otrzymujesz TRUE? :shock:

Artik
_________________
Persistence is a virtue in the world of programming.
ID posta: 353580 Skopiuj do schowka
 
 
Artik 



Wersja: Win Office 365
Pomógł: 2643 razy
Posty: 8756
Wysłany: 01-10-2018, 00:40   

Na stronie, do której adres podałem w pierwszym poście czytamy:
Cytat:
Czy obowiązują jakieś ograniczenia, o których należy wiedzieć?


Typy danych Akcje i Geografia to bardzo świeża funkcja, dlatego pewne tradycyjne funkcje programu Excel nie będą współdziałać z nią dobrze. Na przykład w razie próby utworzenia tabeli przestawnej opartej na informacjach z tych typów danych zostanie wyświetlony błąd #ARG!. Ponadto używanie tych typów danych z dodatkami Power Pivot i Power Query lub nawet niektórymi wykresami może nie działać zgodnie z oczekiwaniami.

Inny przykład jest z wykresami mapy. Przy próbie utworzenia wykresu mapy, na podstawie danych z typem danych geograficznych mapy mogą być wyświetlane niepoprawnie. Pracujemy nad poprawić ten problem. W międzyczasie zobacz artykuł wykresu mapy , aby uzyskać więcej informacji.

Artik
_________________
Persistence is a virtue in the world of programming.
ID posta: 353581 Skopiuj do schowka
 
 
Bill Szysz 
Excel Expert


Wersja: Win Office 365
Pomógł: 794 razy
Posty: 3302
Wysłany: 01-10-2018, 00:44   

Tak, dla #SPILL! i #CALC! dostaję prawdę (TRUE) i dla #FIELD! też
_________________
Szkolenia z Power Query!!!

Pozdrawiam, były szbill62 aktualnie Bill Szysz
ID posta: 353582 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum

Strona używa plików cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe