-
IT café
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
detroitrw
addikt
-
Delila_1
Topikgazda
válasz #02644736 #20782 üzenetére
A HOL.VAN függvény kikeresi a "Test Complete" szöveg sorát, ebből levonunk 1-et, az INDIREKT függvény pedig kiírja ennek a sornak az értékét.
=INDIREKT("A" &HOL.VAN("Test Complete";A:A;0)-1)
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz #02644736 #20800 üzenetére
Úgy tűnik, szeretsz velem levelezni. Ha nem így lenne, már először megírtad volna, hogy más lapokról akarod behozni az adatokat. Azt még most sem árultad el, hogy az egyes lapoknak melyik oszlopából várod az értékeket. Nem baj, a megadott képletet átalakítod, ha nem az A-ból.
A Munka1 lapon megadod az egyes lapok számát, ami nálam az első sorban van.
A szerkesztőlécen látod az A3 képletét, ezt másold jobbra az R (18) oszlopig.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
bteebi
veterán
válasz #02644736 #20825 üzenetére
Úgy mindenképp meg tudod csinálni - kicsit kerülőúton -, hogy ="Bcs" & A1 & "/2014". Ebben az esetben az A1 cellában van a karakterlánc (pl. 0234), a cella formátuma pedig szöveg. Próbáltam máshogy, de jobbat egyelőre nem tudok. Ha fix számú (pl. 4) karakter lenne a Bcs után, akkor meg tudnád adni úgy, hogy "Bcs"0000"/2014", és akkor mindig 4 jegyre egészíti ki a számot, nullákkal.
Cancel all my meetings. Someone is wrong on the Internet.
-
Delila_1
Topikgazda
válasz #02644736 #20949 üzenetére
Az A oszlop formátuma legyen Normál"/XY", a K-é pedig szöveg.
A makróban az A oszlopba írandó adatot számként mentem (TextBox1*1), a többit szövegként. A textbox, mint a neve is mutatja, szöveges értéket ad alapból. Ha számként akarod menteni valamelyik adatot, szoroznod kell a felíráskor 1-gyel.
10 db textboxba viszem be az adatokat a formon (A:J oszlop), a K oszlop adatát a TextBox1 értéke adja.
Private Sub CommandButton1_Click()
Dim sor As Long, usor As Long, kezd As Long, WF As WorksheetFunction, f As Boolean
Set WF = Application.WorksheetFunction
f = False
Sheets("Munka1").Activate
If WF.CountIf(Columns(1), TextBox1 * 1) > 0 Then
kezd = WF.Match(TextBox1 * 1, Columns(1), 0) + 1
usor = Range("A" & Rows.Count).End(xlUp).Row
For sor = kezd To usor
Cells(sor, "A") = Cells(sor, "A") + 1
Cells(sor, "K") = Cells(sor, "A") & "/" & Year(Date)
Next
f = True
Else
usor = Range("A" & Rows.Count).End(xlUp).Row + 1
End If
'Adatbevitel a Munka1 lapra
If f Then
usor = usor + 1
Range("A" & usor) = TextBox1 * 1 + 1
Else
Range("A" & usor) = TextBox1 * 1
End If
Range("B" & usor) = TextBox2
Range("C" & usor) = TextBox3
Range("D" & usor) = TextBox4
Range("E" & usor) = TextBox5
Range("F" & usor) = TextBox6
Range("G" & usor) = TextBox7
Range("H" & usor) = TextBox8
Range("I" & usor) = TextBox9
Range("J" & usor) = TextBox10
If f Then
Range("K" & usor) = TextBox1 + 1 & "/" & Year(Date)
Else
Range("K" & usor) = TextBox1 & "/" & Year(Date)
End If
'Rendezés
usor = Range("A" & Rows.Count).End(xlUp).Row
ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear
ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("A2:A" & usor), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Munka1").Sort
.SetRange Range("A1:K" & usor)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End SubSzerk.: beteheted a végére a textboxok kiürítését.
[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
-
Delila_1
Topikgazda
válasz #02644736 #20954 üzenetére
Ez változik:
If f Then
Range("K" & usor) = TextBox11 + 1 & "/" & Year(Date)
Else
Range("K" & usor) = TextBox11 & "/" & Year(Date)
End IfNem írtad, mihez kell a range. Feltételezem, hogy a formon lévő listboxhoz, vagy comboboxhoz, vagy egyéb, listát tartalmazó objektumhoz.
Private Sub UserForm_Activate()
Dim usor As Long
usor = Sheets("Munka1").Range("A" & Rows.Count).End(xlUp).Row
ComboBox1.List = Sheets("Munka1").Range("A2:A" & usor).Value
End SubA ComboBox1.List = Sheets("Munka1").Range("A2:A" & usor).Value sort bemásolhatod az előbbi makró végére is, hogy a lapra felírás után frissüljön a lista.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
#02644736
törölt tag
válasz #02644736 #20959 üzenetére
Kiírattam msgbox-szal a usor értékét, egy üres ablak ugrott fel, még 0 sem volt ráírva.
Akkor a középső sorral lehet valami?
Ez alapján írtam máshova, és ott meg működik ugyanígy. Pedig ahova hivatkozik, B oszlop adatok munkalap, a fejlécen kívül van beírva még egy adat. -
Louro
őstag
válasz #02644736 #21159 üzenetére
template = példafálj.
Ha túl nagy az eredeti, amivel dolgoznál vagy nem elérhető - pl. munkahely -, akkor otthon kreálsz egy excelt, amiben nagyjából ugyanott vannak az oszlopok és az értékek is megfelelően Dátum/szöveg/szám.
Én, amivel sokat szenvedtem, több több 10 megás fájl kezelése....mivel ez sokáig futna, így csináltam otthon egy fals excelt, végiggurultam a billentyűzeten és ebből lettek a mezők. Majd csináltam pár másolatot a fájlból és azokkal dolgozgattam. Így nem több 10+ megás fájlt kezeltem, hanem több pár kilobájtost.
Remélem így sikerült leírnom érthetőbben.
Mess with the best / Die like the rest
-
Delila_1
Topikgazda
válasz #02644736 #22031 üzenetére
A lapodhoz kell rendelned a lenti makrót, ennek a módját több helyen megtalálod a fórumon.
Az X1 helyett olyan címet írj, ahol biztosan nincs adatod.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Application.EnableEvents = False
Range("A1") = Range("X1") + Target
Range("X1") = Range("A1")
Application.EnableEvents = True
End If
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Sasos
senior tag
válasz #02644736 #22837 üzenetére
Ilyennel találkoztam már, de azon a gépen nem jogtiszta, aktivátorral aktivált MS Office volt. Félve kérdezem meg... Ez a példány jogtiszta?
Szerk: Az említtet gép esetén az xlsx-re kattintás után elindult az Excel, majd közölte, hogy nem sikerült érvényesíteni a példányt. Ha előbb indították az Excel-t, és onnan nyitották a fájlt akkor hiba nélkül dolgozott.
[ Szerkesztve ]
-
Fferi50
őstag
-
Fferi50
őstag
válasz #02644736 #22994 üzenetére
Szia!
Az a helyzet, hogy a számolási beállítások applikáció (Excel program) szinten vannak és nem munkafüzetre specifikálva.
Vagyis, ha valamelyik használó akár kézzel akár makróból átállítja kézire és úgy lép ki belőle, akkor az marad a beállítás, amíg valaki vissza nem állítja.Üdv.
-
Fferi50
őstag
válasz #02644736 #23056 üzenetére
Szia!
Elárulnád, hogy milyen Excel verziód van?
Csinálsz egy oszlopot mindkét munkalapra, ahova összefűzöd a keresni kívánt oszlop értékeit. Ezután ezt az értéket keresed fkeres függvénnyel ha a keresőoszlop az első a második munkalapon, vagy index és hol.van függvény kombinációval, ha a keresőoszlop nem az első a második munkalapon.
Üdv.
[ Szerkesztve ]
-
lappy
őstag
-
Delila_1
Topikgazda
válasz #02644736 #23056 üzenetére
Szia!
Nem voltam net közelében.
Mindkét lapon össze kell fűznöd az A és B oszlop adatait, közöttük pl. szóközzel.
A képen a Munka1 lap C2 cellájának a képletét láthatod a státuszsorban.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Mittu88
senior tag
válasz #02644736 #23333 üzenetére
Ha kijelölöd valamelyik celláját a becsatolt adattartománynak, és az Adatok fülön rákattintasz a Kapcsolatoknál a Tulajdonságokra, lennie kell az Adatformátum és elrendezés részben olyannak, hogy Oszlopszélesség igazítása. Checkboxból pipa ki és kész.
Legalábbis 2010-esben így működik, sajnos nincs '13-asom. -
hallgat
csendes tag
válasz #02644736 #31229 üzenetére
Szia!
Ctrl+C, a beillesztendő helyen pedig jobb egérgomb és a menüben a "Beillesztés (B)" lehetőséget választva viszi a formátumot is.
Vagy irányított beillesztés -> "Minden" legyen beállítvaBár nekem sima Ctrl+C - Ctrl+V -re is úgy viszi át, hogy megmarad a formátum is.
[ Szerkesztve ]
Office 2010 Attól, hogy a verebek alakzatba állnak, az még nem SAS!
-
hallgat
csendes tag
-
Fferi50
őstag
válasz #02644736 #31470 üzenetére
Szia!
"Valahogy képlettel kellene megoldani, hogy minden hétfőnél az előző heti értékeket összeadja"
Ehhez először is valamilyen módon tudatni kell az excellel az adott napi dátumot. Legegyszerűbben egy elrejtett segédoszlopba lehet betenni szerintem az adott hónap adott napjához tartozó dátumot, mert ebből a megjelenítésből nem látom át, hogyan lehetne képlettel kibogozni.
Mondjuk az E oszlopban van a dátum, E136-ban 2016.05.09 valamilyen dátumformátumban (nem szöveg).
A képlet a C136 cellába:
=HA(HÉT.NAPJA(E136;2)=1;SZUM(ELTOLÁS(D136;-1;0;-7;1));"")
Ezt a képletet húzod végig a C oszlopon.Üdv.
[ Szerkesztve ]
-
Delila_1
Topikgazda
válasz #02644736 #31470 üzenetére
Másik megoldás:
=SZUM(INDIREKT("D" & SOR()-7 & ":D" & SOR()-1))Ez az előző hétfőtől vasárnapig összegzi a D oszlop adatait. Kijelölöd a C129:C136 tartományt – ebből csak a C136 tartalmaz képletet –, és együtt lemásolod az alatta lévő sorokba.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
-
Fferi50
őstag
válasz #02644736 #31483 üzenetére
Szia!
Az ELTOLÁS függvény 4. paraméterét - ami -7 mivel egy hétről van szó - át kell írnod -31 -re május, -30-ra június esetében.
SZUM(ELTOLÁS(D136;-1;0;-7;1)) helyett pl. SZUM(ELTOLÁS(D136;-1;0;-31;1));"")Gondolom, ezt a hónap utolsó napja után szeretnéd - a következő hónap első napján - megtenni, ezért a Ha függvénnyel azt kell megvizsgálnod, hogy az adott dátum napja elseje-e:
HA(NAP(E136)=1; SZUM(ELTOLÁS(D136;-1;0; -NAP(E135);1));"")Feltételezve, hogy E136 éppen elseje, akkor E135 az előző hónap utolsó napja és a fenti képletet lehúzva automatikusan adja a mindenkori előző havi összeget a következő hónap első napján!
Természetesen a havi és heti feltételek kombinálhatóak is.
A feltétel nélkül lehet az adott napot megelőző napig göngyölíteni az összeget:
SZUM(ELTOLÁS(D136;-1;0; -NAP(E135);1))Ezért ez a képlet minden hó elsején éppen az előző hónap összegét fogja megadni.
Üdv.
[ Szerkesztve ]
-
Delila_1
Topikgazda
válasz #02644736 #31485 üzenetére
A füzet Bevitel lapján felveszel egy új oszlopot, ami a B oszlopban lévő dátum hetét adja.
Az összesítések lapra készítesz egy kimutatást, majd létrehozod a csoportosítást. Havonta, és ezen belül hetente összesít.
Ha a Bevitel lapon lévő adatokat táblázattá alakítod, a kimutatás követi az újonnan bevitt sorokat, csak rosszul mutatnak az A oszlop összevont cellái.
Ha lehet, kerülöm az összevonásokat, sok bajt okozhatnak. A dátum oszlopban a teljes dátum megjelenítése (a jelenlegi "nn" formátum helyett) kiküszöbölné az összevonásokat, és 1 oszloppal kevesebb lehetne.
Ebben a füzetben átalakítottam a Bevitel lapot.
[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
-
Fferi50
őstag
válasz #02644736 #31711 üzenetére
Szia!
Tömbképletekkel lehet a problémádat megoldani:
FSZ tömbképlet az F12 cellába :=HA(C12="FSZ";HAHIBA(SZUMHA(INDIREKT("C" & SOR() & ":C"& KICSI(HA($C12:$C$1200="FSZ";SOR($C12:$C$1200);"");32));"FSZ";(INDIREKT("E" & SOR() & ":E"& KICSI(HA($C12:$C$1200="FSZ";SOR($C12:$C$1200);"");32))))/32;"NEM LEHET ÁTLAGOT SZÁMOLNI");"")
A tömbképletet Shift+Ctrl + Enter egyidejű lenyomásával viheted be, amikor elhagyod a cellát, az Excel kapcsos zárójelbe teszi a képletet.
A többi oszlopnál ("E" & SOR() & ":E"& részben az E cserélendő a megfelelő oszlopra.DSZ esetében az FSZ értékeket kell átírnod DSZ -re, illetve az eredmény oszlopokat.
A $C$1200 értéket a tényleges adathossznak megfelelően kell átírni.
A képletet folyamatosan húzhatod le az oszlopban, mindig 32 tagú mozgó átlagot számol.
Az adatsor végén fog megjelenni a hibaüzenet, amit szándékosan szövegként adtam meg, hogy feltűnő legyen, arra változtatod, amire szeretnéd.Remélem, használni tudod, ha kérdésed lenne, írj lsz.
Üdv.
Új hozzászólás Aktív témák
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen