Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

vba excel - warunek dla konkretnych wartości w kolumnie

asia.p 10 Dec 2013 22:21 2625 18
  • #1
    asia.p
    Level 8  
    Moje dane są mniej więcej takiej postaci (uproszczony schemat). Chodzi mi o to, że dla danej osoby w kolumnie "czy admin?" muszą być zawsze te same wartości, czyli muszę w jakiś sposób wyłapać błędy (tutaj w przypadku Ani w 3 wierszu "nie") i je zaznaczyć. Jestem w stanie znaleźć i wypisać unikaty z kolumny "Osoba" oraz zliczyć ile razy dana osoba występuje, ale nie mogę poradzić sobie z pętlą wykonującą dla danej osoby sprawdzenie czy w kolumnie "czy admin" jest to samo i zaznaczenie, jeśli nie (myślałam o ustawieniu pierwszej komórki jako takiej, do której będę resztę porównywać za pomocą przesunięcia, ale gubię się w ustawieniu zakresu dla danej osoby...). Będę wdzięczna za podpowiedzi.

    Osoba Czy admin?
    Ania tak
    Ania tak
    Ania nie
    Jola tak
    Jola tak
    Wojtek nie
    Wojtek nie
    Wojtek nie
    Wojtek nie
    Wojtek nie
    [28-30.06.2022, targi] PowerUP EXPO 2022 - zasilanie w elektronice. Zarejestruj się za darmo
  • #2
    adamas_nt
    Moderator of Programming
    Nie do końca rozumiem :(
    Po mojemu wystarczy porównać (jeśli dane od 2-go wiersza) Licz.jeżeli(A:A;A2) z suma.iloczynów((A:A)=A2)*(B:B=B2)) i jeśli jest różnica...
  • #3
    asia.p
    Level 8  
    ok, ale jak wyłapię ten błąd? bo może być tak, że będę miała 30 razy "tak" i 2 razy "nie" dla osoby, która występuję 32 razy. Jak zaznaczę te nieprawidłowe?
  • #4
    marcinj12
    Level 40  
    Możesz zrobić tabelę przestawną (w układzie klasycznym) - w wiersze wrzucić osobę i czy_admin, ukryć sumy. Tabela pogrupuje po osobach i czy_admin - wtedy nawet optycznie łatwo wyłapiesz, czy jakaś osoba ma dwie różne wartości.
  • #5
    asia.p
    Level 8  
    To nie załatwia sprawy, to jest tylko przykład danych, mam ich kilkanaście tysięcy i nie dotyczą nawet tego, o czym tu piszę tylko inny rzeczy, wartości w drugiej kolumnie nie muszą być tylko dwie, ale może być ich znacznie więcej, dodatkowo są jeszcze inne kolumny, które muszę sprawdzić w ten sam sposób tzn dany użytkownik musi mieć zawsze w kolumnie B tę samą wartość, w kolumnie C tę samą, D tę samą itd... Optyczne sprawdzanie odpada...
  • #6
    adamas_nt
    Moderator of Programming
    Czyli co? Mamy przedstawić 12652 wersji rozwiązania? Prosimy o jakiś bardziej zbliżony do oryginału przykład, najlepiej plik w załączniku ;)
  • #7
    marcinj12
    Level 40  
    Nic nie stoi na przeszkodzie użyć tego sposobu również dla większej ilości kolumn - robisz nich tabelę przestawną, tabela grupuje wartości. Tam gdzie wartości się róznią - nastąpi rozdział na dwa lub więcej wierszy, przy czym pole-klucz będzie puste, wystarczy je potem wyfiltrować. Ilość wierszy nie ma znaczenia.
    vba excel - warunek dla konkretnych wartości w kolumnie
  • #8
    cbrman
    Level 27  
    asia.p wrote:
    ok, ale jak wyłapię ten błąd? bo może być tak, że będę miała 30 razy "tak" i 2 razy "nie" dla osoby, która występuję 32 razy. Jak zaznaczę te nieprawidłowe?


    A na jakiej zasadzie zamierzasz określać, który rekord jest błędny?
  • #9
    asia.p
    Level 8  
    Osoba Czy może x? Czy może y? Czy może z?
    Ania 1 0 1
    Ania 1 0 1
    Ania 1 0 1
    Ania 1 0 1
    Ania 0 0 1
    Ania 1 1 1
    Jacek 0 1 1
    Jacek 0 1 1
    Jacek 0 1 0
    Jacek 0 1 0
    Jacek 0 1 1
    Jacek 1 1 1
    Jacek 1 1 1
    Jacek 0 1 1
    Ela 0 0 0
    Ela 0 0 0
    Ela 0 0 0
    Ela 1 1 0

    Tak mniej więcej wyglądają dane. Chodzi o to, że dana osoba w kolumnie "czy może x?" musi mieć tę samą wartość, "czy może y?" tę samą, "czy może z?" tę samą, a jeśli jest jakaś różnica, to muszę ją zaznaczyć, tak jak pogrubienia w kolumnie "czy może x?"
  • #10
    markoz7874
    Level 31  
    Sortujesz bazę wg. osoba, admin. i wstawiasz formułę
    Code:
    =JEŻELI(ORAZ(A2=A1;B1<>B2);"Źle";"")
  • #11
    adamas_nt
    Moderator of Programming
    Że tak nieśmiało zapytam: a jak jest po równo?
  • #12
    asia.p
    Level 8  
    Nie jest po równo, błędów jest mniej zawsze np. dla danej osoby mam 200 zer i 4 jedynki i po tym poznaję, że jedynki są złe
  • #13
    markoz7874
    Level 31  
    asia.p wrote:


    Tak mniej więcej wyglądają dane. Chodzi o to, że dana osoba w kolumnie "czy może x?" musi mieć tę samą wartość, "czy może y?" tę samą, "czy może z?" tę samą, a jeśli jest jakaś różnica, to muszę ją zaznaczyć, tak jak pogrubienia w kolumnie "czy może x?"

    OK, ale w Twoim przykładzie dla pozycji Ania są trzy różne wartości
    Osoba Czy może x? Czy może y? Czy może z?
    Ania 1 0 1
    Ania 0 0 1
    Ania 1 1 1

    więc która z tych trzech jest dobra?
  • #14
    asia.p
    Level 8  
    Nie, chodzi o to, że Ania w kolumnie "czy może x?" ma 5 jedynek i 1 zero, a musi mieć zawsze te same wartości w tej kolumnie, czyli zero jest złe, w kolumnie "czy może y?" ma 5 zer i 1 jedynkę, więc jedynka jest zła, a w kolumnie "czy może z?" ma same jedynki, więc wszystko jest ok
  • #15
    adamas_nt
    Moderator of Programming
    markoz7874 wrote:
    więc która z tych trzech jest dobra?
    Nie wiem :D ale zaznaczyć trzeba, jeśli się nie mylę, tak:
    Ania 1 0 1
    Ania 0 0 1
    Ania 1 1 1

    Jeśli chcesz zaznaczać przez pogrubienie, a informacja w postaci jaką zapodał kolega marcinj12 jest niewystarczająca, to pozostaje pętla For licząca zera i jedynki (WorksheetFunction.CounIf) i zaznaczanie tego, czego jest mniej...

    Formatowanie warunkowe? Ile imion tyle reguł razy ilość kolumn... nie widzę jakoś.
  • #16
    markoz7874
    Level 31  
    asia.p wrote:
    .. w kolumnie "czy może y?" ma 5 zer i 1 jedynkę, więc jedynka jest zła..

    OK ale w Twoim przykładzie nie zaznaczyłaś tej jedynki jako złą?
    Czy nie powinno to wyglądać tak?
    Ania 1 0 1
    Ania 1 0 1
    Ania 1 0 1
    Ania 1 0 1
    Ania 0 0 1
    Ania 1 1 1
  • #17
    asia.p
    Level 8  
    tak, powinno, napisałam, że zaznaczam złe tylko dla kolumny "czy może x?" (jako przykład, żeby wskazać o co chodzi)
  • Helpful post
    #18
    adamas_nt
    Moderator of Programming
    I cisza się zrobiła...
    No dobra, wypiłem kawę i wyszło mi coś takiego:

    Edit: A makro w innym pliku. Jednak późno już... Załącznik podmieniłem
  • #19
    markoz7874
    Level 31  
    Wydaje mi się, że podobny efekt można osiągnąć stosując formuły tablicowe. Ale skoro problem rozwiązany za pomocą VB...