Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Excel, VBA - Zliczanie tablicowe

baryla992 12 Lut 2016 12:36 822 12
  • #1 12 Lut 2016 12:36
    baryla992
    Poziom 9  

    Witam,
    Zamierzam przeprowadzić analizę asocjacyjna w Excel, do tego celu potrzebuje napisać procedurę w VBA, która umożliwi mi zliczenie ile razy wartości z komórek AI1 i AJ1 wystąpią jednocześnie w poszczególnych wierszach tablicy (A1:AD10) i wyświetli mi wynik w komórce AK1. Następnie pobierze kolejne wartości tj AI2 i AJ2 i również zliczy liczbę wystąpień w poszczególnych wierszach tablicy (A1:AD10) i wyświetli mi wynik w komórce AK2 itd do momentu kiedy wartości AI i AJ zostaną wyczerpane.
    Danych będę miał znacznie więcej dlatego formula licz.jezeli nie wystarczy. Przeglądałem już podobne tematy na forum ale nie znalazłem odpowiedzi na mój problem. Bardzo proszę o pomoc i z góry dziękuje. W załączniku znajdują się przykładowe dane.

    Pozdrawiam

    0 12
  • #2 12 Lut 2016 16:10
    Flesz
    Poziom 20  

    Proszę uściślić
    - wartości z komórek AI1 i AJ1 mają występować parami, czy może makro ma liczyć wystąpienie którejkolwiek z tych wartości ?
    - zakładam że w AK1 maja się znaleźć wyniki z zakresu A1:AD10, nie tylko z pierwszego wiersza?

    0
  • #3 12 Lut 2016 16:36
    Maciej Gonet
    Poziom 32  

    Nie wiem, czy dobrze zrozumiałem, bo opis niezbyt jasny. Chodzi o znalezienie liczby wierszy w tabeli, takich że w każdym z nich co najmniej raz występuje element z kolumny AI i równocześnie element z kolumny AJ. Ja to tak zrozumiałem. Rozwiązanie (z wykorzystaniem tabeli danych) w kolumnie AL, bo w AK musiałem umieścić indeksy. Teoretycznie można by się było obyć bez tej kolumny, ale wtedy sposób rozwiązania byłby mniej czytelny.

    0
  • #4 12 Lut 2016 16:36
    baryla992
    Poziom 9  

    Komórki AI1 i AJ1 maja występować parami. Natomiast w komórkach AK mają znajdować sie wyniki ile razy dana para wystąpi w zakresie A1:AD10

    0
  • #5 12 Lut 2016 16:41
    Maciej Gonet
    Poziom 32  

    Wciąż to jest nieprecyzyjne. Ile razy dana para wystąpi w zakresie A1:AD10 - to znaczy w całym zakresie traktowanym jako całość, czy w poszczególnych wierszach zakresu?

    0
  • #6 12 Lut 2016 17:10
    baryla992
    Poziom 9  

    Chodzi o to aby program sprawdził czy dana para występuje w poszczególnych wierszach całego zakresu. A następnie wyświetlił ile jest takich wierszy, które zawierają jednocześnie np wartość P1_K oraz P2_1

    0
  • #7 12 Lut 2016 17:13
    Maciej Gonet
    Poziom 32  

    No to chyba tak to zrozumiałem. Obejrzałeś mój arkusz? Takich wyników oczekiwałeś?

    0
  • #8 12 Lut 2016 18:45
    baryla992
    Poziom 9  

    Takich wyników oczekiwałem, jednak uzyskanych za pomoca vba.

    0
  • #10 13 Lut 2016 20:03
    baryla992
    Poziom 9  

    Właśnie o to mi chodziło :) Dziekuję bardzo za pomoc. Mam jeszcze jedno pytanie, czy jest możliwość wywoływania tej funkcji w module, a nie tak jak jest to teraz w arkuszu?

    0
  • #11 13 Lut 2016 20:45
    Flesz
    Poziom 20  

    funkcja jest umieszczona w module, ale jest funkcją, więc można ją wywołać również z arkusza.
    Jeżeli kolega ma pojęcia o VBA - może zrobić pętlę po wierszach kolumny AI w której będzie z kolei wywołanie mojej funkcji. Jeżeli kolega sobie z tym nie poradzi - tak jak napisałem wcześniej - mogę to zrobić w wolnej chwili.
    Kod funkcji można podejrzeć w edytorze VisualBasic (w nowszych wersjach excella dostęp przez kartę developer - która domyślnie jest ukryta)

    0
  • #12 15 Lut 2016 08:44
    baryla992
    Poziom 9  

    Niestety nie jestem Asem z VBA :( A zależałoby mi na trochę większej automatyzacji danej funkcji ponieważ przy duzej ilości danych Excel dość długo liczy. Jeżeli mógłbyś mi pomóc, bardzo by mi to ułatwiło dalsze działania.

    0