[SOLVED] Określ wartość, jeśli komórka H=1, komórka K=tekst

Użytkowanie arkusza kalkulacyjnego
miodoso1
Posty: 2
Rejestracja: śr lip 25, 2018 10:08 am

[SOLVED] Określ wartość, jeśli komórka H=1, komórka K=tekst

Post autor: miodoso1 »

Witam

Nie mogę sobie poradzić z takim problemem z dziedziny automatyzacji parametru, wpisywanego inaczej ręcznie.

Mam tabelę z listą napraw dokonanych w serwisie. Potrzebuję: sprawdzić, czy dana naprawa była gwarancyjna (i urządzenie było faktycznie niesprawne, gdy przyszło do serwisu) = jeżeli tak, to wystawiamy "flagę" 1. Jeżeli tak nie było (np. urządzenie było sprawne, lub/i pogwarancyjne) to mam otrzymać "flagę" 0.

Problemem jest tu sama tabela, w której determinacja parametru "sprawne" odbywa się... na podstawie tekstu "opis naprawy", wprowadzanego ręcznie przez serwisantów. Na całe szczęście - tekst ten zawsze jest majuskułowy i zawsze, jeśli urządzenie było sprawne, gdy je dostaliśmy - wpisuje się SPRAWNA, SPRAWNE lub SPRAWNY. Ale zdarza się, że wpisuje się np. SPRAWNY, coś tam np. SPRAWNY, BRAK MOŻLIWOŚCI REPRODUKCJI WARUNKÓW WYSTĄPIENIA OPISYWANEGO ZACHOWANIA.

Dla klarowności - tabela wygląda następująco (podaję tylko te kolumny, które mają znaczenie w tym przypadku):

Obrazek

Nie mogę:
- zmienić struktury tabeli (wiązałoby się to z refaktoryzacją procesu i zmianą standardu wystawiania dokumentacji klientom)
- zmienić sposobu determinowania "sprawności" (wiązałoby się to z znów z refaktoryzacją procesu i zmianami w całym rejestrze napraw)
- zmienić ustawień arkusza (czyli włączyć wyrażeń regularnych itd.) (ponieważ nie kontroluję tego, gdzie ten dokument jest otwierany, mogą to być różne komputery do których nie mam dostępu)
- zmienić sposobu działania "flagi" (to musi być 0 i 1, i 1 musi oznaczać "gwarancyjne i niesprawne", a to ze względu na kolejną rozbudowaną tabelę i kolejne formuły, które na podstawie tych kolumn H oraz I no i tej "flagi w O generują raport awaryjności danego wyrobu w okresie gwarancyjnym jak i po nim)

Formuła ma sprawdzić, czy np. w komórce K12 znajduje się któryś z ciągu znaków: SPRAWNE, SPRAWNY lub SPRAWNA, jeżeli tak, to wystawić "flagę" 0 w komórce O12; a jeżeli nie to sprawdzić, czy w komórce H12 jest 1 - jeżeli jest, to w O12 wpisać "flagę" 1; jeżeli jest 0, to wystawić "flagę" 0.

Do tej pory moje próby wykoncepowania jakiejś formuły były jak :crazy: .
Formuły, które do tej pory opracowałem i wydaje mi się, że powinny działać, ale tego nie robią (brace yourselves):

=JEŻELI(ZNAJDŹ(WARUNKI("SPRAWNY";0;"SPRAWNA";0);K12);0;1) = wyrzuca #ARG (zresztą, jest niepełna)

=JEŻELI(I(ZNAJDŹ(LUB("SPRAWNY";"SPRAWNA";"SPRAWNE")>0;K13);H13=1);0;1) = jw.

=LICZ.WARUNKI(H14;1;K12;LUB(ZNAJDŹ(T608;K14)>0;ZNAJDŹ(T609;K14)>0;ZNAJDŹ(T610;K14)>0)) = jw. Komórki T60x to stworzone na końcu listy komórki z tekstem kolejno: SPRAWNA, SPRAWNY i SPRAWNE.

=JEŻELI(ZNAJDŹ("SPRAWNY";j15)>0;0;jeżeli(h15=1;1;0)) - najnowsza wersja, też wywala #ARG

Było ich jeszcze dużo więcej ale już je pokasowałem, skoro i tak nie działały. Próbowałem zaadoptować jakoś formuły z wątku: https://forum.openoffice.org/pl/forum/v ... f=9&t=4038, również bez skutku.


Moje finalne pytania brzmią:
Co robię źle, że moje formuły nie działają?
Czy da się to w ogóle tak zrobić bez zmian w czymkolwiek, co już jest (ewentualnie jakie co najmniej zmiany muszą być zrobione, żeby można to było jakoś uzyskać)?
Czy nie ma jakiejś innej, łatwiejszej drogi, której nie dostrzegam?
Jeśli da się to zrobić (w "jednej formule" lub w kilku komórkach "tymczasowych" (to nie jest takim problemem, by dodać jakieś tymczasowe dodatkowe komórki)), to jak taka formuła powinna wyglądać, dlaczego tak i jak działa. Myślałem, że to z grubsza rozumiem, ale okazało się, że czegoś nie wiem.

USTAWIENIA:

Na calc/obliczenia:

zaznaczone: [kryteria wyszukiwania = i <> muszą odnosić się do całych komórek], [brak symboli wieloznacznych lub wyrażeń regularnych w formułach], [automatycznie znajdź etykiety kolumn i wierszy], [ogranicz liczbę miejsc po przecinku liczb w formacie ogólnym (do 2)].
Ostatnio zmieniony pt lip 27, 2018 11:29 am przez miodoso1, łącznie zmieniany 1 raz.
LibreOffice 5.4.5.1, Windows XP SP 3
Awatar użytkownika
Vakarian
Posty: 91
Rejestracja: ndz lip 17, 2016 6:51 pm

Re: Określona wartość, jeżeli komórka H=1, komórka K=tekst

Post autor: Vakarian »

Szybkie rozwiązanie z wykorzystaniem komórki pomocniczej. O ile dobrze zrozumiałem, co chciałbyś osiągnąć, to powinno ono spełnić Twoje oczekiwania. Jeżeli nie, to napisz, co jest nie tak, a postaram się to naprawić.

PS Całość zadziała, jeżeli wyraz SPRAWNY / SPRAWNA / SPRAWNE pojawi się na samym początku komórki OPIS NAPRAWY, a bezpośrednio po nim będzie następował przecinek. Ponadto dla komórek pomocniczych oraz tych z kolumny "GWARANCYJNA", w formacie danych wybierz liczby --> -1235. Gdy ustawiłem Standard, to po każdej zmianie zamiast 0/1 wyświetlało z powrotem PRAWDA/FAŁSZ.

KOMÓRKA "POMOCNICZA" Funkcja SZUKAJ.TEKST sprawdza, czy w komórce znajduje się określony tekst i zwraca liczbę w zależności od tego, w którym miejscu całego tekstu się on znajduje. Jeżeli tekst zostanie znaleziony i zwrócona zostanie jakaś liczba, funkcja CZY.LICZBA zwróci 1, ponieważ sprawdza ona, czy podany warunek jest (lub zwraca) liczbą. Całość zawarta jest w funkcji LUB z trzema warunkami (dla SPRAWNY, SPRAWNA i SPRAWNE).

KOMÓRKA "NIESPRAWNE" Zwykła funkcja JEŻELI zliczająca warunki z komórki pomocniczej oraz komórki "GWARANCYJNA".

PPS Dopiero teraz doczytałem, że masz wyłączone wyrażenia regularne - u mnie czuwają one nad tym, aby wyraz SPRAWNY był brany pod uwagę tylko wtedy, gdy znajduje się na początku zdania w komórce "OPIS NAPRAWY".
Załączniki
Bez tytułu 1.ods
(11.57 KiB) Pobrany 117 razy
LibreOffice 6.0.1, OS Windows 7
miodoso1
Posty: 2
Rejestracja: śr lip 25, 2018 10:08 am

Re: Określona wartość, jeżeli komórka H=1, komórka K=tekst

Post autor: miodoso1 »

Dziękuję Ci bardzo bardzo. Musiałem usunąć z funkcji wyszukiwania tekstu przecinek i "górny daszek" ale działa świetnie.
LibreOffice 5.4.5.1, Windows XP SP 3
Awatar użytkownika
Vakarian
Posty: 91
Rejestracja: ndz lip 17, 2016 6:51 pm

Re: [SOLVED] Określ wartość, jeśli komórka H=1, komórka K=te

Post autor: Vakarian »

"Górny daszek" sprawia, że słowa SPRAWNA / SPRAWNY / SPRAWNE są "zaliczane" tylko wtedy, gdy znajdują się na początku akapitu w sprawdzanej komórce. Niestety, bez użycia wyrażeń regularnych funkcja SZUKAJ.TEKST zwróci liczbę nawet, jeżeli szukane słowo będzie jedynie częścią większej całości. Gdy w przeszukiwanym zdaniu znajdzie się słowo NIESPRAWNY, to funkcja ta i tak wykryje SPRAWNY, ponieważ ten konkretny ciąg znaków znajduje się w zdaniu.
LibreOffice 6.0.1, OS Windows 7
ODPOWIEDZ