Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Tworzenie nowych formuł w Excelu

czata 26 Jun 2012 18:56 2712 14
  • #1
    czata
    Level 9  
    Witam wszystkich.

    Czy ktoś byłby w stanie podesłać mi gotowy plik w Excelu z następującymi funkcjami:
    - ile komórek z czcionką w kolorze złotym (według modelu kolorów RGB: czerwony 255, zielony 215);
    - ile komórek z czcionką w kolorze srebrnym (według modelu kolorów RGB: czerwony 192, zielony 192, niebieski 192);
    - ile komórek z czcionką w kolorze brązowym (według modelu kolorów RGB: czerwony 150, zielony 75);
    - ile komórek z czcionką pogrubioną;
    - ile komórek z tłem w kolorze niebieskim;
    - ile komórek z tłem w kolorze innym, niż niebieski.

    Pozdrawiam, Czata
  • #3
    czata
    Level 9  
    Być może użyłem złego słowa i powinienem napisać "z następującymi formułami".

    Tworzę bazę danych w Excelu i potrzebowałbym formuł, które mógłby zliczać komórki z pogrubieniami i kolorami.
  • #4
    adamas_nt
    Moderator of Programming
    czata wrote:
    Czy ktoś byłby w stanie podesłać mi gotowy plik w Excelu z następującymi funkcjami
    Przeszukałem swoje pliki i... niestety nie mam gotowego pliku, który spełniałby określone wyżej warunki. Mam tylko: khaki, zieleń wiosenną i błękit morski ;). Proponuję więc, abyś spróbował samodzielnie.

    Na początek nagraj sobie makro zmiany koloru czcionki, następnie w edytorze VB naciśnij [F1], wpisz "rgb", i kliknij "wyszukaj". Będziesz już prawie w domu... Na temat wszelkiej maści pętli napisano już sporo na tym forum. Wystarczy skorzystać z wyszukiwarki.
  • #5
    czata
    Level 9  
    Jakbym umiał zrobić to, o czym piszesz, to nie składałbym tak precyzyjnej prośby.

    Próbowałem, ale nie dałem sam rady.
  • #6
    adamas_nt
    Moderator of Programming
    czata wrote:
    Jakbym umiał zrobić to...
    Nie uważasz, że poczułbyś się lepiej, gdybyś się nauczył? A nuż kiedyś się przyda.

    Hasło "Excel rejestrowanie makra" w Google, to 66000 wyników.

    I uwaga: "excel rgb kolor czcionki", >320000.

    Pokaż owoc swoich prób, a z pewnością ktoś Cię pokieruje. Od tego jest to forum...
  • #7
    czata
    Level 9  
    Próbujesz mnie uczyć tego, co już umiem.

    Co mam wpisać w edytorze VB?
  • #8
    pitermxa
    Level 18  
    Masz tutaj kod do funkcji (bo chyba chodziło Ci o funkcję, nie formułę),
    która zlicza komórki czerwone:
    Resztę sobie przerób w ramach rozwoju w tematyce VBA:)

    
    Function licz_czerw(zakres As Range)
    Dim kom As Range
    Dim licznik As Single
    For Each kom In zakres
    If kom.Font.Color = RGB(255, 0, 0) Then
    licznik = licznik + 1
    End If
    Next kom
    licz_czerw = licznik
    End Function
    
  • Helpful post
    #9
    marek003
    Level 40  
    Ponieważ pisałem że nie pomagam na PW więc tu zamieszczam przykład który jeszcze dostosuj do siebie.

    W środku jest kod przedstawiony przez kolegę pitemxa dla jeszcze dwóch kolorów.
    Podobnie dla tła

    Jak wiesz już jaki jest "kod grubej czcionki to zapewne sobie poradzisz w przekształceniu kodu.

    Jak nie wiesz to nagraj makro i popatrz na nagrany kod.
    "wyłuskaj" z niego interesującą cię zmienna i wprowadź do swojej funkcji.

    Ale osobiście odradzam budowanie bazy danych z różnymi kolorami. To jest nieefektywne. Poza tym zauważ że po zmianie koloru funkcje sie nie przeliczają same trzeba jeszcze raz wejść w taką komórkę i nacisnąć enter.
    Trzeba wymuszać przeliczanie (było juz na forum i funkcja i gdzie to umieścić).

    Więc jeżeli to ma być "poważna" baza danych zastosował bym inny "znacznik" danych niż kolor.

    (Plik robiony w 2010 przekonwertowany na 2003 ale myślę że powinien działać.)
  • #10
    czata
    Level 9  
    Wielkie dzięki, działa!!!

    Miałem drobny problem z wrzuceniem wszystkich formuł do jednego pliku, ale udało się.

    marek003 wrote:

    Więc jeżeli to ma być "poważna" baza danych zastosował bym inny "znacznik" danych niż kolor.

    Baza nie jest poważna, bo dotyczy jedynie hobby. Z drugiej strony, jest poważna, bo jest mocno rozbudowana.

    marek003 wrote:

    Ale osobiście odradzam budowanie bazy danych z różnymi kolorami. To jest nieefektywne. Poza tym zauważ że po zmianie koloru funkcje sie nie przeliczają same trzeba jeszcze raz wejść w taką komórkę i nacisnąć enter.
    Trzeba wymuszać przeliczanie (było juz na forum i funkcja i gdzie to umieścić).

    Zdecydowałem się na użycie koloru z dwóch zasadniczych powodów:
    1. Da się założyć filtr z kolorem.
    2. Nie miałem innego pomysłu.

    Na razie, w komórce są zawarte cztery informacje:
    1. Tekst.
    2. Ew. pogrubiona czcionka.
    3. Ew. kolorowa czcionka.
    4. Ew. kolorowe tło.

    Kiełkuje mi pomysł, żeby do jednej komórki wprowadzić więcej, niż jedną informację tekstową. Ale do tego potrzebowałbym nowej formuły. Zamiast standardowego ILE.NIEPUSTYCH nową: ile_niepustych_komórek_zawierających_literę_M.

    Da się to zrobić w Virtual Basic?
  • #11
    Tommy82
    Level 41  
    Da się
    Robisz sobie funkcje która przyjmuje jako parametr zakres komórek.
    Sprawdzasz w pętli jak w przykładzie wyżej czy czy niepusta i czy występuje w komórce litera M. W zasadzie starczy sprawdzić czy występuje litera M bo jak występuje to znaczy ze jest nie pusata a inne niepuste Cie nie interesują.

    http://www.e-programme.info/index.php?show=kurs,wyrazenia_lancuchowe

    A dalej to już z górki liczysz wystąpienia litery m w komórce i zwracasz.
    Prosta przeróbka przykładu który już masz.
  • #12
    czata
    Level 9  
    Powoli.

    Tommy82 wrote:
    A dalej to już z górki liczysz wystąpienia litery m w komórce i zwracasz.

    Nie interesuje mnie ilość wystąpień litery m w komórce, więc powinno być jeszcze prościej.

    Który przykład masz na myśli? Kolegi pitermxa?
    Jeśli tak, to ta funkcja powinna wyglądać tak:

    Function ile_niepustych_z_M(zakres As Range)
    Dim kom As Range
    Dim licznik As Single
    For Each kom In zakres
    If kom.
    licznik = licznik + 1
    End If
    Next kom
    ile_niepustych_z_M = licznik
    End Function

    Tylko, co wpisać w wierszu If kom.?
  • #13
    Tommy82
    Level 41  
    Najpierw musisz się dobrać do zawartości która jest w komórce

    http://www.cpearson.com/excel/values.htm

    Potem masz w linku który podałem wyżej funkcje
    InStr która zwraca Ci pozycje substringu w danym springu
    Ciebie nie interesuje pozycja tylko sam fakt zaistnienia m w przyadku niezaistnienia masz 0 w innym coś innego
  • #14
    czata
    Level 9  
    Niestety, nie poradziłem sobie. Przeceniłeś moje umiejętności.

    Wielkie dzięki za pomoc!!!!

    Mam kolejny problem. Tym razem w Excelu 2010.

    Mój Excel traktuje pustą komórkę, jako komórkę o wartości 0. A chciałbym, żeby traktował ją jako faktycznie pustą.

    Czy da się tak ustawić?
  • #15
    lajon
    Level 10  
    Chodzi mi o stworzenie formuły
    Jeśli wiersz zawiera tekst np."Nazwa" usuń wiersz.
    nie mam pojęcia o tworzeniu formuł ani makr, wiem, że może to pomóc w życiu i teraz jest ta chwila.
    Mam do odrzucenia dużo danych w tabeli.
    Kilkaset stron, robię to ręcznie.