Jak ujarzmić Excela w analizie danych

20 views
Skip to first unread message

Profesorek

unread,
Mar 1, 2010, 9:20:34 AM3/1/10
to excel...@googlegroups.com
Witam serdecznie.
Właśnie dzisiaj dołączyłem do grona Listowiczów i wygląda na to, że... już mam problem!
Żeby wyjaśnić, o co chodzi w moim pytaniu, muszę dokładnie zobrazować sytuację i wspomóc się przykładem.
Przypuśćmy, że dokonuję w arkuszu programu Excel analizy poszczególnych osób i ich osiągnięć w najrozmaitszych konkursach, chcąc wykazać, ile osób zdobyło główną nagrodę, ile zajęło drugie, trzecie miejsce itd. Każda komórka z danymi posiada tekst, którego rozmiary są naprawdę zróżnicowane. W tekście znajduje się m. in. sekwencja: "[...] zajął/zajęła główną nagrodę [...]", która jest jednak umieszczona w rozmaitych miejscach tego tekstu i zgodnie z regułami odnośnie funkcji obliczania, wpisana jest w każdej komórce tylko raz. Jednakże mimo wszystko, przy analizie za pomocą funkcji "Licz.jeżeli.", chcąc obliczyć, ile głównych nagród zajęła analizowana przeze mnie grupa konkursowiczów, otrzymuję nieprawdziwy wynik. Przypuśćmy, że w komórkach od A1 do A20 znajduje się grupka osób z najrozmaitszymi wyróżnieniami, gdzie 14 osób, co zresztą widać z tekstów, zajęło główne nagrody. Aby obliczyć to, użyłem w komórce B1 następującej formuły:
=licz.jeżeli($A$1:$A$20;"*główną nagrodę*"). Wynik, pomimo naocznego obrazu, wychodzi 12, nie 14. Przyczyną jest prawdopodobnie fakt, iż w dwóch przypadkach sekwencja o głównej nagrodzie znajduje się pod koniec dość długiego tekstu i wygląda na to, że Excel nie objął tej zawartości w analizie. Próbowałem wszystkiego: zmniejszania czcionki, dopasowywania wysokości wierszy i szerokości kolumn, zawijania wierszy, scalania komórek, wszystkiego, co związane jest z formatowaniem. Tekst był widoczny w całości, sprawdziłem wszystkie komórki pod względem pisowni i ewentualnych przekłamań znakowych, ale w obliczeniu nic to nie pomogło! Gdzie w takim razie jest problem? Czyżby zbyt duża ilość znaków w komórce? Czy może jeszcze coś innego? Czy jest metoda, by temu zaradzić? Chciałbym uniknąć sytuacji, w której musiałbym rozbijać większy tekst na więcej komórek niż jedna. Obawiam się jednak, że nie będzie innego wyjścia.
Pozdrawiam serdecznie wszystkich.
Jarek.

Cendrowski, Mariusz

unread,
Mar 1, 2010, 9:25:12 AM3/1/10
to excel...@googlegroups.com

Cześć.

 

Nie wiem jakiej wersji  Excela używasz ale sprawdziłem w Excelu 2007, że pomimo wpisania ponad tysiąca znaków formuła dalej działała.

Proponuję poeksperymentować

Upewnij się czy nie ma jakiejś literówki, a może jest po prostu podwójna spacja lub znak nowej linijki.

Usuń część tekstu i zobacz czy formuła zacznie zliczać prawidłowo itp.

A jak długi jest ten tekst? ( możesz sprawdzić formułą DŁ(tekst)).

 

Pozdrawiam

 

MC

 

 

 

Mariusz Cendrowski
Financial Analyst

 

QuadWinkowski
A Quad/Graphics Company

 

Wyszków, Poland

 

+48.22.33.67.194 phone
+48.782.998.371 cell

 

Mariusz.C...@quadwinkowski.pl
www.quadwinkowski.pl

Quad/Winkowski Sp. z o. o. z siedzibą w Pile, ul. Okrzei 5, 64-920 Piła, Sąd Rejonowy w Poznaniu- Nowe Miasto i Wilda w Poznaniu, IX Wydział Gospodarczy Nr KRS 0000029585, NIP: 764-20-85-674, Kapitał zakładowy: 143.656.000,00 PLN

--
Otrzymujesz tę wiadomość, ponieważ subskrybujesz grupę dyskusyjną Google o nazwie „excelandia”.
Aby zamieszczać posty w tej grupie, wyślij e-mail na adres excel...@googlegroups.com.
Aby anulować subskrypcję tej grupy, wyślij e-mail na adres excelandia+...@googlegroups.com.
Aby uzyskać więcej informacji, odwiedź tę grupę pod adresem http://groups.google.com/group/excelandia?hl=pl.

Cynio

unread,
Mar 1, 2010, 9:49:50 AM3/1/10
to excelandia

On 1 Mar, 15:25, "Cendrowski, Mariusz"


<Mariusz.Cendrow...@quadwinkowski.pl> wrote:
> Cześć.
>
> Nie wiem jakiej wersji  Excela używasz ale sprawdziłem w Excelu 2007, że pomimo wpisania ponad tysiąca znaków formuła dalej działała.

hmm sprawdziłem w Excel 2003, testowałem literę "p" i jeśli litera "p"
była jako 255-ty znak formuła działała, jeśli była od 256 znaku w górę
to formuła zwracała wynik 0, testowałem formułę Licz.jeżeli("*p*";A1).
Stąd według mnie profesorek ma Excela 2003 , generalnie tego
ograniczenia nie ma VBA wiec za pomocą VBA mozesz zliczyć komórki w
któych występuję dany znak
ponizej krótka procedurka którą testowałem (szuka znaku p w komórce
"a1") mozesz łatwo przerobic na funkcje użytkowniak, jak będziesz miał
z tym kłopot daj znać

Sub zlicz()
Dim komorka As String
komorka = ActiveCell
suma = 0
For i = 1 To Len(komorka)
znak = Mid(komorka, i, 1)
If znak = "p" Then suma = suma + 1
Next i
MsgBox suma
End Sub

--
Pozdr.
Cynio

Profesorek

unread,
Mar 1, 2010, 9:57:28 AM3/1/10
to excel...@googlegroups.com
Witaj Mariusz.
 
> Nie wiem jakiej wersji  Excela używasz ale sprawdziłem w Excelu 2007, że pomimo wpisania ponad tysiąca znaków formuła dalej działała.
 
To też by mogło wiele wyjaśniać, osobiście używam 2000.

 

> Proponuję poeksperymentować

Upewnij się czy nie ma jakiejś literówki, a może jest po prostu podwójna spacja lub znak nowej linijki.

Usuń część tekstu i zobacz czy formuła zacznie zliczać prawidłowo itp.

A jak długi jest ten tekst? ( możesz sprawdzić formułą DŁ(tekst)).

 

Zgadza się, wszystko to robiłem co sugerujesz. Podwójnych spacji nie było, ani znaków nowych wierszy, spacje zresztą nie miałyby większego znaczenia, skoro w formule wprowadzone były gwiazdki. Użyłem również formuły długości tekstu, o której pisałeś, ale żeby ustalić, gdzie jest ta granica długości tekstu, od której zaczyna już być on ignorowany, tego nie udało mi się jeszcze ustalić. Próbowałem edytować komórki tak, żeby fragment o głównej nagrodzie znajdował się u początku i wtedy wszystko było prawidłowo zliczone, natomiast wówczas w podobny sposób ginęły inne fragmenty. Ale wydaje mi się zasadna Twoja sugestia odnośnie wersji.

Pozdrawiam.

Cynio

unread,
Mar 1, 2010, 9:52:48 AM3/1/10
to excelandia

On 1 Mar, 15:49, Cynio <cynicz...@gmail.com> wrote:

> ponizej krótka procedurka którą testowałem (szuka znaku p w komórce
> "a1") mozesz łatwo przerobic na funkcje użytkowniak, jak będziesz miał
> z tym kłopot daj znać
>
> Sub zlicz()
> Dim komorka As String
> komorka = ActiveCell
> suma = 0
>     For i = 1 To Len(komorka)
>         znak = Mid(komorka, i, 1)
>         If znak = "p" Then suma = suma + 1
>     Next i
>     MsgBox suma
> End Sub

a ponieważ zrobiłem to ponizej funckja która zlicza ilośc wystąpien p
w komórce którą podasz w funckji

Function zlicz(komorka)


suma = 0
For i = 1 To Len(komorka)
znak = Mid(komorka, i, 1)

If znak = "p" Then zlicz = zlicz + 1
Next i
End Function

--
Pozdr.
Cynio

Wojciech Kluczewski

unread,
Mar 1, 2010, 9:54:55 AM3/1/10
to excel...@googlegroups.com
Witam,

Możesz sprawdzić co Ci zwróci funkcja szukaj.tekst.
szczegóły:

pozdrawiam


Wojciech Kluczewski
GG: 5008584
Skype: wojciechk82


Profesorek

unread,
Mar 1, 2010, 10:02:29 AM3/1/10
to excel...@googlegroups.com
Cynio napisaďż˝

hmm sprawdzi�em w Excel 2003, testowa�em liter� "p" i je�li litera "p"
by�a jako 255-ty znak formu�a dzia�a�a, je�li by�a od 256 znaku w g�r�
to formu�a zwraca�a wynik 0, testowa�em formu�� Licz.je�eli("*p*";A1).
St�d wed�ug mnie profesorek ma Excela 2003 ,[...]

Mam 2000. Zapami�tam to 255. :))) Dzi�ki wielkie, jak b�d� mia� mo�no��,
spr�buj� VBA.
Pozdrawiam.

Profesorek

unread,
Mar 1, 2010, 10:04:08 AM3/1/10
to excel...@googlegroups.com
Dzięki za sugestię Wojciechu.
Pozdrawiam.

Lelos

unread,
Mar 2, 2010, 4:29:26 AM3/2/10
to excelandia

Wejdź do komórki z funkcją licz.jeżeli, postaw kursor za ostatnim
znakiem, następnie trzymając Ctrl i Shift wciśnij ENTER - funkcja
powinna liczyć.

Profesorek

unread,
Mar 2, 2010, 6:23:20 AM3/2/10
to excel...@googlegroups.com
Lelos napisaďż˝:

Wejd� do kom�rki z funkcj� licz.je�eli, postaw kursor za ostatnim
znakiem, nast�pnie trzymaj�c Ctrl i Shift wci�nij ENTER - funkcja
powinna liczyďż˝.

Ooo, a to coďż˝ nowego...
Nieomieszkam sprawdziďż˝.
Dzi�ki i pozdrawiam.

Pawel Tarnowski

unread,
Mar 1, 2010, 9:43:27 AM3/1/10
to excel...@googlegroups.com
            Tak, to kwestia tego, że Excel pobiera do funkcji licz.jeżeli jedynie pierwsze 256 znaków z komórki (sprawdzałem na excelu 2003). To trochę prowizoryczne, ale proponuję abyś użył funkcji prawy(odwołanie, 256) i przeszukiwał taki zakres. Pokombinuję jeszcze nad lepszym rozwiązaniem.
 
Paweł Tarnowski
Dział Controllingu i Analiz
(22) 355 22 50
 
 
BAKALLAND SA
ul. Fabryczna 5
00-446 Warszawa
 
Nr KRS:  0000253890 Sąd Rejonowy dla m. st. Warszawy
XIV Wydział Gospodarczy KRS
NIP: 521-15-01-724
Kapitał zakładowy: 2 100 000, 00 zł
 


From: excel...@googlegroups.com [mailto:excel...@googlegroups.com] On Behalf Of Profesorek
Sent: Monday, March 01, 2010 3:21 PM
To: excel...@googlegroups.com
Subject: Jak ujarzmić Excela w analizie danych

__________ Informacja programu ESET NOD32 Antivirus, wersja bazy sygnatur wirusow 4904 (20100301) __________

Wiadomosc zostala sprawdzona przez program ESET NOD32 Antivirus.
http://www.eset.pl lub http://www.eset.com

--
Otrzymujesz tę wiadomość, ponieważ subskrybujesz grupę dyskusyjną Google o nazwie „excelandia”.
Aby zamieszczać posty w tej grupie, wyślij e-mail na adres excel...@googlegroups.com.
Aby anulować subskrypcję tej grupy, wyślij e-mail na adres excelandia+...@googlegroups.com.
Aby uzyskać więcej informacji, odwiedź tę grupę pod adresem http://groups.google.com/group/excelandia?hl=pl.


__________ Informacja programu ESET NOD32 Antivirus, wersja bazy sygnatur wirusow 4904 (20100301) __________


Wiadomosc zostala sprawdzona przez program ESET NOD32 Antivirus.

http://www.eset.pl lub http://www.eset.com



__________ Informacja programu ESET NOD32 Antivirus, wersja bazy sygnatur wirusow 4904 (20100301) __________

Wiadomosc zostala sprawdzona przez program ESET NOD32 Antivirus.
http://www.eset.pl lub http://www.eset.com

Pawel Tarnowski

unread,
Mar 2, 2010, 3:37:13 AM3/2/10
to excel...@googlegroups.com
__________ Informacja programu ESET NOD32 Antivirus, wersja bazy sygnatur wirusow 4905 (20100301) __________


Wiadomosc zostala sprawdzona przez program ESET NOD32 Antivirus.
http://www.eset.pl lub http://www.eset.com


__________ Informacja programu ESET NOD32 Antivirus, wersja bazy sygnatur wirusow 4907 (20100302) __________


Wiadomosc zostala sprawdzona przez program ESET NOD32 Antivirus.
http://www.eset.pl lub http://www.eset.com


__________ Informacja programu ESET NOD32 Antivirus, wersja bazy sygnatur wirusow 4907 (20100302) __________
Reply all
Reply to author
Forward
0 new messages