• 10 odgovora
  • 7.413 pregleda
[Excel] Sabiranje iz tekstualnog izraza 10.03.2007. u 16:03 · pre 238 meseci #1
Nerviram se jer ne mogu da u nekoj ćeliji npr. A1 gde piše 34+32 da to saberem u ćeliji npr. A2...
Zna li neko kako to da rešim?!
Gledao sam teme po forumu i video sam temu sa fudbalskim rezultatima, pa sam pokušao sa left(a1;find(a1;"+")+right(a1), ali nisam uspo...
Može li pomoć?!
Re: [Excel] Sabiranje iz tekstualnog izraza 10.03.2007. u 17:28 · pre 238 meseci #2
Kad kreiraš komplikovanije formule bolje da ih radiš deo po deo, pre nego što formiraš kompletnu i konačnu formulu.

Npr. deo tvoje formule find(a1;"+") prijavljuje grešku, a FIND("+";A1) daje 3 - to je pozicija na kojoj se u nizu znakova "34+32" nalazi znak +. Zbog toga će LEFT(a1;find("+";a1)) isto što i LEFT(A1,3) i daje tekst "34+" umesto samo 34!
Drugi deo formule mi nije jasan jer RIGHT(A1) će uvek vratiti samo jedan poslednji karakter. U navedenom primeru tvoj broj je dvocifren?
Ako su brojevi uvek dvocifreni (ili jednocifreni zameni 2 sa 1) onda ti find i ne treba nego:
Code:
=LEFT(A1;2)+RIGHT(A1;2)

Ako to nije slučaj formuli moraš dodati find:
Code:
=LEFT(A1;FIND("+";A1)-1)+RIGHT(A1;LEN(A1)-FIND("+";A1))

Potpis
Nije to loše Rembrante, samo što ne bi dodao još malo boje?
Re: [Excel] Sabiranje iz tekstualnog izraza 11.03.2007. u 09:35 · pre 238 meseci #3
E a kada bi bile tri cifre, stavio(J)o sam za srednji član ovako:
Code:
MID(E2;LEN(E2)-FIND("+";E2);LEN(E2)-LEN(RIGHT(E2;LEN(E2)-FIND("+";E2)+1))))

i to fino radi, ako su svi brojevi dvocifreni ili ako su svi brojevi jednocifreni, a ako se desi da je prvi dvocifren, a taj srednji jednocifren, imam grešku jer povuče i znak plus za sabiranje... Može li to kako da se ispravi..?
Re: [Excel] Sabiranje iz tekstualnog izraza 11.03.2007. u 13:41 · pre 238 meseci #4
Možda ovako

MID(E2;LEN(E2)-FIND("+";E2)-1;LEN(E2)-LEN(RIGHT(E2;LEN(E2)-FIND("+";E2)+1)))

mada se meni čini da ti tu nešto nepotrebno komplikuješ.
Možeš li da zakačiš fajl sa primerom?
Potpis
Možda je tačno da je sve već rečeno, samo nisu svi sve čuli i razumeli ...
Re: [Excel] Sabiranje iz tekstualnog izraza 11.03.2007. u 22:57 · pre 238 meseci #6
Ovo COUNTA("+";E2) ne može da se koristi tako kako ti pukušavaš (ili bar ne onako kako ja mislim da ti pokušavaš), koliko je meni poznato ne postoji excel funkcija koja prebrojava koliko se puta neki znak ponavlja u jednoj ćeliji jer to bi ti rešilo problem.
Jer u tvom slučaju je problem ima li u celiji ima dva ili tri sabirka, ako su uvek 3 sabirka (bez razlike da li je neki od njih dvocifren ili jednocifren) onda mislim da to moze da se reši 'kobasičastom' formulom (a bilo bi mnogo jednostavnije upotrebom pomoćnih kolona).
Potpis
Možda je tačno da je sve već rečeno, samo nisu svi sve čuli i razumeli ...
Re: [Excel] Sabiranje iz tekstualnog izraza 12.03.2007. u 08:06 · pre 238 meseci #7
Problem se može rešiti uz dosta truda korišćenjem ćelija u kojima bi računao pomoćne vrednosti (prvo pojavljivanje znaka +, drugo pojavljivanje znaka + itd), pa na osnovu toga "isecao" parče po parče teksta i pravio formulu.
Druga varijanta je da napišeš korisničku funkciju koja će to da odradi:
Code:

Function Calculate(cl As Range) As Double
  Dim s1 As Single, s2   As Single
  Dim sum As Double
  s1 = 1
  Calculate = 0
  Do While True
     s2 = InStr(s1, cl.Text, "+", vbTextCompare) ' trazi znak + unutar teksta celije
     If s2 > 0 Then
        Calculate = Calculate + Val(Mid(cl.Text, s1, s2 - s1))
        s1 = s2 + 1
     Else
        Calculate = Calculate + Val(Right(cl.Text, Len(cl.Text) - s1 + 1))
        Exit Do
     End If
  Loop
End Function


Ustvari i sam koristim neku takvu radnu tabelu sa evidenciju i ocenjivanje ali je svaki domaci (seminarski) pišem u posebnu kolonu. To je mnogo lakše, a ako ti treba za štampu lako je da spojiš u tekstualni string 33+34+...
Potpis
Nije to loše Rembrante, samo što ne bi dodao još malo boje?
Re: [Excel] Sabiranje iz tekstualnog izraza 17.05.2012. u 05:40 · pre 175 meseci #8
cesto imam slucaj da u jednoj celiji moram da ispisem nacin kako je nesto racunato npr, A1 1*((3*2+2)*2+(4*2+1,8)*2
a drugoj da zaista to izracunam npr.B1 =1*((3*2+2)*2+(4*2+1,8)*2, da li je moguce da se vrednost iz A1 poveze sa B1 tako da izmene koje pravim u A1 automatski prebacuju u B1, jer to sada radim peske, ako u B1 stavim =A1 on ne prepoznaje da treba da uradi racunske operacije nego uradi ispis iz pozicije A1, kao da je rec od tekstu.
Potpis
ignjat.web1000.com
Re: [Excel] Sabiranje iz tekstualnog izraza 17.05.2012. u 06:39 · pre 175 meseci #9
Imao sam slican problem, kada sam hteo da napravim jednostavan calkulator i izguglao ovo resenje. Potrebno je malo programiranja u VBA, kada otvoris Excel stisnes Alt+F11 videces Module Funkcija i u njemu kod, a prethodno je potrebno da aktiviras referencu na Tools=>References=>Microsoft Scripting Control 1.0, ako je nemas skini je sa sledeceg linka

http://www.microsoft.com/en-us/download/details.aspx?id=1949

u jednoj celiji upisujes izraz a u drugoj pises funkciju =Racunaj(celija u kojoj ti je izraz)
Potpis
[email protected]=
Re: [Excel] Sabiranje iz tekstualnog izraza 17.05.2012. u 07:04 · pre 175 meseci #10
U VBA već postoji funkcija Evaluate tako da je suvišno ovo referenciranje.
Code:

Private Function Sracunaj(Izraz As String) As Double
    Sracunaj = Application.Evaluate(Izraz)
End Function
Potpis
Have you found helpful examples, solutions or ideas-in-work, please consider the
following:
• Citation of *actual page* you are going to using is welcome.
• Have you saw "Value Added" examples you are going to incorporate to your
profitable blog, daily job or any money making venture: How about online donation?
↗Ana & Vlade Divac Foundation
Hvala!
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme