REKLAMA

Liczby_do_kolumny.xls

Excel - Jak przenieść liczby z wiersza do jednej kolumny?

Dzień dobry, Excel nie jest stworzony do obróbki tekstów, ma ograniczony zestaw funkcji tekstowych, więc tego typu zadania są dość trudne i rzadko daje się znaleźć rozwiązania uniwersalne. Dane wejściowe muszą być dokładnie zdefiniowane, bo trzeba określić jakieś zrozumiałe dla Excela kryteria wyszukiwania. Dlatego ważny jest w takim przypadku załącznik w formie pliku, żeby było na czym testować rozwiązania. Nie da się wszystkiego wymyślić w głowie i podać bez sprawdzenia. Tyle tytułem wstępu. A teraz ad rem. Proponuję rozwiązanie stosunkowo proste, ale niezbyt efektywne w przypadku dużej liczby danych. Przy dużej liczbie rekordów trzeba podzielić dane na fragmenty i każdy przetworzyć osobno. Różne liczby danych w wierszach też nie ułatwiają zadania, więc zdecydowałem się na połączenie wszystkich tekstów w jeden i wyszukiwanie liczb w tak połączonym tekście. Ograniczeniem jest tu liczba znaków, jaką można wpisać do komórki. Teksty połączone tworzę w kolumnie pomocniczej na zasadzie dopisywania kolejnych ogniw. Niestety nie ma funkcji, która w wygodny sposób zrobiłaby to od razu. Można napisać taką funkcję w VBA, wtedy możnaby uniknąć kolumny pomocniczej. Liczby są selekcjonowane z tekstu za pomocą formuły tablicowej jednokomórkowej, kopiowanej w dół, aż do wystąpienia pustej komórki. =FRAGMENT.TEKSTU(G6;MIN.K(JEŻELI.BŁĄD(ZNAJDŹ($B$4&WIERSZ($30000:$39999);G6);10000);WIERSZ()-5);8) Znaczenie symboli we wzorze: G6 - adres względny tekstu połączonego (z kolumny pomocniczej) $B$4 - adres absolutny trzech pierwszych cyfr liczb (stałe) WIERSZ($30000:$39999) - tablica numerów wierszy arkusza, stanowiąca wzorzec do wyszukiwania liczb, pierwsżą cyfrą jest ostatnia stała cyfra prefiksu 10000 - duża liczba, większa od długości połączonego tekstu zastępująca adres znalezionego znaku gdy znak nie znaleziony WIERSZ()-5 - numerator wierszy zaczynający od 1 (w przykładzie lista zaczyna się w szóstym wierszu) 8 - długość liczby Liczby zwracane przez funkcję mają postać tekstu, jeśli mają być dalej przetwarzane jako liczby, wyniki można pomnożyć przez 1. Proszę sprawdzić czy ta propozycja spełnia oczekiwania i wybrać sobie wariant dogodniejszy. Pozdrowienia.


Pobierz plik - link do postu

, " 3 cyfry numeru "
, " 901 " ,,, " WYNIK " ,, " kolumna pomocnicza "
" F: 90131568, 90135954, 90135865 " ,,,, " 90131568 " ,, " F: 90131568, 90135954, 90135865 "
" F: 90134258 " ,,,, " 90135954 " ,, " F: 90131568, 90135954, 90135865F: 90134258 "
" F: 90131546 " ,,,, " 90135865 " ,, " F: 90131568, 90135954, 90135865F: 90134258F: 90131546 "
" F: 90135845 " ,,,, " 90134258 " ,, " F: 90131568, 90135954, 90135865F: 90134258F: 90131546F: 90135845 "
" F:90133846 " ,,,, " 90131546 " ,, " F: 90131568, 90135954, 90135865F: 90134258F: 90131546F: 90135845F:90133846 "
" F: 90135445 " ,,,, " 90135845 " ,, " F: 90131568, 90135954, 90135865F: 90134258F: 90131546F: 90135845F:90133846F: 90135445 "
" F: 90135454 " ,,,, " 90133846 " ,, " F: 90131568, 90135954, 90135865F: 90134258F: 90131546F: 90135845F:90133846F: 90135445F: 90135454 "
" F: 90134135, 90135651, 90135868 " ,,,, " 90135445 " ,, " F: 90131568, 90135954, 90135865F: 90134258F: 90131546F: 90135845F:90133846F: 90135445F: 90135454F: 90134135, 90135651, 90135868 "
" F: 90131516, 90135413 " ,,,, " 90135454 " ,, " F: 90131568, 90135954, 90135865F: 90134258F: 90131546F: 90135845F:90133846F: 90135445F: 90135454F: 90134135, 90135651, 90135868F: 90131516, 90135413 "
" F: 90135455, 90131645 " ,,,, " 90134135 " ,, " F: 90131568, 90135954, 90135865F: 90134258F: 90131546F: 90135845F:90133846F: 90135445F: 90135454F: 90134135, 90135651, 90135868F: 90131516, 90135413F: 90135455, 90131645 "
" F: 90138468 " ,,,, " 90135651 " ,, " F: 90131568, 90135954, 90135865F: 90134258F: 90131546F: 90135845F:90133846F: 90135445F: 90135454F: 90134135, 90135651, 90135868F: 90131516, 90135413F: 90135455, 90131645F: 90138468 "
,,,, " 90135868 " ,, " F: 90131568, 90135954, 90135865F: 90134258F: 90131546F: 90135845F:90133846F: 90135445F: 90135454F: 90134135, 90135651, 90135868F: 90131516, 90135413F: 90135455, 90131645F: 90138468 "
,,,, " 90131516 " ,, " F: 90131568, 90135954, 90135865F: 90134258F: 90131546F: 90135845F:90133846F: 90135445F: 90135454F: 90134135, 90135651, 90135868F: 90131516, 90135413F: 90135455, 90131645F: 90138468 "
,,,, " 90135413 " ,, " F: 90131568, 90135954, 90135865F: 90134258F: 90131546F: 90135845F:90133846F: 90135445F: 90135454F: 90134135, 90135651, 90135868F: 90131516, 90135413F: 90135455, 90131645F: 90138468 "
,,,, " 90135455 " ,, " F: 90131568, 90135954, 90135865F: 90134258F: 90131546F: 90135845F:90133846F: 90135445F: 90135454F: 90134135, 90135651, 90135868F: 90131516, 90135413F: 90135455, 90131645F: 90138468 "
,,,, " 90131645 " ,, " F: 90131568, 90135954, 90135865F: 90134258F: 90131546F: 90135845F:90133846F: 90135445F: 90135454F: 90134135, 90135651, 90135868F: 90131516, 90135413F: 90135455, 90131645F: 90138468 "
,,,, " 90138468 " ,, " F: 90131568, 90135954, 90135865F: 90134258F: 90131546F: 90135845F:90133846F: 90135445F: 90135454F: 90134135, 90135651, 90135868F: 90131516, 90135413F: 90135455, 90131645F: 90138468 "
,,,,,, " F: 90131568, 90135954, 90135865F: 90134258F: 90131546F: 90135845F:90133846F: 90135445F: 90135454F: 90134135, 90135651, 90135868F: 90131516, 90135413F: 90135455, 90131645F: 90138468 "