"Odwracanie" danych w excelu.

Witam.
Mam problem dotyczący excela – jak w nim odwrócić dane ? tzn. gdy mam np. w kolumnie liczby 1,2,3,4,5 a chce zamienić na 5,4,3,2,1 (z tym źe u mnie w kolumnach sa róźne liczby z róźnymi znakami porozrzucane po całej kolumnie) ? Podejźewam źe to jest banalne ale nie umie sobie z tym poradzić ,a musze zmienić kolejnośc 2100 liczb .
Z góry dzięki za odpowiedzi.

Odpowiedzi: 13

Witam Szanownych Forumowiczów,

Przy okazji poszukiwania odpowiedzi na pewien dręczący mnie problem odgrzebałem temat muzealny, więc sprawa jest nieaktualna, ale moźe odpowiedź komuś się przyda. Sprawa jest bardzo prosta i dziwię się, źe nikt nie rozwiązał tego problemu. No, nie przepraszam Karolina podała jakieś rozwiązanie, mam jednak nadzieję, źe wybaczy mi, iź nawet nie próbowałem go analizować.

Ale ad rem
Żeby odwrócić serię danych w kolumnie Excela wystarczy obok niej stworzyć kolumnę z kolejnymi liczbami 1,2,...aź do wartości równej ilości danych, a następnie posorotwać malejąco obie te kolumny według stworzonej właśnie kolumny. Potem pozostaje tylko skasować tę kolumnę...
Pozdrawiam
kierofca
kierofca
Dodano
01.12.2005 15:37:02
Nie wiem czy sprawa jest aktualna, ale mialam podbny problem i przedstawię przyklad rozwiąznia:


Option Explicit
' Załoźenia
' 1. Przykładowo liczby znajdują sie w kolumnie B
' 2. Wyznaczam przykładowo kolumnę A jako kolumne odniesienia
' w 1–szej komórce kolumny A wpisuję cyfrę 1
' zaznaczam kolumnę A, opcją Edycja/Wypełnij/Serie danych
' kolumny/liniowy/wartosć kroku=1 wypełniam całą kolumnę
' robię to poniewaź nie wiem czy ilość liczb jest stała
' i czy zawsze są umieszczone w tych samych komórkach kolumny B
' przykładowo
' A B
' 1 puste
' 2 puste
' 3 –4
' 5 0
' 6 7
' 7 –47
' 8 puste

' kolumnę odniesienia moźna oczywiście wybrać dowolnie i ukryć
' 3. Zakladam, źe w zbiorze liczb nie ma dziur
' brak obsługi błedow


Sub NazwijKomorkiPotrzebne()
' wykonać jako 1–sze makro lub ręcznie wprowdzić nazwę
' nazwa arkusza
' procedura ta wprowadza nazwy do arkusza
' w moim przypadku jest to arkusz 1–szy
Dim sName As String

With ThisWorkbook
' nazwa arkusza na którym te liczby się znajduja
sName = Trim(.Sheets(1).Name)
' nazwa kolumny arkusza w której te liczby się znajdują
' u mnie jest to kolumna B

.Names.Add Name:="KolumnaLiczb", _
RefersTo:="=" & sName & "!$B:$B"
' nazwa komórki w ktorej zapisuję ile jest pustych
' komórek przed 1–sza liczbą w kolumnie liczb
' u mnie przykładowo $F$2

.Names.Add Name:="OstatniaPusta", _
RefersTo:="=" & sName & "!$F$2"
' nazwa fragmentu kolumny który jest wypełniony liczbami
' poniewaź nie wiem czy te liczby sa od góry
' wyznaczam dynamicznie zakres (fragment) kolumny B, w którym sa te liczby
' fomułą przesunięcie
.Names.Add Name:="TablicaLiczb", _
RefersTo:="=OFFSET(KolumnaLiczb," _
& sName _
& "!OstatniaPusta,0,COUNTA(KolumnaLiczb),1)"
' nazwa kolumny odniesienia czyli tej ponumerowanej
' od góry od 1 –do tyle ile trzeba
' u mnie wszystkie

.Names.Add Name:="KolumnaOdniesienia", RefersTo:= _
"=" & sName & "!$A:$A"
' nazwa fragmentu kolumny odniesienia odpowiadającego
' fragmentowi TablicaLiczb

.Names.Add Name:="TablicaOdniesienia", RefersTo:= _
"=OFFSET(KolumnaLiczb," _
& sName _
& "!OstatniaPusta,–1,COUNTA(KolumnaLiczb),1)"
' po wykonaniu tej procedury moźna w opcji
' Wstaw/Nazwa/definiuj zobaczyć jakie nazwy zostały
' wprowadzone i jak kształtują się dynamiczne
' zakresy TablicaLiczb TablicaOdniesienia

End With
End Sub

Function IlePustych() As Long
' znalezienie 1–szej niepustej komórki w kolumnie liczb
' funkcja ta powinna zostać przypisana do komórki
' która nazwiemy OstatniaPusta u mnie np $F$2

Application.Volatile
Dim i As Long
IlePustych = 0
With ThisWorkbook.Sheets(1).Range("KolumnaLiczb")
For i = 1 To .Rows.Count
If Not IsEmpty(.Cells(i)) Then
IlePustych = i – 1
Exit For
End If
Next
End With
End Function

Sub Sortowanie()
' sama procedura sortowania posoruje zbiór liczb
' TablicaLiczb według liczb umieszczonych we fragmencie
' kolumny odniesienia TablicaOdniesienia
' xlDescending w kolejności odwrotnej do wpisanej
' i np zmieniając na xlAscending ponownie w poprzedniej

ThisWorkbook.Sheets(1).Range("TablicaOdniesienia:TablicaLiczb").Select
Selection.Sort Key1:=Range("TablicaOdniesienia"), _
Order1:=xlDescending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
' sortowanie będzie dotyczyć tylko dynamicznie wybrTablicaLiczb
' odpowiednio z kolumn A–KolumnaOdniesienia i B–KolumnaLiczb
' wówczas kolumny będą wygladać tak

' A B
' 1 puste
' 2 puste
' 7 –47
' 6 7
' 5 0
' 4 –4
' 8 puste
' po usunięciu komentarzy nie ma tego tak duźo

End Sub

Pozdrawiam Karolina
halinavb
Dodano
03.06.2004 01:53:31
Yoda:
Czy kolumn więcej jest? Jeźeli nie, to jakieś `kopiuj–>wklej specjalnie` czy ja nazywać się to w excelu raczyło wypróbować proponuję.
Pozdrawiam.

Nie da rady... Tak teź próbowałem nim się poddałem...
Pawek
Dodano
24.05.2004 19:50:06
A ja jestem pewien, źe gdybyśmy napisali do Microsfotu to by powiedzieli, źe mają dokładnie ten sam problem, ale u nich wszystko działa! :D Szczerze to próbowałem to rozkminić, no ale po kilku nieudanych próbach poddałem się. A co do wspomnianych Makr, to chyba nie tędy droga. Kto się będzie pieprz... w VBA? Juz lepiej chyba pozamieniać to ręcznie... :wink:
pawelwiejek
Dodano
24.05.2004 19:35:25
Czy kolumn więcej jest? Jeźeli nie, to jakieś `kopiuj–>wklej specjalnie` czy ja nazywać się to w excelu raczyło wypróbować proponuję.
Pozdrawiam.
Yoda
Dodano
24.05.2004 19:02:29
Tyle to i ja wiem, ale to ma znikomy związek z tematem... Bo to pomaga jedynie w szczególnym przypadku, a ten do takowych nie naleźy.

Zastanawiałem się jeszcze czy nie dałoby się coś z makrami wyczynić, ale moja znajomość tego tematu jest niewielka i moje umiejętności nie pozwoliły mi na jednoznaczne odpowiedzenie na pytanie, czy makra to dobra droga do osiągnięcia tego efektu :(
Pawek
Dodano
24.05.2004 16:06:37
Jeśli chodzi o proste odwrócenie rosnących liczb to:
1. zaznaczamy kolumnę
2. wydajemy polecenie Dane – Sortuj: opcja Malejąco, sprawdzamy czy w Lista (na dole) zaznaczona jest opcja "Nie ma wiersza nagłówka"
3.OK.
:wink:
piotr1958
Dodano
24.05.2004 10:22:43
Pawek:
Chwilę z tym powalczyłem i szczerze powiedziawszy nie mam pojęcia jak to zrobić szybciej niź ręczna zmiana... Poddaję się :(

Dzieki za dobre chęci. Qrde niby taka bzdurka mała, a jednak nikt nie wie jak to zrobić :).

Pozdrówka.
Ukasz
Dodano
21.05.2004 17:29:32
Pawek:
Chwilę z tym powalczyłem i szczerze powiedziawszy nie mam pojęcia jak to zrobić szybciej niź ręczna zmiana... Poddaję się :(

Dzieki za dobre chęci. Qrde niby taka bzdurka mała, a jednak nikt nie wie jak to zrobić :).

Pozdrówka.
Ukasz
Dodano
21.05.2004 17:29:32
Chwilę z tym powalczyłem i szczerze powiedziawszy nie mam pojęcia jak to zrobić szybciej niź ręczna zmiana... Poddaję się :(
Pawek
Dodano
21.05.2004 17:11:49
Zapomniałem się zalogować do poprzedniej odpowiedzi :), ale dokładnie o takie posortowanie danych mi chodzi .

Pozdrówka.
Ukasz
Dodano
21.05.2004 17:06:21
Dokładnie tak.
Anonymous
Dodano
21.05.2004 16:47:53
Czyli w kolumnie masz np. ...–1, 5, 76, 23, –65, 124... i chcesz, źeby było ...124, –65, 23, 76, 5, –1... :?:
Pawek
Dodano
21.05.2004 16:22:08
Ukasz
Dodano:
21.05.2004 15:10:36
Komentarzy:
13
Strona 1 / 1