Excel - jaka formuła?

Poszukuje formuły która wykona działanie matematyczne (doda/odejmie/pomnoży/itp*) mi liczbę jedności do dziesiątek traktując obie równo. Czyli np. liczba 16 = 1+6 = 7

Ręczne wpisywanie do kolumn cyfr 1 i 6 odpada.

jeżeli Twoja liczba jest w A1 to:

=LEWY(A1;1)+PRAWY(A1;1)

jeśli masz excel w innym języku to trzeba przetłumaczyć :slight_smile:

(kto do licha wymyślił tłumaczenie formuł? :evil: )

dzięki wielkie o to chodziło. temat można zamknąć

A co z przypadkiem, kiedy liczba ma 3 lub więcej cyfr?

:wink:

no to mam następny problem

zauważyłem że ta formula wyświetla błąd przy braku wpisania cyfry lub wpisaniu tekstu w komórkę z której pobierane są dane. chciałem to wyeliminować stosując formuły JEŻELI a dokładniej

JEŻELI(C4>=0;(LEWY(C4;1)+PRAWY(C4;1));Błędny Wpis)

Ta formuła nie działa. Ale jeżeli dam.

JEŻELI(C4>0;(LEWY(C4;1)+PRAWY(C4;1));Błędny Wpis)

To już działa ok. W tym problem że wartość musi być min 0.

A i tak przy okazji co z liczbami składającymi się z min 3 cyfr?? Jak je policzyć?? Zmiana wartości np: (LEWY(C4; 1 ) na (LEWY(C4; 2 ). Nie daje pożądanych efektów. Excel liczy z rozróżnieniem dziesiątek i jedności.

lewy i prawy wycina z podanego łańcucha znaków zadaną ich liczbę. jeśli chcesz wyciać coś ze środka użyj:

=FRAGMENT.TEKSTU(B1;2;1)

a dla pustego zamień to: JEŻELI(C4>=0;(LEWY(C4;1)+PRAWY(C4;1));Błędny Wpis) na to:

=JEŻELI(DŁ(C4)<2;"błędny wpis";(LEWY(C4;1)+PRAWY(C4;1)))

wtedy dla pustej komórki i dla pojedynczego znaku w C4 wyświetla się “błędny wpis”

niestety jak w C4 podasz trzy cyfrową liczbe to wynik oczywiście będzie pierwsza+ostatnia, jeżeli ma działać dla różnej długości liczby to musisz zagnieździć odpowiednią ilość JEŻELI żeby dla każdego przypadku była inna formuła. generalnie głupia sprawa :wink:

Wcale nie głupia sprawa. ciekawa :slight_smile:

np tak: zlicza liczby maksymalnie 5-cio cyfrowe + obsługa błędów. Oczywiście można rozszerzyć do ilu się chce.

=JEŻELI(ORAZ(C4>=0;C4<=99999);FRAGMENT.TEKSTU(C4;DŁ(C4);1)+JEŻELI(DŁ(C4)>1;FRAGMENT.TEKSTU(C4;DŁ(C4)-1;1)+JEŻELI(DŁ(C4)>2;FRAGMENT.TEKSTU(C4;DŁ(C4)-2;1)+JEŻELI(DŁ(C4)>3;FRAGMENT.TEKSTU(C4;DŁ(C4)-3;1)+JEŻELI(DŁ(C4)>4;FRAGMENT.TEKSTU(C4;DŁ(C4)-4;1)))));“błędny wpis”)

pozdr!

Dodane 29.11.2009 (N) 16:43

PS

oczywiście sumowanie można zamienić na każdą inną operację matematyczną w podanej formule :slight_smile:

Ta metoda się przydała

1 formuła w przypadku liczby pojedynczej liczy mi ją dwu krotnie a druga przy liczbie mniejszej od 10 wyświetla błędny wpis chociaż on jest poprawny hmm jak by do formuły

=FRAGMENT.TEKSTU(B1;1;1)+FRAGMENT.TEKSTU(B1;2;1)

dodać zastrzeżenie że jeśli brakuje cyfry to ma pominąć tą cześć formuły to był by cud mód orzeszki

Przy liczbie cyfrze tez wyświetla błąd błędny wpis.

wklej dokładnie całą formułę. działa w zakresie liczb 0-99999.

Dodane 29.11.2009 (N) 22:01

liczb całkowitych.

zmieniłem tylko C4 na B7 i wyświetla błąd “Błędny wpis” a komórka ma cyfrę 4 w sobie

zresztą zobacz

www.test.lokomotywa.cba.pl/priv/cs.xls

komórka E22

Cyfrę którą Excel interpretuje jako tekst.

W komórce B7 wpisana jest przez Ciebie formuła zwraca wynik tekstowy: =FRAGMENT.TEKSTU(B4;2;1). Formuła podana przeze mnie musi na wejściu posiadać dane w formie wartości liczbowej ze względu na warunek logiczny ORAZ(). I bezpośrednio odnosić się do komórki B4.

hmm dobra teraz możesz mi powiedzieć jak to przerobić na inne opcje ??

np. dla 2 cyfr. najlepiej jak najkrótsza formuła żebym mógł się połapać bo teraz się gubię.

akurat se z tym poradzić nie mogę.

ps. cyfry w wersie 4 są wzięte z komórki C3 za pomocą funkcji Fragment Tekstu

Zamień zawartość komórki B4 lub B7 (którą chcesz do dalszych obliczeń) na format liczbowy. Tak zrobiłem po otwarciu pliku z komórką B4, więc u mnie zadziałało (powinienem o tym wspomnieć ale zapomniałem).

W warunku ORAZ() zmniejsz górną granicę do maksymalnej liczby jaką ma rozpoznawać np. 99. Usuń zbędne formuły JEŻELI().

Hej,

Łatwiej wyeliminować to korzystają z formuły CZY.LICZBA() - formuła ta sprawdza, czy w danej komórce mamy do czynienia z liczbą, czy z tekstem. Jeśli to pierwsze, zwraca wartość PRAWDA, jeśli nie - FAŁSZ. Można więc łatwo zrobić zabezpieczenie w stylu: = JEŻELI(CZY.LICZBA(A1)=PRAWDA;“BŁĄD”;jakaś tam formuła).

Niestety, tekstów nie da się porównywać z wartościami liczbowymi - i żaden program tego nie potrafi. Dlatego lepiej stosować formułę sprawdzającą, czy dana komórka to liczba czy tekst.

Bardzo proste :slight_smile:

JEŻELI(FRAGMENT.TEKSTU(B1;1;1)="";0;FRAGMENT.TEKSTU(B1;1;1))+JEŻELI(FRAGMENT.TEKSTU(B1;2;1)="";0;FRAGMENT.TEKSTU(B1;2;1))

Wartości liczbowe są w komórce B1. Przy dodawaniu i odejmowaniu, gdy brak danej liczby - a funkcja FRAGMENT.TEKSTU w takich przypadkach zwraca puste pole - puste pole zamieniamy na 0 (i tak jest tutaj), a w mnożeniu i dodawaniu na 1, przez co formuła wygląda tak:

JEŻELI(FRAGMENT.TEKSTU(B1;1;1)="";1;FRAGMENT.TEKSTU(B1;1;1))+JEŻELI(FRAGMENT.TEKSTU(B1;2;1)="";1;FRAGMENT.TEKSTU(B1;2;1))

.

Można też inaczej, jeśli zmiana na wartości liczbowa nie działa. Do formuły z komórki można dodać jakąkolwiek funkcję liczbową i to spowoduje, że liczby wzięte - jakby nie było za pomocą funkcji tekstowej - będą prezentowane jako liczby. Dla przykładu formułę z komórki B4 - FRAGMENT.TEKSTU($C$3;1;2), zamieniasz na LICZBA.CAŁK(FRAGMENT.TEKSTU($C$3;1;2)) - od razu widać, że będzie to liczba, gdyż domyślnie wyrównuje się ona do prawej, w przeciwieństwie do tekstów, które wyrównują się do lewej. :slight_smile:

Pozdrawiam,

Dimatheus