Dodaj do ulubionych

Funkcja exelowa

02.05.14, 23:29
w jednym rzędzie są porozrzucane komórki "r", funkcja poszukiwana znajduje się na końcu rozrzuconych "r". Zliczane są ostatnie komórki bez "r". Czyli od prawej strony ile komórek poprzedza występującą "r". Np:

- to komórka bez "r"
r to komórka z "r"
b miejsce formuły

- - - - r r - - - r - - - r r r r - - - - r r r - - r - - - - - - - - - - - b
funkcja w powyższym wskazywałaby 11 komórek bez "r"

- - - - r r - - - r - - - r r r r - - - - r r r - - r r r r r - - - - - - - b
przy uzupełnieniu kilku komórek, b to 7 komórek

prosiłbym o poradę jak skonstruować owa funkcje.
Obserwuj wątek
    • pursat Re: Funkcja exelowa 03.05.14, 00:21
      np.
      =LICZBA.KOLUMN(A1:O1)-ILE.NIEPUSTYCH(A1:O1)
    • pursat Re: Funkcja exelowa 03.05.14, 00:29
      Albo jeśli te kreseczki (czy inne znaki) występują:
      =ILE.NIEPUSTYCH(A1:O1)-LICZ.JEŻELI(A1:O1;"r")
      • koro.mal Re: Funkcja exelowa 03.05.14, 02:34
        Więc może zamiast "-" "a"
        Czyli jeśli jest cztery komórki z "r", trzy komórki z "a", dwie komórki z "r", trzy komórki z "a", siedem komórek z "r" i osiemnaście z "a", 4r,3a,2r,3a,7r,18a
        Funkcja odrzuca w wyniku komórki z prawej a czyli 18 komórek z "a" i wybiórczo podaje ilość następnych komórek "r" czyli 7, bez innych tj. 2 i 4 "r" uwzględnienia komórek.
        • wariant_b Re: Funkcja exelowa 03.05.14, 12:11
          Chyba nie jest dobrze - funkcje wyszukiwania w Excelu na nieposortowanych danych
          mogą dawać błędne wyniki, a rozbijanie tego na pojedyncze warunki doprowadzi
          do tasiemcowych konstrukcji - nieporęcznych i trudnych do zweryfikowania.

          Ale źle też nie jest - własną funkcją w VBA łatwo znajdziemy potrzebną wartość.
          Wydaje się, że to będzie dużo łatwiejsze, niż kombinacje z funkcjami wbudowanymi.

          Alternatywnie możemy utworzyć dodatkowe ukryte obszary robocze i wypełnić je
          wygodniejszymi danymi np. numerami kolumn, jeśli jest w nich "r", a zerem, jeśli nie.
          Wtedy na przykład proste MAX() da nam numer ostatniej kolumny z "r".
        • pursat Re: Funkcja exelowa 03.05.14, 15:32
          Przedtem źle zrozumiałem zadanie. Sorki :-)
          Chyba już wiem o co chodzi. Ale bez VBA ciężko będzie to ugryźć.
          Ściągnij to:
          drive.google.com/file/d/0B0svgCUN9zx9MzBndXluMlFhWlk/edit?usp=sharing
          Działa tak jak chcesz. Wystarczy dostosować do własnego arkusza.
          Funkcje działają w trzech krokach (możesz sobie je połączyć w jednej komórce):
          1. Zamiana -r--r---rr--
          • wariant_b Re: Funkcja exelowa 03.05.14, 17:18
            Bardzo ładne podejście - zamiast walczyć z funkcjami w Excelu dopasować formę danych.
            Troszkę zbędny jest VBA, bo teksty można od razu połączyć w innej kolejności.

            Ale ponieważ autor trochę podniósł poprzeczkę i ostatnio sugerował, że trzeba będzie
            sprawdzić liczebność ostatniej grupy "r" w wierszu, to może spróbujemy tak:
            Function Liczr(Obszar As Range)
            Application.Volatile
            
            Dim i As Integer
            Dim k As Integer
            Dim Maxr As Integer
            
            Liczr = 0
            Maxr = 0
            k = Obszar.Columns.Count
            
            For i = 1 To k
                If Obszar.Cells(1, i).Value = "r" Then
                    Maxr = i
                End If
            Next
            
            If Maxr <> 0 Then
                For i = 1 To Maxr
                    If Obszar.Cells(1, i).Value = "r" Then
                        Liczr = Liczr + 1
                    Else
                        Liczr = 0
                    End If
                Next
            Else
                Liczr = 0
            End If
            
            • pursat Re: Funkcja exelowa 03.05.14, 20:06
              "Troszkę zbędny jest VBA, bo teksty można od razu połączyć w innej kolejności."

              Faktycznie. Robota głupiego :-)
              • koro.mal Re: Funkcja exelowa 03.05.14, 23:47
                Rzetelne usprawnienie, multum podziękowań.

Nie masz jeszcze konta? Zarejestruj się


Nakarm Pajacyka