30.01.16, 12:07
Dla fachowca pikuś, dla mnie problem. Jaka formuła do zamiany np. 2b na IIb. Będę wdzięczny za konkretną odpowidź. Z góry dziękuję.
Obserwuj wątek
    • wariant_b Re: Excel 30.01.16, 17:01
      =ZŁĄCZ.TEKSTY(RZYMSKIE(WARTOŚĆ(LEWY(A1;1));0);PRAWY(A1;1))
      zakładając, że w A jest zawsze zapis w postaci <cyfra><litera> np. numer klasy szkolnej.

      Jeśli liczba może być dwu- lub więcej cyfrowa, to formuła będzie nieco dłuższa:
      =ZŁĄCZ.TEKSTY(RZYMSKIE(WARTOŚĆ(LEWY(A1;DŁ(A1)-1));0);PRAWY(A1;1))
        • wariant_b Re: Excel 30.01.16, 18:11
          Funkcja RZYMSKIE() nie działa, bo zawartość "2b" jest tekstem, a funkcja dotyczy liczb.
          Dlatego musimy wyodrębnić część liczbową za pomocą funkcji LEWY(), ale dalej mamy tekst "2",
          który sopiero funkcją WARTOŚĆ() zamieniamy na liczbę 2. Teraz można już użyć RZYMSKIE().
          Otrzymamy tekst "II" do którego trzeba dodać funkcją PRAWY() zgubioną wcześniej literkę "a"
          i połączyć to przez ZŁĄCZ.TEKSTY().

          Konwersje liczbowo-tekstowe w Excelu to jeszcze pryszcz w porównaniu z operacjami na czasie.
            • mariner4 Re: Excel 31.01.16, 10:12
              Możne też zdefiniować funkcję w VBA. Dowolnie ją nazwać i ona będzie w funkcjach użytkownika. Wtedy nie trzeba pisać formuły, tylko ją przywołać.
              M.
              • wariant_b Re: Excel 31.01.16, 13:29
                Można, ale nie warto.

                VBA nie ma odpowiednika funkcji RZYMSKIE(), a zarówno jej samodzielne napisanie w basicu
                jak i wykorzystanie istniejącej funkcji Excela są bardziej skomplikowanym zadaniem, niż
                złożenie dość skomplikowanej formułki. Zresztą zamiast składać złożoną formułę, można
                użyć dodatkowych pól roboczych (kolumn) z prostymi formułami i ukryć je w arkuszu.
                A1: 2b | tekst wprowadzony "2b"
                A2: =LEWY(A1;1) | tekst "2"
                A3: =WARTOŚĆ(A2) | liczba 2
                A4: =RZYMSKIE(A3;0) | tekst "II"
                A5: =PRAWY(A1;1) | tekst "b"
                A6: =ZŁĄCZ.TEKSTY(A4;A5) | tekst wynikowy "IIb"

                Jeśli decydujemy się na programowanie, lepiej już skorzystać z Accessa zamiast Excela.

Popularne wątki

Nie pamiętasz hasła

lub ?

 

Nie masz jeszcze konta? Zarejestruj się

Nakarm Pajacyka