» »

[excel] premik celice < > formula!

[excel] premik celice < > formula!

Godness ::

Žiujo!
Mam eno vprašanje oz. težavo.

Primer:
Imamo 2 številčna podatka v A1 in B1 ter poljubno formulo v C1, ki se sklicuje na A1 in A2. Če bi sedaj prijeli A1 in A2 in ju prestavili v A2 in B2 bi formula v C1 sledla izvornim podatkom in bi se sedaj sklicala na nova polja A2 in B2.

Moj problem je pa sledeč:
Kako dopovem formuli oz. kaj naredim da se formula v C1 po popremiku celic A1 in B1 v A2 ter B2 še vedno sklicuje na A1 in B1 in ne na A2 ter B2? Z drugimi besedami, kaj naredim pa se bo formula vedno sklicala na fiksno celico ne glede kako se celico prestavlja?

Hvala za odgovore. Rok
  • spremenil: Godness ()

Ziga Dolhar ::

https://dolhar.si/

Godness ::

Ne, to ni to kar sem spraševal. Mogoče nism bil dovolj jasen pri vrašanju.
Gremo šenkrat bolj podroben primer!
V celici A1 je št. 3 v B1 pa 4. Formula v C1 je =$A$1*$B$1. rezultat po tem takem v celici C1 je 12. Sedaj primem celico A1 in jo prestavim v A2. Če pogedam formulo v C1 sedaj bom videl da piše =$A$2*$B$1, ker je formula sama sledila izvornim podatkom in se je sama popravila.
Jaz pa tega nočem. hočem da je formula fiksirana na A1 in B1 ves čas in se ne spreminja. Kar pomeni, da če sem prestavil celo celico A1 v A2 je sedaj celica A1 prazna in bi morala formula v C1 napisati rezultat 0. saj smo pomnožili prazen prostor z 4. pa temu ni tako. Kako to naredim?

Zgodovina sprememb…

  • spremenil: Godness ()

Ziga Dolhar ::

Mea culpa. Tega pa res ne znam :).
https://dolhar.si/

butec ::

odstrani $ znak iz formule

z "$" fiksiraš celico in se pri kopiranju v drugo celico na spreminja ...

celico A1 kopiraj v A2 , pol pa A1 izbriši , ne uporabljaj funkcije izreži

Zgodovina sprememb…

  • spremenil: butec ()

Godness ::

Jah sej to vem tut jest, sam fora je u tem, da delam en program, ki ni samo zame. Uporabljal bo 3 podatke v vrstici (ki bodo povedale dimenzije vektorja), skozi več vrstic
Primer:
1.vektor 33.455 45.556 23.556
2.vektor 45.422 23.455 56.434
3.vektor 10.409 03.433 60,445
4.vektor 32.343 20.547 67.233
5.vektor ...
...
...
22.vektor 45.512 43.507 56.700
23.vektor 49.123 23.123 54.645

zaradi nekega računskega zazloga (ki ga nebom tukj omenjal) bo excel računal s temi podatki v točnem vrstnem redu vektorjev. Kaj če sedaj nekdo ki uporablja ta program in pozabi izmed 23ih vektorjev da je pozabli med 12. in 13. vektorjem enega vmes. Vedel bo da mora program imeti točno zaporedje vektorjev, drugače ne bo pravilno računal. Uporabnik bo prijel use vrstice z v kjučno 13. do 23. vrstico in jih presavil za eno nižje, da bo lahko vnesel vmesni vektor, ki ga je zaradi malomarnost pač pozabli vnesiti prej ali pa ga izračunal šele pozneje in ta vektor tam obstaja, za keterega prej še ni vedel, kar pomeni da ni kriv sam. Kar uporabnk seveda ne ve je da, ko bo prestavil podatke bodo formule sledile izvornim podatkom in s tem preskočile vmesni vnešen vektor in s tem nardil napako za kateko uporabnik ne bo vedel ter mislil da je pravilno izračunal. Seveda bi lahko pred uporabo programa napisal naj KOPIRAJO in ne prestavljajo podatke. Samo iz izkušen samih vem, da je lažje/hitreje ozačiti podatke in prestaviti kot kopirati in tudi v večini primerov uporabniki sploh ne preberejo navodil za uporabo, tako da bodo imeli narobe rezultate. Nočem pa da bi zaradi, bodi si svoje malomarnosti, oz dodatnih informacij o novih vmesnih vektorjih, prihajalo do napake. Zato hočem že takoj na začetku odpraviti možnost, da bi do napake lahko kakorkoli prišlo in zato ni samo zadostno rešiti problem kopiranja ampak tudi premikanja celic.

Zgodovina sprememb…

  • spremenil: Godness ()

Godness ::

Je pa zanimivo, da sem pod Orodja > Možnosti > Urejanje našel opcijo: "Omogoči operacijo povleci spusti", ki če jo izklopim, omogoči da peprečim, da se celice prestavljajo. S tem pa tudi preprečim da iste podatke vlečem skozi več vrstic če se vektorji ponovijo kar se tudi v mojem primeru večkrat zgodi. Samo vlečenje podatkov ne povroči napake, da bi se formule sklicovale na druge celice, kot se to zgodi pri prstavljanju celic, zato je vlečenje podatkov uredu in ni zmotno za program in zelo koristno. A kaj ko izklopim "Omogoči operacijo povleci spusti" in s tem onemogočim obe opciji vlečenja in premkanja. Ker butelj je delal ta excel pa ne ve da sta to 2 različni opciji ne pa ena sama. Ok, sam tudi če to opcijo izklopim, res da ne more priti do napak ker Uporabniki ne bodo imeli opcije premika celic, a kaj ko bodo pozabili med 12.in 13. vektorjem en vektor in nebodo mogli presatviti useh od 13 naprej in bodo mogli useh navzdol pisat še enkrat. To bi bilo res mučno, da ne rečem nesprejemljivo za "dober"(dandanašnji) program. Sepravi izklop opcije "Omogoči operacijo povleci spusti" odpade, in se spet pojavi problem, kako to naredim da bo delalo?

Zgodovina sprememb…

  • spremenil: Godness ()

pajanko ::

Uf, zajebano. Tudi zaklep dokumenta ne pride v poštev, ker še vedno gre kopirat, prestavljat. Vprašaj na http://www.matjazev.net/forum/, sicer pa mislim, da se bo Matjaž javil kar tukaj.

Godness ::

Rezmišlal sem tudi, če bi se dalo nekako formuli zakleniti text/kodo same formule v celici,kjer se nahaja, s tem da ji onemogočimo da bi se spreminjala/prilagajana na prestavljene vhodne podatke in se stem vedno sklicevala na ista mesta vhodnih podatkov, neglede na to kaj se je z vhodnimi podatki/celicami zgodilo.

če vem to kaj bolj pomaga...

Zgodovina sprememb…

  • spremenil: Godness ()

prtenjam ::

:)Pa še res se bo oglasil, če bo le naletel na zanimiv problem...

Rešitev obstaja, le formule malce zakomplicira. Uporabiti je namreč potrebno kar dve funkciji. S prvo funkcijo izgradite sklic, z drugo pa preverete vrednost na tem sklicu. Torej sklic izgradite s funkcijo ADDRESS, ki sicer sprejme več parametrov, a nas zanimata samo prva dva. Prvi je vrstica, drugi pa kolona:
=ADDRESS(1;2)  - vrne $B$1
=ADDRESS(8;16)  - vrne $P$8

Druga potrebna funkcija pa je INDIRECT, ki pač vrne vrednost izbranega sklica. Če torej obe funkciji združimo, dobimo
tole 
=INDIRECT(ADDRESS(1;1))*INDIRECT(ADDRESS(1;2))

namesto tega 
=$A$1*$B$1

le da v prvem primeru lahko uporabnik A1 in B1 premika kolikor hoče, pa to na formulo ne bo vplivalo >:D
Matjaž Prtenjak
https://mnet.si

Godness ::

Sem probu. Deluje! :)
Use formule bom sicer mogu nadgradit, ampak se bo splačalo.

1000x Hvala! tole mi bo res pomagal. Rok

milc ::

Ali pa malo lažje, brez ADDRESS:
=INDIRECT("A1")*INDIRECT("B1")
Se pa jaz te funkcije izogibam kot hudič križa.
V tvojem primeru bi bilo veliko lepše napisati neke vrste check, ki bo preverjal, da so vsi vektorji pravilno vneseni. In nepravilno vnesene označil z barvo recimo.

Godness ::

Jup! Tut to dela, pa še manj je za pisat! :)
Hvala! Rok