|
06.03.2014., 13:02 | #1 |
Premium
Datum registracije: Nov 2004
Lokacija: VKCI
Postovi: 1,205
|
Excel, kako prenijeti podatke na drugi sheet
..ali da zadovoljava uvjet sa prvog sheet-a. Hm... Podaak na drugi sheet prenosim pomoću IF-a: Code:
=IF(Sheet1!AD5>0;Sheet1!N5) Nadam se da kužite |
06.03.2014., 13:26 | #2 |
Premium
Datum registracije: Oct 2007
Lokacija: zagreb
Postovi: 593
|
Format Painter , zaokružiš- kopiraš, nisam ziher kako radi sa formulama ali probaj. |
|
|
Oglas
|
|
06.03.2014., 13:40 | #3 |
Premium
Datum registracije: Mar 2006
Lokacija: Opatija
Postovi: 33,326
|
Čini mi da može i CTRL+A (copy all) na prvom sheetu, a onda Paste Special na drugi sheet.
__________________
"Dvije stvari su beskonačne - svemir i ljudska glupost. Za svemir nisam siguran." A. Einstein |
06.03.2014., 14:32 | #4 |
Premium
Datum registracije: May 2006
Lokacija: Croatia
Postovi: 2,706
|
Baca ti FALSE jer si krivo postavio formulu. IF funkcija ima 3 karakteristike 1 TKO,ŠTO,GDJE,KADA,ZAŠTO 2 ŠTO DA RADIM AKO JE TOČNO 3 ŠTO DA RADIM AKO JE NETOČNO Primjer: Provjeri da li je A=0, ako je prepiši, ako nije ostavi prazno Formula: IF(A=0;A;"") U tvom primjeru: =IF(Sheet1!AD5>0;Sheet1!N5;"") Ja često u sličnim primjerima koristim dvostruki IF, gdje se fokusiram da li je polje koje provjeravam "PRAZNO", tada IF izgleda ovako (radi urednosti): =IF(A1="";"";IF(A1>0;A1;B1)) U prijevodu: - Provjeri da li je A1 prazan, ako je, ostavi polje prazno, ako nije... - Provjeri da li je A1 veći od 0, ako je, prepiši A1, ako nije, prepiši B1 ps: Kod korištenja više IFova unutar IFa često uzmem olovku i papir kako se ne bih izgubio u logici i zagradama i crtam npr: Code:
IF(nešto; DA IF(nešto; DA IF(nešto; DA NE))) To bi bilo 35,00 kn na korist mog žiro-računa...
__________________
MC Zadnje izmijenjeno od: Sa_Stilom. 06.03.2014. u 15:24. |
07.03.2014., 08:04 | #5 |
Premium
Datum registracije: Nov 2004
Lokacija: VKCI
Postovi: 1,205
|
@ Sa_Stilom: Radi meni IF fukcija i bez zadnje karakteristike, te on dodaje defaultnu vrijednost koja je u excelu FALSE. Rezultat dobijem tipa: Pero Marko FALSE Ivan Snježana FALSE FALSE FALSE A ja bi trebao da dobijem: Pero Marko Ivan Snježana Samo IF-ovi koji zadovoljavaju uvjet. Neznam da li je to moguće u excelu uopće i napraviti. Da excel izvrti neku petlju i popunjava redove sa rezultatom koji ispunjava uvjet. Storno 35,00kn - uvjek možeš na čevape doći ako riješim ovo Gledao sam malo i po prijedlozima od coconut-a i sodom-a ali bezuspješno. |
07.03.2014., 10:03 | #7 |
Premium
Datum registracije: May 2006
Lokacija: Croatia
Postovi: 2,706
|
Ajde ti meni opet fino objasni što ti točno želiš, i što imaš... Ako sam dobro shvatio: Imaš Sheet1 u kojem u čelijama imaš određene vrijednosti, tipa Sheet1!A1=Nina Sheet1!A2=Marica Sheet1!A3=Ana Sheet1!A4=Petra Sheet1!A5="PRAZNO" Sheet1!A6="PRAZNO" Sheet1!A7=Iva Sheet1!A8=Kristina Sheet1!A9="PRAZNO" Sheet1!A10=Nika Sheet1!A11="PRAZNO" Sheet1!A12=Sunčica I ti bi sada htio da ti u Sheet2 baca samo polja koja su ispunjena, tako da rezultat bude: Sheet2!A1=Nina Sheet2!A2=Marica Sheet2!A3=Ana Sheet2!A4=Petra Sheet2!A5=Iva Sheet2!A6=Kristina Sheet2!A7=Nika Sheet2!A8=Sunčica Ako je to ono što želiš, to nećeš moći putem funkcije, nego ćeš morati napraviti petlju putem VBA. Jesam li dobro shvatio što želiš ? Ako ne, molim te pojasni detaljnije kako bih mogao točno pristupiti zadatku. Svaki problem se često može riješiti na više načina. Jedan je uvijek najispravniji, a drugi su, kako bih rekao "bending the rules". Za potrebe "škole" ili "zadatka" često se traži trajno - univerzalno riješenje koje podrazumijeva više-manje što manju, odnosno nikakvu interakciju korisnika, odnosno da "program" napravi sve sam. To se u ovom slučaju postiže VBA. Ako pak to nije takva vrsta zadatka, isti se može riješiti s dodatnom interakcijom korisnika, u ovom slučaju tebe na način koji si već dobio, a to je: Kad u drugom sheetu dobiješ rezultate s FALSE, označiš cijeli taj stupac, stisneš COPY-PASTE Special->Values, filtriraš samo FALSE, obrišeš te redove (ukoliko u ostalim redovima nema informacija, makneš filter i time ti ostane sve ostalo. No, čini mi se da ovdje nije takva vrsta zadatka i riješenja, nego da se ipak traži VBA petlja. Ako pak imaš informacije u ostalim stupcima, ja takve simple probleme riješavam i bez IFa, tako da cijeli stupac u Sheeta1 kopiram u prazni EXCEL, filtriram prazna polja, obrišem ih, i ono što ostane kopiram u Sheet2. No, rekoh, mislim da to ovdje nije ono što se traži.
__________________
MC Zadnje izmijenjeno od: Sa_Stilom. 07.03.2014. u 10:12. |
07.03.2014., 10:25 | #8 | |
Premium
Datum registracije: Nov 2004
Lokacija: VKCI
Postovi: 1,205
|
Citiraj:
U pravu si što se tiće zadatka. I zadatak je poslovne naravi, davno nema veze sa školom . Ja sam za sada to riješio ručno. Prebacim sve na Sheet2 i onda sortiram po stupcima descendig i na početku dobijem rezultate koji su mi potrebni, FALSE ostane na kraju. A ja sam htio to napraviti da ide automatski. Ja popunjavam samo Sheet1, automatski prebacujem na Sheet2 i onda sa Sheeta2 automatski popunjavam obrazac na Sheet3. E sad meni je poluautomatski samo Sheet2 gdje moram sortirati da bi dobio na vrhu sve osim FALSE. Da li se to može pomoću Macroa riješiti ili možda imaš primjer neki i sa VBA. Te da li si radio tako šta? |
|
07.03.2014., 10:39 | #9 |
Premium
Datum registracije: May 2006
Lokacija: Croatia
Postovi: 2,706
|
Nisam maher u VBA, puno googlam googlam dok ne sklepam "kod" koji radi ono što mi treba. Znam otprilike kako postaviti zadatak, no ne znam ga napisati. Code:
Sub Zadatak () Dim X as ?, Y as ?, Z as ? X = Sheet1A1 Z = Sheet2A1 i = i + ActiveCell.Offset(1, 0) = 1 If X>0 Then nešto Sheet2A1 nešto nešto idi na početak ...i sad još treba postaviti neki uvijek kada se petlja završava Generalno, putem VBA sve se može riješiti, samo treba to znati postaviti i napisati. Pokušati ću ovo riješiti jer dobro mi dođe da malo i taj dio nadogradim.
__________________
MC |
07.03.2014., 10:41 | #10 | |
Premium
Datum registracije: Nov 2004
Lokacija: VKCI
Postovi: 1,205
|
Citiraj:
Isto tako će mi ovo uskoro više trebati, ovo je prvi puta. |
|
|
|
Oglas
|
|
07.03.2014., 11:19 | #12 | |
Premium
Datum registracije: May 2006
Lokacija: Croatia
Postovi: 2,706
|
Citiraj:
Record -> Zatim napravim što trebam -> STOP, malo još uredim taj kod da se brže odvija, isključim da se ne prikazuje korisniku izvođenje macro, odnosno da se vrši u backgroundu, ubacim neke gumbiće, MesBox, tipa pričekajte, itd itd... i dotlem Excel odradi što treba. Nije super profesionalno riješenje programera, ali često tako riješim ono što mi treba. Ako stvar funkcionira i dobijem ono što trebam, zadovoljan korisnik, zadovoljan ja, sve 5. Ovdje se spominje sličan zadatak, no trebati ćeš ga doraditi. Više manje ima svega online, rijetko točno ono što čovjek treba, ali komad koda ovdje, ondje i sklepa se. Još ako si uzmeš vremena i shvatiš i naučiš postavljanje varijabli, petlji, if, i, do, loop, itd... i ostale manipulacijske sintakse i formule, onda si car. Meni zatreba tako nešto 1-3 godišnje i onda mi se neda štrebati satima to naučiti, nego kombiniram sve i svašta da dobijem što trebam. http://stackoverflow.com/questions/1...eet-to-another
__________________
MC |
|
07.03.2014., 11:59 | #13 |
Premium
Datum registracije: Nov 2004
Lokacija: VKCI
Postovi: 1,205
|
Riješeno za sada sa Macro naredbom. Snimio Sortiranje kako sam htio i onda podesio da se pri aktivaciji tog sheeta automatski izvrši taj macro - ručno ali stručno Desni klik na sheet pa View code i onda pase: Code:
Private Sub Worksheet_Activate() Call sort (ime macroa) End Sub @Sa_Stilom: kako si rekao, sve radi, svi zadovoljni. Ako naletiš na elegantnije riješenje molim te javi, i ja ću svakako. |
07.03.2014., 12:26 | #14 |
Premium
Datum registracije: May 2006
Lokacija: Croatia
Postovi: 2,706
|
Daj baci mi taj macro da ga samo pogledam... Caka kako sakriti izvršenej Macroa: Code:
Application.ScreenUpdating = False http://www.youtube.com/user/WiseOwlT...?feature=watch
__________________
MC Zadnje izmijenjeno od: Sa_Stilom. 07.03.2014. u 12:33. |
07.03.2014., 13:08 | #15 |
Premium
Datum registracije: Nov 2004
Lokacija: VKCI
Postovi: 1,205
|
Eo ga: Code:
Sub Sort() ' ' Sort Macro ' Macro recorded 07.03.2014 by K ' ' Keyboard Shortcut: Ctrl+k ' Range("A2:D218").Select Selection.Sort Key1:=Range("A2"), Order1:=xlDescending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal End Sub Zadnje izmijenjeno od: Kruno M. 07.03.2014. u 13:24. |
07.03.2014., 14:25 | #16 | |
Premium
Datum registracije: May 2006
Lokacija: Croatia
Postovi: 2,706
|
Citiraj:
Code:
Private Sub CommandButton1_Click() Dim i As Integer i = 1 Cells(1, 2).Select Do While Cells(i, 1) <> "" If Cells(i, 1) > 0 Then ActiveCell = Cells(i, 1) i = i + 1 ActiveCell.Offset(1, 0).Select Else i = i + 1 End If Loop End Sub Provjerava u prvoj koloni od prve vrijednosti (znači kolona A) da li je vrijednost veća od 0 Kolona sadrži: 1 2 -1 -2 3 4 -4 -3 -4 5 6 7 -5 -6 8 9 -7 -8 -9 Ako je veća od nula, prepiši pa se pomakni dalje, ako nije, samo povećaj i Rezultat je da dobijem (u drugoj koloni (B) samo pozitivne brojeve jedan ispod drugog): 1 2 3 4 5 6 7 8 9
__________________
MC |
|
|
|