Podczas budowania prostej tabeli przestawnej w programie Excel napotkałem dziwny problem. Oto moje dane: Stworzyłem prostą tabelę z kolumną C zawierającą wartości w A podzielone przez wartości z B. Wstawiłem formułę do kolumny D, żeby była krystalicznie czysta.
Oto dziwna rzecz - kiedy buduję tabelę przestawną z kolumny C, otrzymuję dwie wersje liczby 6:
To jest szalone! Dlaczego Excel nie agregował obu „wersji” liczby 6 w jednym wierszu? Zrobiłem kilka dalszych testów: isnumber () zwraca true dla obu 6s, a nawet test równoważności (= „ 1st 6 ” = „ 2nd 6 ”) również zwraca true! Dlaczego Excel nie podsumowuje tych samych wartości w tabeli przestawnej?
Zgaduję, że ma to coś wspólnego z zwracaniem liczby zmiennoprzecinkowej w wersji 1.2 / 0.2 i zwracaniem liczby całkowitej (co może się zdarzyć w pythonie), ale w Excelu nie ma nic, co by mi mówiło, z którymi typami danych mam do czynienia. Być może błąd zaokrąglenia? A jeśli dwie szóstki nie są takie same, dlaczego mój test równoważności zwraca wartość prawda?
Jeśli przekonwertuję dwie liczby szóste na liczby całkowite, wówczas tabela przestawna zwróci oczekiwane wyniki. Jednak nie sądzę, że powinienem to zrobić, a większość użytkowników nie spodziewałaby się tego. Co tu się dzieje? Oczekiwane zachowanie lub błąd?
6.0..01
, ale jest wyświetlana jako6
i również zaokrąglana, gdy wykonujesz z nią jakiekolwiek obliczenia. Granicą jest błąd, ale nie sądzę, że możemy to zapewnić wszelkie dodatkowe informacje tutaj, ponieważ Microsoft może naprawdę odpowiedzieć na twoje pytanieOdpowiedzi:
Jeśli konwertujesz kolumnę C na liczbę całkowitą za pomocą
INT
funkcji, tabela przestawna generuje zgodnie z oczekiwaniami. Jest to problem zmiennoprzecinkowy.źródło