Strona 1 z 1
[EXCEL] Lista wartości
#1
|
#2
Napisany 09 sierpień 2006 - 22:22
Próbowałem samymi formułami ale się zapętliłem
Łatwo zrobić przy pomocy tabeli przestawnej, zwłaszcza jeśli nazwiska nie są posortowane. Ale to ma jedną wadę; odświerzać automatycznie i tak trzeba makrem.
Jeśli mówisz prawdę, nie musisz niczego pamiętać. Mark Twain.
#3
Napisany 10 sierpień 2006 - 10:08
albo przekopiowanie danych dotyczących kolejnych nazwisk po przefiltrowaniu (jesli juz przerzucac osobno)?
#4
Napisany 10 sierpień 2006 - 13:35
Range("AZ2:AZ500").Clear
Range("AX2:AX65536").AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Range("AZ2"), Unique:=True
Range("AZ2:AZ253").Sort Key1:=Range("AZ2"), Header:=xlGuess
Ja mam coś podobnego ale w jednym arkuszu
Zakres AX to zbiór rekordów (konkretnie są to daty wykonywania zadań)
a w Kolumnie AZ mam po jednej dacie z zakresu AZ.
Kod makra zamieszczony był swego czasu na stronie excelwpraktyce
autorstwa Rycha lub Tajana
Pozdrawiam
Rysiek
#5
Napisany 10 sierpień 2006 - 23:06
W makrze to nie widzę problemu,
Pozdrawiam, Gilbert
#6
Napisany 10 sierpień 2006 - 23:25
Tak. Makrem to banalne.
Formułami dla liczb też banalne, no prawie.
Dla nazwisk już posortowanych, pewnie wykonalne (nie jestem pewien).
Ale jak sortować formułami tekst?
Próbowalem zastosować funkcję zamieniającą tekst na liczbę.
Najpierw funkcją KOD i potem funkcją PODAJ.POZYCJĘ operującą na 32 znakch zamieniałm poczczególne litery na liczby i mnożyłem przez odpowiednie wagi ale z powodu tego, że excel pamieta liczby tylko z dokładnością 15 cyfr, to jedynie 10 pierwszych znaków nazwiska mozna w ten sposób przekształcić. Wynikim będzie więc nieprecyzyjne sortowanie a co gorsza jest możliwość 'zgubienia' podobnych nazwisk.
W weekend jeszcze trochę nad tym pomyślę. Może znajdę lepszy sposób 'pakowania' tekstu do liczby, ale obawiam się, że przy pomocy samych formuł to niewykonalne. Przecież w tym co już zrobiłem, musiałem użyć 'pseudo-iteracji' w formułach tablicowych.
Ale problem ciekawy.
Pozdrawiam
Jeśli mówisz prawdę, nie musisz niczego pamiętać. Mark Twain.
#7
Napisany 11 sierpień 2006 - 17:18
Pozdrawiam, G
#8
Napisany 11 sierpień 2006 - 18:09
Sortowanie, niestety jest istotne.
W kolumnie A lista nazwisk posortowana lecz zawierająca powtórzenia,
w kolumnie B lista nazwisk unikalnych
B2 =A2
B3 i poniżej
=INDEKS($A$1:$A$99;MAX(WIERSZ($A$1:$A$99)*($A$1:$A$99=B2))+1)
Jest to formuła tablicowa, zatwierdzana klawiszami Ctrl+Shift+Enter)
Lista zakończy się wartością 0 (zero) i błądami w kolejnych komórkach. Można to wykorzystac do określenia konca listy.
Nie wiem, do czego wykorzystasz tą listę?
Jeśli jednak by to przeszkadzało, to formułę można 'opakować' funkcją JEŻELI, sprawdzając to 'zero'.
Jeśli mówisz prawdę, nie musisz niczego pamiętać. Mark Twain.
#9
Napisany 12 sierpień 2006 - 15:32
W jednym arkuszu "głównym" są wszystkie dane (ta duża tabela z nazwiskami i innymi wartościami). W drugim arkuszu jest podsumowanie. Jest nazwisko osoby, dla której sumuję pewne wrtości z głównego arkusza przy pomocy suma.jeżeli...nazwisko. Żeby mi to działało to +/- ręcznie muszę wybrać i wpisać nazwiska jakie są w głównej tabeli. Chciałem żeby formuła wpisywała mi nazwiska do arkusza z podsumowaniem i do tych nazwisk wyliczyły się odpowiednie wartości.
Obawiam się, że na samych formulach to nie pójdzie a nie chcę robić tam żadnego makra, ale jak nie da rady formułami to chyba będę musiał
G
#10
Napisany 12 sierpień 2006 - 17:30
Męczyło mnie to okrutnie, a że nie umiem się poddać w sytuacji gdy wiem, że coś jest w moim zasięgu, to posiedziałem nad tym i zrobiłem.
Rozwiązanie nie jest proste i wymaga kolumn pomocniczych i formuł tablicowych (zatwierdzanych klawiszem Enter podczas trzymania wciśniętych klawiszy Ctrl i Shift).
Nazwiska w kolumnie A (przyjąłem zakres 99 wierszy).
do B2 formuła tablicowa
=SUMA(($A$1:$A$99<=A2)*1)
którą należy przekopiować w dół,
do C2
=MIN(B2:B99)
do C3 formuła tablicowa
=MIN(JEŻELI($B$2:$B$99>C2;$B$2:$B$99;1000))
którą należy przekopiować w dół,
do D2
=INDEKS(A$2:$A$99;PODAJ.POZYCJĘ(C2;$B$2:$B$99;0))
którą należy przekopiować w dół,
do E2
=JEŻELI(NIE(CZY.BŁĄD(D3));D3;"")
którą należy przekopiować w dół.
Plik, w którym to testowałem, w załączniku.
Pozdrawiam
EDIT
Porawiłem formuły (także w załączniku) w kolumnie D, bo to była wersja pośrednia, gdy próbowalem zrobić jedną megaformulę, ale jak na razie nie wyszło.
Załączone pliki
-
lista_unikalna_sortowana.zip (7,58K)
Ilość pobrań: 90
Jeśli mówisz prawdę, nie musisz niczego pamiętać. Mark Twain.
#11
Napisany 13 sierpień 2006 - 14:53
Pozdrawiam, G
Prześlij ten temat:
Podobne tematy
| Temat | Forum | Rozpoczęty przez | Statystyki | Ostatni post | |
|---|---|---|---|---|---|
|
|
Pakiety biurowe |
Klaudia79
|
|
|
|
|
Pakiety biurowe |
piotrkosla@gmail.com
|
|
|
|
|
Pakiety biurowe |
Joanna25
|
|
|
|
|
Pakiety biurowe |
Gorczyca
|
|
|
|
|
Pakiety biurowe |
Madee
|
|
|
1 Użytkowników czyta ten temat
0 użytkowników, 1 gości, 0 anonimowych użytkowników
Podobne aktualności
- Google udostępnia narzędzie e-discovery dla Google Apps for Business
- 7 pakietów biurowych dla tabletów i smartfonów na Androidzie
- 7 pakietów biurowych dla platformy Android
- Dysk Google. Wszystko co chciałbyś wiedzieć o Google Drive 1/2
- Dysk Google. Wszystko co chciałbyś wiedzieć o Google Drive 2/2
- Dysk Google w pigułce. Google Drive zastąpiło na stałe Dokumenty
- Microsoft przekupuje Parlament Europejski?
- Ścieżka Office, Office 365 i Sharepoint w ramach TechEd 2012
- Windows 8 będzie dostępny w czterech wersjach
- Windows - reaktywowanie systemu i aplikacji
Reklama
|
|

Zaloguj się
Rejestracja
Pomoc



















