Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 70227 Skopiuj do schowka Wyszukiwanie fragmentu teksty
Autor Wiadomość
winerek 
Świeżak


Posty: 6
Wysłany: 23-02-2021, 15:10   Wyszukiwanie fragmentu teksty

Witam, potrzebuję pomocy.
Mianowicie w jaki sposób wyciągnąć fragment tekstu z ciągu znaków, w załączeniu przesyłam podgląd. W kolumnie „D” potrzebuję wyciągnąć jaki to rodzaj opakowania, a w kolumnie „E” jaka waga opakowania jednostkowego.

test.xlsx
Pobierz Plik ściągnięto 11 raz(y) 10.41 KB

ID posta: 400896 Skopiuj do schowka
 
 
Czeslaw
ExcelSpec


Pomógł: 206 razy
Posty: 706
Wysłany: 23-02-2021, 15:38   

Formula
Kod:
=LEFT(RIGHT(C5;LEN(C5)-SEARCH(D5;C5)-3);SEARCH("KG";RIGHT(C5;LEN(C5)-SEARCH(D5;C5)-3))+1)


Copy of test-3.xlsx
Pobierz Plik ściągnięto 5 raz(y) 10.79 KB

ID posta: 400903 Skopiuj do schowka
 
 
Asia_@. 
Excel Expert


Pomogła: 2747 razy
Posty: 4607
Wysłany: 23-02-2021, 15:41   

Kod:
=LEWY(USUŃ.ZBĘDNE.ODSTĘPY(PRAWY(C5;DŁ(C5)-SZUKAJ.TEKST("KG";C5)-2));3)

Kod:
=--LEWY(PRAWY(C5;DŁ(C5)-SZUKAJ.TEKST("X";C5));ZNAJDŹ("KG";PRAWY(C5;DŁ(C5)-SZUKAJ.TEKST("X";C5)))-2)
_________________
Pozdrawiam
Asia
ID posta: 400905 Skopiuj do schowka
 
 
kuma 
Excel Expert


Wersja: Win Office 2010
Pomógł: 1440 razy
Posty: 4111
Wysłany: 23-02-2021, 17:02   

A gdyby formuły "nie leżały" to wypróbuj VBA.
Jeśli są jeszcze jakieś inne możliwości zapisu niż podane w załączniku to napisz.
Kod skopiuj do modułu normalnego VBA i uruchom.
Kod:
Sub test_kuma()
    Dim i As Integer
    Dim a(), v, mcol
    Dim r As Object
    Const szablon As String = "(?:^.*kg,?\s{0,})([a-z]{3})(?:.*\dx?)(\d+\,?\d{0,})(?= .*$)"
   
    With ActiveSheet.[c5].CurrentRegion.Columns(1)
        .Offset(1, 1).Resize(, 2).ClearContents
        a = .Offset(1).Resize(.Rows.Count - 1, 2).Value
        With VBA.CreateObject("VBScript.RegExp")
            .Global = True
            .IgnoreCase = True
            .Pattern = szablon
            For i = 1 To UBound(a)
                If .test(a(i, 1)) Then
                    Set mcol = .Execute(a(i, 1))
                    a(i, 1) = mcol.Item(0).SubMatches(0)
                    a(i, 2) = Application.Substitute(mcol.Item(0).SubMatches(1), ",", ".")
                End If
            Next
        End With
        .Parent.[d5].Resize(UBound(a), 2) = a
    End With
    Set r = Nothing
    Set mcol = Nothing
End Sub
_________________
Pozdrawiam.
ID posta: 400917 Skopiuj do schowka
 
 
Kapitan Filutek 
Forumowicz


Wersja: Win Office 2019
Posty: 16
Wysłany: 25-02-2021, 22:45   

Podłączam się pod temat 8-)

W różnych komórkach w kolumnach E:H są adresy e-mail. Potrzebowałbym wyszukać w komórkach adresu e-mail oraz wyświetlić je w kolumnie I.

Jeśli da adresy e-mail są w jednym wierszu mogą się pojawić po przecinku w kolumnie I.
Jeśli w danym wierszu nie ma adresów e-mail - może się nic nie wyświetlać.

Próbowałem przez fragment tekstu który zamieniam na liczby aby wyfiltrować wiersze ale to dość żmudne.

Prośba o pomoc - plik w załączeniu.

Marcin

plik.xls
Pobierz Plik ściągnięto 4 raz(y) 29 KB

ID posta: 401029 Skopiuj do schowka
 
 
Marecki 
Excel Expert



Wersja: Win Office 2019
Pomógł: 2496 razy
Posty: 8293
Wysłany: 26-02-2021, 01:05   

Czy o to chodzi ?
Kod:
=USUŃ.ZBĘDNE.ODSTĘPY( E3&" "&F3&" "&G3&" "&H3)
_________________
Hardware - ta część komputera, którą można kopnąć kiedy software przestanie funkcjonować.

Szkolenia z Excela , FB
Office 2019 Professional Plus , Windows 10 x64
Pozdrawiam, były mkkk23 teraz Marecki.
ID posta: 401033 Skopiuj do schowka
 
 
Maciej Gonet 
Excel Expert


Wersja: Win Office 2016
Pomógł: 2033 razy
Posty: 6431
Wysłany: 26-02-2021, 01:11   

Czy to, że załączyłeś plik w formacie .xls coś oznacza? W której wersji Excela ma to działać?
Jeśli komórki zawierają adresy mailowe lub są puste, to wystarczy:
Kod:
=POŁĄCZ.TEKSTY(", ";PRAWDA;E3:H3)
jeśli to Excel 2019 lub 365.
Jeśli starszy, to tak:
Kod:
=ZASTĄP(JEŻELI(E3<>"";", "&E3;"")&JEŻELI(F3<>"";", "&F3;"")&JEŻELI(G3<>"";", "&G3;"")&JEŻELI(H3<>"";", "&H3;"");1;2;"")
albo w wersji nieco skróconej (z wykorzystaniem domyślnych wartości argumentów):
Kod:
=ZASTĄP(JEŻELI(E3<>"";", "&E3;)&JEŻELI(F3<>"";", "&F3;)&JEŻELI(G3<>"";", "&G3;)&JEŻELI(H3<>"";", "&H3;);1;2;)


plik_maile.xls
Pobierz Plik ściągnięto 3 raz(y) 25 KB

  
ID posta: 401035 Skopiuj do schowka
 
 
Kapitan Filutek 
Forumowicz


Wersja: Win Office 2019
Posty: 16
Wysłany: 26-02-2021, 09:06   

Maciej, dziękuję, de facto o to.

A czy można dodać warunek że jeśli w danym polu jest cyfra to pominie ją i wyświetli w ostatnim polu tylko adres e-mail?

Pozdrawiam
Marcin
ID posta: 401040 Skopiuj do schowka
 
 
Maciej Gonet 
Excel Expert


Wersja: Win Office 2016
Pomógł: 2033 razy
Posty: 6431
Wysłany: 26-02-2021, 13:17   

Ale nie napisałeś, która wersja ostatecznie Ci odpowiada - ta dla nowszych, czy ta dla starych Exceli?
Zmieniłem warunek na CZY.TEKST - czyli będą wyświetlane teksty, a liczby i daty nie.
Wersja dla nowych Exceli:
Kod:
=POŁĄCZ.TEKSTY(", ";PRAWDA;JEŻELI(CZY.TEKST(E3:H3);E3:H3;""))

Dla starych:
Kod:
=ZASTĄP(JEŻELI(CZY.TEKST(E3);", "&E3;)&JEŻELI(CZY.TEKST(F3);", "&F3;)&JEŻELI(CZY.TEKST(G3);", "&G3;)&JEŻELI(CZY.TEKST(H3);", "&H3;);1;2;)


plik_maile2.xls
Pobierz Plik ściągnięto 2 raz(y) 30.5 KB

ID posta: 401050 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum

Strona używa plików cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe