Próbuję automatycznie obliczyć najbardziej elegancką skalę osi y (wartość maksymalna i wartość podziału) dla niektórych wykresów słupkowych. Korzystam z programu Excel zintegrowanego z narzędziem deski rozdzielczej (SAP Dashboards), aby wyświetlać dwa wykresy obok siebie w celu łatwego porównania. Potrzebuję tych wykresów, aby miały identyczne skale osi Y, aby można je było łatwo porównywać.
Oto zdjęcie wyjaśniające, co mam na myśli: dwie wykresy przedstawiające różne dane, ale skalowane identycznie, aby ułatwić porównanie:
Oczywiście oś Y musi być skalowana, aby uwzględnić największą wartość, niezależnie od tego, czy znajduje się po lewej, czy po prawej stronie. W tym przypadku największa wartość znajduje się na lewym wykresie. Użyłem funkcji MAX Excela, aby znaleźć największą wartość (4 668), a następnie zastosowałem trochę logiki do a) wyprowadzenia eleganckiej górnej granicy (4700) i wartości podziału (1200). Użyłem funkcji LEN, aby ocenić, ile cyfr ma liczba, oraz funkcji CEILING, aby zaokrąglić w górę do najbliższej „ładnej” liczby całkowitej.
Na szczęście mój pakiet deski rozdzielczej pozwala mi dostosowywać wartości minimalne i maksymalne osi y, a także podział. Mogę je ustawić, wskazując na komórkę.
Moje pytanie brzmi zatem, jak skalować tę „logikę”, aby uzyskać eleganckie wartości maksymalne i wartości podziału dla dowolnego zestawu danych, niezależnie od tego, czy liczby są niskie, czy wysokie. Excel robi to samo, gdy automatycznie skaluje osie. Muszę to powtórzyć, aby móc to zrobić programowo w programie Excel.
Dla wartości od 0 do 10 maksymalna oś Y może być samą wartością.
11 - 15: I'd set the max to 15, which looks elegant.
16 - 20: 20
21 - 25: 25
etc (going up in 5s)
101 - 110: 110
111 - 120: 120
etc...
1001 - 1100: 1100
Jak widać, gdy wartości w moich danych (które mogą się znacznie różnić) rosną, muszę elegancko wybrać górną wartość y, która będzie dobrze wyglądać na moim wykresie. Jak najlepiej to zrobić?
Nie znalazłem też najlepszego sposobu wyboru 4 lub 5 wartości podziału, które muszą być „ładnymi” liczbami (np. Wielokrotności 2, 5, 10, 20 lub 20, a nawet 2000).
Moja formuła musi się ładnie skalować, podobnie jak auto skalowanie Excela daje świetne wyniki bez względu na rząd wielkości danych wejściowych. Czy ktoś może zasugerować, jak najlepiej to osiągnąć?