Arkadiusz Błoński

Arkadiusz Błoński Supply Chain
Improvements Manager

Temat: jak na podstawie tekstu komórki sprawdzić który z...

witam,
mam komorki tekstowe, kazda z nich zawiera klucz (nie ma reguly czy klucz jest na poczatku, na koncu czy w srodku tekstu komorki).
powiedzmy ze kluczem jest:
'abc'
'cde'
'def'
jak wyciagnac zeby w kolumnie obok wyciagnac jaki klucz zawiera ten tekst?
jezeli nie da sie funkcja to wystarczy mi jaki warunek wstawic w VBA w if zby przeszukiwal zawartosc tej komorki:)reszte marka dam rade napisac chyba.
dzieki

Temat: jak na podstawie tekstu komórki sprawdzić który z...

zobacz w VBA

string = cells(1,1).value
if string like "*abc*" then ...
Arkadiusz Błoński

Arkadiusz Błoński Supply Chain
Improvements Manager

Temat: jak na podstawie tekstu komórki sprawdzić który z...

będę testował
dzięki:)

konto usunięte

Temat: jak na podstawie tekstu komórki sprawdzić który z...

Moim zdaniem prościej będzie zastosować funkcję szukaj.tekst(jeżeli znajdzie szukany klucz, zwraca pozycję w przeszukiwanym ciągu, w przeciwnym wypadku zwraca błąd) zagnieżdżoną w jeżeli, tak aby uzyskać wymagany efekt

konto usunięte

Temat: jak na podstawie tekstu komórki sprawdzić który z...

Można to rozwiązać przy pomocy prostej funkcji (poniżej), Jej zadaniem jest sprawdzenie czy w określonym tekście (przekazywanym do funkcji przez Tekst) znajduje się jakikolwiek klucz ze zbioru (tablica z kluczami przekazywana przez TabKluczy).

Function Klucz(Tekst As String, TabKluczy As Variant) As String

For Each sKlucz In TabKluczy
If InStr(Tekst, sKlucz) <> 0 Then
Klucz = sKlucz
End If
Next

End Function

W praktyce wygląda to tak:

W arkuszu „Klucze” wpisujemy listę kluczy, np.:
abc
def
ghi
jkl

Załóżmy, że w arkuszu z danymi w komórce A1 mamy wpisany tekst: asdfabc
To jeżeli użyjemy tej funkcji: =Klucz(A1;Klucze!$A$1:$A$4) w wyniku otrzymamy: abc.

Oczywiście można ją trochę poprawić. Teraz jest wrażliwa na wielkość liter, jeżeli w badanym ciągu znaków mamy dwa klucze, to funkcja da w wyniku ten, który znajduje się na ostatnim miejscu listy kluczy etc.

Jeżeli chcesz przykładowy plik podaj mi swój adres e-mail, prześlę.
Arkadiusz Błoński

Arkadiusz Błoński Supply Chain
Improvements Manager

Temat: jak na podstawie tekstu komórki sprawdzić który z...

a jak to jest z funkcjami - jeżeli ja sobie zroię to ona będzie bez problemu widziana w innym excelu?
raczej pojade makrem bo muszę też pare innych działań wykonać...
jeżeli chodzi o funkcję szukaj.tekst to ona zwraca błąd jeżeli nie znajdzie klucza...
dzięki
pozdrawiam

konto usunięte

Temat: jak na podstawie tekstu komórki sprawdzić który z...

no jeśli zwraca błąd to zawsze można zagnieździć ją w funkcji czy.błąd ;)
dopowiem jak może to wyglądać:
jeżeli(czy.błąd(szukaj.tekst(twoje warunki));co ma się pokazać, gdy nie znajdzie szukanego ciągu znaków;co ma się pokazać, gdy znajdzie szukany ciąg znaków)
moim zdaniem nie ma potrzeby przerzucać rozwiązania prostego problemu do VBA;)Marcin Makowski edytował(a) ten post dnia 19.12.07 o godzinie 11:48

konto usunięte

Temat: jak na podstawie tekstu komórki sprawdzić który z...

Arkadiusz Błoński:
a jak to jest z funkcjami - jeżeli ja sobie zroię to ona będzie bez problemu widziana w innym excelu?
raczej pojade makrem bo muszę też pare innych działań wykonać...
jeżeli chodzi o funkcję szukaj.tekst to ona zwraca błąd jeżeli nie znajdzie klucza...
dzięki
pozdrawiam

Nie ma problemu aby ta funkcja była widziana dla innych plików. Można napisać sobie taką funkcję i zapisać plik jako dodatek Excela. Potem trzeba w menu Narzędzia/Dodatki udostępnić ten dodatek i będzie działał dla wszystkich arkuszy na tym komputerze.
Arkadiusz Błoński

Arkadiusz Błoński Supply Chain
Improvements Manager

Temat: jak na podstawie tekstu komórki sprawdzić który z...

Marcin Makowski:
no jeśli zwraca błąd to zawsze można zagnieździć ją w funkcji czy.błąd ;)
dopowiem jak może to wyglądać:
jeżeli(czy.błąd(szukaj.tekst(twoje warunki));co ma się pokazać, gdy nie znajdzie szukanego ciągu znaków;co ma się pokazać, gdy znajdzie szukany ciąg znaków)
moim zdaniem nie ma potrzeby przerzucać rozwiązania prostego problemu do VBA;)Marcin Makowski edytował(a) ten post dnia 19.12.07 o godzinie 11:48
gdyby to sie ograniczalo do jednego, dwoch warunkow to owszem...ja mam osiem grup i do kazdej grupy kilka kluczy, dlatego VB mi sie bardziej przyda:)
dzięki :)
Arkadiusz Błoński

Arkadiusz Błoński Supply Chain
Improvements Manager

Temat: jak na podstawie tekstu komórki sprawdzić który z...

Zbigniew Zubowicz:
zobacz w VBA

string = cells(1,1).value
if string like "*abc*" then ...
zrobilem, wszystko fajnie dziala, tylko czy ktos ma pomysl jak zrobic zeby to nie bylo czule na wielkosc liter?
i drugie pytanko czy moge za jednym ifem sprawdzic czy etekst zawiera ktorys z kilku kluczy?
ja robie tak:
if string like "*abc*" or if string like "*bcd*" if string like "*cde*" then ...
ale pewnie mozna inaczej?
dzięki
pozdrawiam
arek
Marcin E.

Marcin E. Astrosklep.pl
(zegarki słoneczne)
ExcelBlog.pl

Temat: jak na podstawie tekstu komórki sprawdzić który z...

Cześć,
Arkadiusz Błoński:
>czy ktos ma pomysl jak
zrobic zeby to nie bylo czule na wielkosc liter?

Najprościej to chyba tak:

string = cells(1,1).value
if UCase(string) like UCase("*abc*") then ...
i drugie pytanko

Może po prostu tak (prawie tak jak zrobiłeś):

if (UCase(string) like UCase("*abc*") OR UCase(string) like UCase("*ala*")) then

Marcin
Arkadiusz Błoński

Arkadiusz Błoński Supply Chain
Improvements Manager

Temat: jak na podstawie tekstu komórki sprawdzić który z...

wszystko ładnie działa:)dzięki wszystkim
jednak wychodzi na to, że nie jest to rozwiazanie optymalne bo niektóra grupa charakteryzuje się 10oma kluczami i z tymi wszystkimi ifami robi się bałagan...
dlatego wymyslilem inne rozwiazanie, chcialbym zrobic sobie tabelke ktora zawierala by w kolumnie a opis a w kolumnie b nazwe grupy.
I dalej chcialbym aby VBA sprawdzal na tej podstawie do jakiej grupy zalicza sie dany tekst.
Moglbym to zrobic wyszukaj.pionowo ale zwazywszy ze pliki sa dynamiczne i tak z VBA musialbym wpisywac ta formule do pliku za kazdym razem (makro otwiera plik zewnetrzny, w nim szuka grup i zlicza dla nich rozne wartosci zeby na koniec zamknac plik bez zapisywania i wrocic do pliku z ktorego bylo uruchomione) stad moje pytanie - czy moge jakos ta tablice opis, klucz wczytac do VBA i potem przeszukiwac tekst i klasyfikowac go do grupy?
chcialbym wierzyc ze to co napisalem jest chociaz troszke zrozumiale, jezeli nie jest napiszcie postaram sie jasniej wytlumaczyc:)
dzieki wielkie
pozdrawiam
Marcin E.

Marcin E. Astrosklep.pl
(zegarki słoneczne)
ExcelBlog.pl

Temat: jak na podstawie tekstu komórki sprawdzić który z...

Najlepiej to by chyba było gdybyś gdzieś wrzucił plik Excela. Ja bardzo chętnie bym popróbował, ale zgadywać mi się nie bardzo chce, no i lepiej pracuje sie chyba na "żywym" arkuszu. Pewien także jestem, że i odpowiedź na swoje problemy miałbyś szybciej.

Marcin
Arkadiusz Błoński

Arkadiusz Błoński Supply Chain
Improvements Manager

Temat: jak na podstawie tekstu komórki sprawdzić który z...

jutro postaram sie to gdzies wrzucic,teraz po 18godzinach czas troche odespac...
tymczasem spytam jak sie definiuje tablice w VBA?normalnie tablica[i]=5 ??
dzieki



Wyślij zaproszenie do