minius [ Senator ]
Excel-jak pobrać dane z co 3 komórki w danej kolumnie?
Mam dane w Excelu, które znajdują się co 3 komórkę. Musze je przenieść do jednej kolumny, ale w kolejnych komórkach. Z tym, ze wpisywanie ręczne formuły do każdej komórki odpada, bo jest ich kikladziesiąt tysięcy.
najprościej byłoby wpisać formułę =A(A1+3) i powielić tę formułę w kolejnych komórkach.
Niestety Excel nie przyjmuje adresu komórki jako zmiennej, więc nie potrafię tego zrobić w ten sposób.
Może macie jakś pomysł jak to wykonać?
Obok zrzut ekranu o co chodzi.
minius [ Senator ]
No i nie dałem zrzutu ekranu
Tofu [ Zrzędołak ]
Sprawdź ten dodatek do Excela (darmowy) - nie jestem na 100% pewien, ale chyba była tam taka funkcja (teraz jestem w pracy i nie mogę niczego nistalować, więc będziesz musiał sprawdzić sam. Nawet jeśli jej nie ma, to dodatek i tak genialny).
Yos_sarian [ Washington Irving ]
nie wiem czy o to ci chodzi ale wystarczy trzymac ctrl i wtedy mozesz wybiorczo zaznaczac komorki do skopiowania.
Tofu [ Zrzędołak ]
Jest jeszcze jedno wyjście - umiejętne zastosowanie funkcji MOD. Tu Ci raczej nie pomogę, bo nie znam się na tym aż tak dobrze, ale przeczytaj tę instrukcję (dotyczy sumowania co n-tego rzędu), może wpadniesz na jakiś dobry pomysł:
Attyla [ Flagellum Dei ]
Za czasów excela 4.0 wystarczyło zrobić pętlę if. teraz też to trzeba zrobić, ale już w tym pieprzonym basicu. Poczytaj instrukcję.
minius [ Senator ]
Yos_sarian - To mam propozycję.
Ja CI wyślę ten arkusz, a Ty stosując CTRL zaznaczysz 20 tysięcy wierszy do wyrzucenia i odeślesz mi to poprawione.
OK?
Tofu - faktycznie nakładka fajna . Ma nawet ciekawą funkcję dodawania wierszy co ileśtam. Ale twórcy nie pomyśleli by zaimplementować również funkcję odwrotną - odejmowanie wierszy co ileśtam. Wielka szkoda, bo mialbym już sprawę rozwiązaną.
Attyla - też mi się wydawało, ze kilka lat temu coś takiego w starszym Excelu było. W VB mam wiedzę zerową, więc szukam innych sposobów.
Tofu [ Zrzędołak ]
A próbowałeś funkcji "warunkowego wyboru" (conditional select)? Nie pamiętam w tym momencie, czy coś w stylu "every n-th row" tram było, ale sprawdzić możesz :)
EDIT: Znalazłem metodę - najpierw wybierasz "Color each n'th row or column", potem "Conditional select cells" i "Cell color" - trochę upierdliwe, ale powinno działać.
Musk2 [ Konsul ]
minius-->
moze troszke inne podejscie, ale chyba Ci pomoze
makro na usuwanie pustych wierszy:
Sub delCoDrugi()
For a = 1 To 100
ActiveCell.Offset(1, 0).Rows("1:1").Select
If ActiveCell = "" Then Selection.EntireRow.Delete
Next a
End Sub
liczba 100 oznacza ile wierszy ma sprawdzac wiec wpisz odpowiednia liczbe
makro dziala na dowolna kolumne wiec kursor ustaw w pierwszym wierszu, w kolumnie gdzie masz nazwisk/imiona
no chyba ze te odstepy Ci jednak sa potrzebne :)
mike1980 [ Centurion ]
Można to na zrobić na mnóstwo sposobów. Chyba 2 najszybsze:
1) Zaznacz kolumny C i D, załóż autofiltr. Kliknij na autofiltr, wybierz "aby pokazywał niepuste", zaznacz, skopiuj.
2) Zaznaczasz klumny C i D. Klikasz F5 ==> Specjalne ==> Stałe (czy jakoś tak) ==> kopiujesz ==> wklejasz
mike1980 [ Centurion ]
Jeśli koniecznie musi być formuła:
Pierwszy wiersz możesz sam sobie przekopiować a w drugi wstaw i przeciągnij w dół:
=INDIRECT(ADDRESS(1+3*(ROW()-1);3)), gdzie 3 to numer kolumny z nazwiskiem.
Nie mam w domu excela, ale po polsku będzie to jakoś tak:
=adr.pośr(adres(1+3*(wiersz()-1),3)) (albo przed 3 średnik). Jeśli coś pomyliłem niech mnie proszę ktoś poprawi.
minius [ Senator ]
Dając graficzny przykład o co mi chodzi, zrobiłem pewien niezamierzony błąd.
O ile faktycznie potrzebowałem (bo dzięki ostatniej poradzie Mike 1980 problem został rozwiązany) zaimportować co 3 wiersz danych do innej kolumny, tak by występowały one w wierszach kolejnych, to wiersze pomiędzy również były zapełnione tzw. śmieciami, które wytworzyły się podczas importu danych z innego źródła.
Tak więc warunkowe usuwanie pustych wierszy nic by tu nie pomogło.
Bardzo wszystkim dziękuję za pomoc, a szczególne słowa podziękowania kieruję do Mike 1980: Twoja formuła sprawdza się idealnie (masz rację, w polskim Excelu zamiast przecinka nalezy zastosować średnik).
Temat zamknięty