konto usunięte

Temat: Odnajdywanie znaku i suma licznika wystąpień

Witam,

w swoich badaniach do pracy magisterskiej przy jednym z pytań respondenci mogą wpisywać numery 3 cech, które ich zdaniem są najbardziej adekwatne dla danej marki.
Cechy zostały ponumerowane od 1-15, co więcej można utworzyć ich przeciwieństwo dodając literę A przy numerze, np 1A, 2A etc.
Do badań wykorzystywałem serwis internetowy, który eksportuje te dane w ciągu.
Problem pojawia się przy próbie ich zliczenia. Chcę sprawdzić ile razy wystąpiła każda cecha.
Jednak przy zliczaniu "1" excel uwzględnia też 10, 11, 12 etc.
Zauważyłem też, że każdą komórkę liczy tylko raz, tzn jeśli napotka w niej 11, to liczy ją jako wystąpienie 1 i przechodzi do kolejnej komórki, nawet, jeśli w tej komórce występują jeszcze 10 i 1. Gdyby zliczał wszystkie wystąpienia cyfry w każdej komórce, wtedy możnaby korygować licznik odejmując wystąpienia 11, 10 etc.

Liczenie ręczne raczej nie wchodzi w grę z uwagi na ilość danych (dla wielu marek)
Macie pomysł jak rozwiązać ten problem?

Link do pliku z cechami dla jednej marki: http://wyslijplik.pl/download.php?sid=iHtBL7vm

konto usunięte

Temat: Odnajdywanie znaku i suma licznika wystąpień

Witam,
generalnie masz mały bałagan z separatorem pomiędzy danymi, czasem brak separatora, czasem jest przecinek, tam gdzie go być raczej nie powinno, czasem separatorem jest sam przecinek, czasem przecinek ze spacją, itp. Po unormowaniu separatora być powinno dać się napisać odpowiednie makro zliczające automatycznie, pozdrawiam.Darek J. edytował(a) ten post dnia 03.05.12 o godzinie 13:42

konto usunięte

Temat: Odnajdywanie znaku i suma licznika wystąpień

To jest niestety problem z tym, że każdy respondent wpisywał dane inaczej.

Sprawdziłem jednak na jednej marce i przepisałem wszystko ze spacjami jako separatorami. Excel zliczał to dokładnie tak samo jak w przypadku takiego niejednorodnego sposobu oddzielania danych.

konto usunięte

Temat: Odnajdywanie znaku i suma licznika wystąpień

Nie wiem czy chce Ci się pisać makro do tego (zleży ile tych pytań miałeś), w każdym razie można to zrobić "ręcznie", ale musiałbyś zestandaryzować separator (np. Ctrl+F i 'Replace' - wystarczy pozamieniać kilka ciągów znaków na jeden, który najbardziej będzie Ci odpowiadał). Następnie rozdzielić dane 'Text to Columns' i zliczyć COUNTIF'em, zaznaczając szerszy zakres danych i szukać już konkretnej wartości, a nie "*1*".

Excel zlicza w ten właśnie sposób, gdyż szuka komórek, w których znajduje się podana przez Ciebie wartość, a nie samej wartości (zlicza komórki, a nie wartości).

Jaki masz układ danych? Kolejne pytania to kolejne kolumny/arkusze/pliki?

konto usunięte

Temat: Odnajdywanie znaku i suma licznika wystąpień

W takim razie po unormowaniu separatora na spację wystarczy makro typu:

Sub Zlicz()
Dim x, tbl, i&, j&

tbl = Range("B4:B115")
Rows("133:134").Delete
Range("B118:B147").ClearContents

For i = LBound(tbl) To UBound(tbl)
x = Split(tbl(i, 1), " ")
For j = LBound(x) To UBound(x)
If Right(x(j), 1) = "A" Or Right(x(j), 1) = "a" Then
x(j) = Replace(Replace(x(j), "A", ""), "a", "")
Cells(132 + x(j), 2).Value = Cells(132 + x(j), 2).Value + 1
Else
Cells(117 + x(j), 2).Value = Cells(117 + x(j), 2).Value + 1
End If
Next j
Next i
End Sub

Pozdrawiam.Darek J. edytował(a) ten post dnia 03.05.12 o godzinie 15:15

konto usunięte

Temat: Odnajdywanie znaku i suma licznika wystąpień

@Paweł, kolejne pytania są w następnych kolumnach

konto usunięte

Temat: Odnajdywanie znaku i suma licznika wystąpień

Dzięki za pomoc Panowie ;)

konto usunięte

Temat: Odnajdywanie znaku i suma licznika wystąpień

@Darek: być może głupie pytanie - czemu deklarujesz zmienną sterującą pętlą jako i&, j&? Co daje znak '&' przy deklaracji?
Mariusz Jankowski

Mariusz Jankowski Programista
Excel/VBA

Temat: Odnajdywanie znaku i suma licznika wystąpień

Mateusz, to przestarzała konwencja deklarowania typów zmiennych.

Piszą o niej w punkcie 4
http://www.fmsinc.com/tpapers/vbacode/

Darek - koniecznie przeczytaj! :-)

konto usunięte

Temat: Odnajdywanie znaku i suma licznika wystąpień

Mariusz: generalnie jestem przyzwyczajony, więc raczej to tak zostanie :)

Mateusz: deklaruję tak z co najmniej dwóch powodów, a jeden z nich wynika z tego, że jest to dość wygodne, tym bardziej że typ Long jest u mnie najczęściej deklarowany :)Darek J. edytował(a) ten post dnia 07.05.12 o godzinie 21:48



Wyślij zaproszenie do