Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 2
  • 1.0K

Czy istnieje w Accessie funkcja, która wyznaczy najczęściej występującą wartość, a jeżeli nie ma, to jak to można zrobić nie korzystając z Excela?

Przykład: Mam w tabeli pola: produkt, lokalizacja, cena. Klucz podstawowy jest połączeniem pól: produkt i lokalizacja. Chciałbym, aby dla każdego produktu Access wyznaczył mi najczęściej występującą cenę spośród kilkudziesięciu lokalizacji, a w przypadku, gdyby cena była inna dla każdej lokalizacji, Access powinien wyliczyć średnią.

Wiem jak to zrobić w Excelu, natomiast w Accessie mam z tym problem. W Excelu korzystam z przykładowej formuły (oczywiście najpierw przygotowuję tabelę przestawną):

komórka A6 =JEŻELI(CZY.BŁĄD(WYST.NAJCZĘŚCIEJ.WART($C6:$AT6));ŚREDNIA($C6:$AT6);WYST.NAJCZĘŚCIEJ.WART($C6:$AT6))


W kolumnie B mam produkty, a dalej ceny wg lokalizacji.

Przemo
  • Zapytał
  • @ Przemo | 03.04.2014
    • laureat
    • 59
    • 24
    • 71

Odpowiedź (1)

  • 12

Witam.

Gotowej funkcji nie ma, ale jest to możliwe o wykonania (rozwiązanie poniżej).

Zacznę również od tego, że przygotowana przez pana funkcja w Excelu:

"=JEŻELI(CZY.BŁĄD(WYST.NAJCZĘŚCIEJ.WART($C6:$AT6));ŚREDNIA($C6:$AT6);WYST.NAJCZĘŚCIEJ.WART($C6:$AT6))"

Nie działa prawidłowo (jej wynik nie jest zgodny z sytuacją którą Pan opisał), gdyż funkcja WYST.NAJCZĘŚCIEJ.WART(). Jeżeli najczęściej występująca wartość pojawia się równie często co druga najczęściej występująca wartość, funkcja WYST.NAJCZĘŚCIEJ.WART90 pokaże w wyniku tylko pierwszą napotkaną (jeżeli cena 10 zł i 20 zł występuje po 3 razy i jest to największa ilość wystąpień, funkcja WYST.NAJCZĘŚCIEJ.WART() pokaże tylko jedną z tych wartości).

Założenia do rozwiązania Pana pytania:

 

Rozwiązanie:

Pierwszym krokiem jest utworzenie kwerendy, która wyliczy ilość wystąpień cen dla każdego produktu:


i jej wynik:

 


Następnie użyjemy tej kwerendy, aby stworzyć następną, która wyszuka tylko te produkty, dla których jest przynajmniej jedna cena, która wystąpiła więcej niż raz:


i jej wynik na którym proszę zwrócić uwagę na dwukrotne wystąpienie Produktu C ze względu na to, że najwcześniej niewystękująca 1 i 2 wartość występują tyle samo razy:


Druga część to policzenie średniej dla produktów, dla których żadna cena nie występuje więcej niż raz:


I jej wynik:

 

Pozostaje już tylko połączenie danych z tych dwóch kwerend za pomocą kwerendy UNION:


i jej wynik:


I jeżeli nie chce Pan pokazywać na liście wielokrotnie tego samego produktu z tą samą liczbą występującej ceny, to proponuję jeszcze zrobić z tego średnią:

 

I efekt końcowy:

 

W załączniku plik z rozwiązaniem.

Tematy takie i pokrewne można znaleźć na szkoleniu AC03 i AC04, zapraszam.

Pozdrawiam.
Tomasz Grabowski.

Załączniki

  • zip

    Liczba_wyst.zip ( 42K )
  • Odpowiedział
  • @ | 03.04.2014
  • TRENER MODERATOR ALTKOM AKADEMII
Komentarze
Well done. Chapeau.
Super mi Pan pomógł. Wielkie dzięki.
Skomentował : @ Przemo ,03.04.2014
  • 59
  • 24
  • 71