"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.
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
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
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–szyDim 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
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...
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:
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.
Pozdrawiam.
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 :(
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 :(
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:
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:
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.
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.
Chwilę z tym powalczyłem i szczerze powiedziawszy nie mam pojęcia jak to zrobić szybciej niź ręczna zmiana... Poddaję się :(
Zapomniałem się zalogować do poprzedniej odpowiedzi :), ale dokładnie o takie posortowanie danych mi chodzi .
Pozdrówka.
Pozdrówka.
Dokładnie tak.
Czyli w kolumnie masz np. ...–1, 5, 76, 23, –65, 124... i chcesz, źeby było ...124, –65, 23, 76, 5, –1... :?:
Strona 1 / 1