Strona Główna Fahrenheit 451
rozmowy o książkach, muzyce, filmie i... wszystkim innym

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy
RejestracjaRejestracja  ZalogujZaloguj  AlbumAlbum  Chat

Poprzedni temat «» Następny temat
Excel - prośba o pomoc przy napisaniu formuły
Autor Wiadomość
Meotka 
Bajarz


Pomogła: 3 razy
Wiek: 37
Dołączyła: 07 Sty 2009
Posty: 1657
Wysłany: 2012-08-28, 19:02   Excel - prośba o pomoc przy napisaniu formuły

mam problem i póki co nie wiem jak sobie z nim poradzić:
w dwóch kolumnach znajdują się wartości:

1000 1000
1000 1234
1000 0500
0000 0000
0000 1000

w każdym wierszu wartość z kolumny drugiej ma być podzielona przez wartość z kolumny pierwszej i dać odpowiednio wyniki:
0%
23,4%
50%
0%
"tekst"
nie mam problemu z pierwszymi trzema sytuacjami, ale przy zagnieżdżaniu ostatniego warunku przy wykorzystaniu "czy.błąd" się rozchrzania i formuła nie odczytuje, że przy dzieleniu przez 0 ma pokazać wartość a nie "#DZIEL/0!"
formułę, którą napisałam wrzuciłam w spoilerze żeby nie narzucać sposobu :)
:
=JEŻELI(B7/A7=1;0%;JEŻELI(B7>A7;-(100%-B7/A7);JEŻELI(B7<A7;B7/A7;"tekst")))


byłabym wdzięczna za pomoc jeszcze w dniu dzisiejszym

a i jeszcze jedno pytanie - czy dobrze przyjęłam, że jeśli była wartość 1000 a teraz jest wartość 1234 to wzrost jest o 23,4% czy też powinien być wykazany wzrost o 123,4%?
_________________
 
 
ene 
Znikopis
eee.. ne!


Pomogła: 16 razy
Dołączyła: 24 Sty 2007
Posty: 6512
Wysłany: 2012-08-28, 20:06   

chyba nie kojarze co wlasciwie chcesz osiagnac bo jak pamietam z matmy to np. 1000/1000 = 1 a nie 0% które chcesz uzyskac ;)

a dzielic przez zero sie nie da :)

moze dopisz warunek jezeli A=0 to text..
_________________
...
 
 
 
Meotka 
Bajarz


Pomogła: 3 razy
Wiek: 37
Dołączyła: 07 Sty 2009
Posty: 1657
Wysłany: 2012-08-28, 20:31   

tak ale ... zakładając, że pierwsza kolumna to stan w miesiącu A a druga to stan w miesiącu B (gdzie miesiąc b następuje po miesiącu A) to nie nastąpił ani wzrost ani spadek (utrzymało się status quo) czyli nastąpiła zmiana o 0% ;)

Cytat:
moze dopisz warunek jezeli A=0 to text..
no właśnie nie bardzo bo B może być równe lub różne od 0 i wtedy mają się pojawiać inne wartości w kolumnie C
_________________
 
 
greg1212 
Krótkopis


Pomógł: 4 razy
Dołączył: 10 Sie 2006
Posty: 108
Wysłany: 2012-08-28, 20:35   

Meotka napisał/a:
a i jeszcze jedno pytanie - czy dobrze przyjęłam, że jeśli była wartość 1000 a teraz jest wartość 1234 to wzrost jest o 23,4% czy też powinien być wykazany wzrost o 123,4%?


Właściwym terminem jest przyrost a nie wzrost (wzrosty są na giełdzie). Przyrost wynosi 23,4%.

Ja użyłem polecenia
=JEŻELI.BŁĄD(B10/A10=1;"0 %")
=JEŻELI.BŁĄD(B11/A11=1;"tekst")


Edit:
Nie ma potrzeby aby "=1"

=JEŻELI.BŁĄD(B10/A10;"0 %")
=JEŻELI.BŁĄD(B11/A11;"tekst")
Ostatnio zmieniony przez greg1212 2012-08-28, 21:20, w całości zmieniany 1 raz  
 
 
Meotka 
Bajarz


Pomogła: 3 razy
Wiek: 37
Dołączyła: 07 Sty 2009
Posty: 1657
Wysłany: 2012-08-28, 20:40   

faktycznie użyłam złego słowa, dzięki za sprostowanie

co do formuł, które wrzuciłeś to są super jeśli mogę dla każdego wiersza wpisać inną formułę, a ja potrzebuję wrzucić to w jedną formułę, żeby nie analizować jakiej użyć formuły (obróbka ok. 20k rekordów)
ps. jakiego masz excela, bo ja w 2003 nie mam formuły jeżeli.błąd :( ?
_________________
 
 
ene 
Znikopis
eee.. ne!


Pomogła: 16 razy
Dołączyła: 24 Sty 2007
Posty: 6512
Wysłany: 2012-08-28, 20:54   

Meo ja juz niewiele z excela pamietam ale kojarzę ze warunki mogą być łączone poprzez or lub and...
_________________
...
 
 
 
greg1212 
Krótkopis


Pomógł: 4 razy
Dołączył: 10 Sie 2006
Posty: 108
Wysłany: 2012-08-28, 20:55   

Mam exela 2007. Zapewne figuruje ta formuła pod inna nazwą.
 
 
Dora 
Znikopis


Pomogła: 7 razy
Wiek: 25
Dołączyła: 14 Sie 2007
Posty: 5405
Skąd: Katowice
Wysłany: 2012-08-28, 20:59   

Jest taka funkcja jak jeżeli.błąd, =jeżeli.błąd(B7/A7;"tekst"), wtedy gdy wartość dzielenia będzie poprawna - wywali wynik, a jeżeli błędna, to pokaże tekst.

Ale najprościej chyba będzie:
:
=JEŻELI(A1=0;"tekst";JEŻELI(B1/A1=1;0%;-(100%-B1/A1)))

Tylko wtedy znowu problem jest z 0/0, gdzie wywala "tekst"... no ale nie wiem jak to przeskoczyć :bezsilny: no i dostaję -50% :think:


EDIT:

Chyba mnie wyprzedziło sporo postów, za długo kombinowałam... nevermind :P
_________________
:dora:
 
 
Meotka 
Bajarz


Pomogła: 3 razy
Wiek: 37
Dołączyła: 07 Sty 2009
Posty: 1657
Wysłany: 2012-08-28, 21:05   

Dorotka, ta formuła, którą podałaś jest ok (nie było jej wcześniej)... albo coś wymyślę z tym - albo jutro zrobię dym o zmianę układu tabeli ;)

hmm tylko nadal się zastanawiam jaka formuła z ex2003 wymieniona została na jeżeli.błąd z ex2007, chyba to będzie czy.błąd

----------------
edi
finalnie formuła będzie wyglądać tak:
Kod:
=JEŻELI(A1=0;JEŻELI(B1=0;0;"tekst");MODUŁ.LICZBY(B1/A1-1))
_________________
 
 
greg1212 
Krótkopis


Pomógł: 4 razy
Dołączył: 10 Sie 2006
Posty: 108
Wysłany: 2012-08-28, 21:18   

Sprawdziłem w necie...

Funcja czy.blad informuje wyłącznie o tym, że występuje błąd (np. dzielenie przez zero) ale zwraca wyłącznie wartość logiczną (PRAWDA/FAŁSZ)

Funkcja jezeli.błąd (wartość, wartość_gdy_błąd) zwraca wartość wyniku gdy jest to wykonalne (jak w pierwszym wierszu) lub wyświetla "wartość_gdy_błąd" gdy operacja jest niewykonalna.

http://mac2.microsoft.com...62-118ead28f365
 
 
Meotka 
Bajarz


Pomogła: 3 razy
Wiek: 37
Dołączyła: 07 Sty 2009
Posty: 1657
Wysłany: 2012-11-01, 09:00   

mam ponownie problem, z którym nie umiem sobie poradzić :(

jest plik, w którym znajduje się od groma wierszy (często powyżej 40k) o takiej mniej więcej treści

unikalny numer pracownika|kod nieobecności|data początku nieobecności|data końca nieobecności
przykład (dane w pliku można dowolnie posortować):
1234|CC|01.04.2012|17.04.2012
1234|CC|18.04.2012|03.05.2012
1234|CC|05.05.2012|29.05.2012
1234|CS|30.05.2012|30.06.2012
1234|CC|01.07.2012|20.07.2012
1234|UM|21.07.2012|20.01.2013
5678|C|07.07.2012|10.07.2012
5678|CS|11.07.2012|19.07.2012
5678|C|20.07.2012|15.08.2012
5678|C|10.10.2012|30.10.2012
9876|C|09.09.2012|20.09.2012
9876|CS|24.09.2012|23.10.2012
9876|C|24.10.2012|27.10.2012

z wpisów powyżej interesuje mnie następujący wynik:
1234|CS/CC/UM|01.04.2012|20.01.2013|295
5678|C|10.10.2012|30.10.2012|21
9876|CS/C|24.09.2012|27.10.2012|34

czyli najpierw należy znaleźć wszystkie rekordy dla unikalnego numeru pracownika, wyszukać najświeższy wpis daty końca nieobecności, potem wyszukiwać poprzednią nieobecność i jeżeli:
- pomiędzy początkiem badanej nieobecności a końcem poprzedzającej jej jest przerwa większa niż 3 dni (czyli początek ostatniej nieobecności to 24.09 a koniec poprzedzającej jej wypada na 20) to można zakończyć poszukiwanie i zapisać nowy rekord z datami ostatniej nieobecności czyli jak w 2 i 3 przykładzie,
- pomiędzy początkiem badanej nieobecności a końcem poprzedzającej jej jest przerwa mniejsza lub równa 3 to data końca nieobecności pozostaje taka sama, natomiast jako nowa data początku nieobecności wskakuje ta z poprzedniego rekordu i następuje ponowne sprawdzenie kolejnej poprzedzającej nieobecności - tak jak w przykładzie 1
- w drugiej kolumnie mają zostać wstawione kody nieobecności, które zawierają się w nowych przedziałach czasowych, z czego każdy kod powinien pojawić się tylko raz od ostatniej nieobecności w kolejności chronologicznej malejącej, jeśli było np. CS/C/CC/C/CS/C/CS to powinno wynikowo być CC/C/CS; kody nieobecności mogą mieć więcej znaków niż w przykładzie, najmniej jednak to 1 znak ;)
- w ostatniej kolumnie znajduje się wyliczenie ilości dni jakie upłynęły od końca "nowej" nieobecności do jej początku
- każdy "|" to znak wskazujący nową kolumnę ;)
- byłoby cudownie jeśli wartość dni pomiędzy początkiem nowej a końcem starej nieobecności była łatwo modyfikowalna przez użytkownika (te 3 dni, które opisałam w pierwszym i drugim podpunkcie)

jeśli komuś chciałoby się mi pomóc to w zamian za działające np. makro proponuję flaszkę własnoręcznie wykonanej cytrynówki :D
_________________
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Link do Shoutbox

Powered by phpBB modified by Przemo © 2003 phpBB Group