Nie jestem pewien, jak nazwać to pytanie.
Mam skomplikowane wyzwanie, które nie jestem pewien, jak podejść w Excelu.
Mam kolumnę z długimi łańcuchami o zmiennej długości, przykład
c68d7a51-5cef-4a5c-b417-b2751fe9754b
c68d7a51-5cef-4a5c-b417-b2751fe9754b-0
c68d7a51-5cef-4a5c-b417-b2751fe9754b-1
09573f-1780c84f-e5ff-85821a-6236e0399d
09573f-1780c84f-e5ff-85821a-6236e0399d-10
09573f-1780c84f-e5ff-85821a-6236e0399d-123
Gdzie dla tych, które kończą się znakiem „- ***”, muszę mieć nową kolumnę, która zwraca ciąg znaków bez tego zakończenia PRAWEGO podłańcucha, w przeciwnym razie null. Końcowy podciąg ma od 1 do 3 znaków długo po znaku „-”. Muszę również zauważyć na podstawie komentarzy, że nie mogę pracować od lewej, ponieważ ciągi zmieniają długość i położenie „-”. Jedyną stałą jest to, że niektóre z tych ciągów znaków mają wartości potomne od 1 do 3 cyfr po ostatnim „-”.
To, co do tej pory mam na zarys, wygląda tak
=IF(RIGHT(A1,4) contains "-", RIGHT(A1, LEN(A1) - number_of_chars_to_remove), else null.
Jeśli nie masz nic przeciwko, jak mam to osiągnąć?
Doceniam twoją pomoc, dziękuję!
źródło
-
a następnie-
chcesz usunąć?Odpowiedzi:
Użyj tego:
Najpierw sprawdza, czy jest
-
w ostatnich czterech, jeśli tak, to znajduje to ostatnie-
i zmienia je na}}}
. Następnie znajduje to i czyni koniec równania LEWEGO.źródło
Wydaje mi się, na podstawie twoich przykładowych danych, że możesz policzyć ciąg i jeśli ma on 5 myślników, zwróć pierwsze 38 znaków, w przeciwnym razie zwróć NULL. To byłoby o wiele prostsze. 38 ma znaczenie, ponieważ ma długość ciągu aż do piątej kreski.
źródło