-
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
-
Petium001
csendes tag
válasz Fferi50 #43327 üzenetére
Szia!
Az a baj, hogy nagyon nem értek hozzá, és ebben a gazdasági helyzetben egyre rosszabb ahogy telnek a napok
Tudnál nekem segíteni? Neked szerintem gyorsan menne, megadnám milyen feltételek alapján kellene működnie, és tuti 2 perc alapján összeraknád ....
Előre is köszi
Petium
-
Petium001
csendes tag
válasz Fferi50 #43340 üzenetére
Szia!
Köszi, van egy kérdésem:
Ha 5 alatt van a keresett érték, és 2400 alatt az összeg, akkor csak +30% kellene rá, de nekem nem annyi jön ki...
Próbáltam a súly alapján minél jobban behatárolni, de nem az lesz a gond, ha valamelyik feltétel nem teljesül, akkor már jó a végösszeg, de nem jöttem rá mi a hiba...
azt hittem, a 0,4 zavarja meg, de ha átállítom 1-re, akkor sem változik semmi.Ha egy számhoz hozzá akarok adni 30%-ot, akkor megszorzom 1,3-mal (300*1,3)=390
Itt viszont 0,3-mal kell megszorozni?Thx
Petium
-
Lasersailing
senior tag
válasz Fferi50 #43346 üzenetére
Köszönöm ez lesz a megoldás! Annyi "gond" van csak vele, ha előbb módosítom a képletet, majd utána a cella típust, akkor nem oldja meg, de ez után F2+enter megoldja. Vagy ha előbb állítom át general-ra majd utána módosítom a képletet...
Nem akarok belegondolni, hogy az elmúlt 10 évben hányszor okozott már ez gondot, de sose kérdeztem meg, helyette cellamásolásokkal szenvedtem!
Nagyon szépen köszönöm!
Hova küldjem a sört? -
m.zmrzlina
senior tag
válasz Fferi50 #43423 üzenetére
Köszönöm, akkor bevezetek még egy névtartományt szerintem az egyszerűbb. Illetve pontosabban a két oszlopból álló évkat-ot szétválasztom két külön névtartományra.
keveredik az angol és magyar szintaktika
Ezt nem értem. Angol excelem van. Az INDEX magyarul angolul is INDEX A MATCH meg nem is kérdés hogy angol. Vagy arra gondolsz, hogy a névtartomány neve ékezetes? -
Mutt
aktív tag
válasz Fferi50 #43425 üzenetére
Szia,
A pontosvesszők mint elválasztók.... azok úgy tudom, csak magyarban működnek...
Nem csak a magyarban, hanem többnyire az európai változatokban. Egész pontosan a Windows Területi beállításai alatt található lista elválasztót használja mindig az Excel. A képletek nyelve pedig a telepített nyelvicsomagok függvényében változtatható.
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
bucihost
senior tag
válasz Fferi50 #43449 üzenetére
Sub ExcelSqlTeszt()
Windows("Munkafüzet2").Activate
ActiveWorkbook.Queries.Add Name:="Lekérdezés1", Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Forrás = MySQL.Database(""X.X.X.X"", ""dbname"", [ReturnSingleDatabase=true, Query=""SELECT#(lf)SUM(MENNYS * EGYSAR) AS ERTEK,#(lf)DATUM,#(lf)SID#(lf)#(lf)FROM tabla#(lf)WHERE DATUM between '2020-03-30' AND '2020-03-30'#(lf)GROUP BY DATUM, SID;""])" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " Forrás"
ActiveWorkbook.Worksheets.Add
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=Lekérdezés1;Extended Properties=""""" _
, Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array("SELECT * FROM [Lekérdezés1]")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "Lekérdezés1"
.Refresh BackgroundQuery:=False
End With
Range("O12").Select
ActiveWindow.SmallScroll Down:=-12
End Sub -
bucihost
senior tag
válasz Fferi50 #43455 üzenetére
ActiveWorkbook.Queries("Lekérdezés1"). Formula:= _
Erre a sorra syntax errort dob, nincs ilyen method (a pont után).
Pl: ActiveWorkbook.Queries("Lekérdezés1").Delete már menne, de hogy nézem ".Modify" method nincs
ActiveWorkbook.Queries("Lekérdezés1").Delete
ActiveWorkbook.Queries.Add Name:="Lekérdezés1", Formula:= _
ha előtte törlöm, és újra hozzáadom akkor már félsiker. Csak így meg a hozzá kapcsolt másik lekérdezés "összefűzését" dobja el.De mind1 ezen a vonalon már el tudok indulni. Köszönöm
-
ROBOTER
addikt
válasz Fferi50 #43495 üzenetére
Alapvetően már nem erről a helyzetről beszélek, hanem a fejlesztési folyamatról.
Van egy komolyabb Sub, ami a munkafüzet betöltésekor felépít egy rakás értéket, amire az egész rendszernek szüksége van, rengeteg helyen..
Írok valamit, tesztelem, írok valamit, tesztelem. A teszt során nem szeretném újraindítani azt a Sub-ot, ami Workbook Open-nél fut le. Kitettem egy ideiglenes gombra, hogy ha "anomáliát" tapasztalok, akkor megnyomom, és minden működik. De egyrészt ez baromi kényelmetlen, másrészt lassú. Elvesznek bizonyos változók, logikát még nem találtam benne.
De igazából mindegy, mert a megoldás valószínűleg ugyanaz: munkafüzetben tárolni ezeket.
-
ROBOTER
addikt
válasz Fferi50 #43499 üzenetére
Írtam privit.
Más: nem makróban, hanem simán Excelben cella/tartomány névadásakor meg tudom mondani, hogy az workbookon vagy csak adott worksheeten értelmezett név legyen? Makróban ez simán megy, használom is. pl:
thisworkbook.names.add
vs.activesheet.names.add
Excelben úgy látom, hogy alapból workbookra vonatkozik.
[ Szerkesztve ]
-
ROBOTER
addikt
válasz Fferi50 #43516 üzenetére
Elmondom mivel szívtam és miért nem akartam a szubrutint a sheethez kötni.
Volt egy megmagyarázhatatlan hiba, és órákon át kerestem, nem jöttem rá mi az.
A következő volt: egyik sheet makrójából hívom a másik sheet publikus rutinját, és hibajelzés után a DEBUG a rutin hívását mutatja, nem a meghívott sub hibás sorát. Abban volt egy rossz hivatkozás egy névvel ellátott tartományra, ez volt a gondja. Csak abban nem kerestem, mert a VB szerkesztő nekem a hívó sort sárgította ki. Azt hittem rosszul hívom, rosszul adom át a paramétert vagy nem is lehet így keresztbe hívni sheetek között stb.Most már minden működik.
[ Szerkesztve ]
-
zsolti_20
senior tag
válasz Fferi50 #43523 üzenetére
A szabály az, hogy a B oszlopban vannak az értékek, amik az A oszlophoz tartoznak. 1-en belül van 414,416,419, 2 tartozik a 357,419,3-as 414,56,555,426.
Ezeket szeretném úgy filterezni, hogy csak az az érték maradjon ami a konkrét listán szerepel. Ami az A oszlopban 1-el van jelölve egy 1 egységnak számít. 2-el a második egység, 3-assal a harmadik egység stb...
Úgy szeretném filterezni ezeket hogy a konkrét listából kérje le az adatokat és csak azok az egységek maradjanak amik konkrétan csak a listán lévőket tartalmazzák.
Van pl egy csomag amiben számítógép alkatrészek vannak.
Az csomag neve "1", ebben a csoamgban van CPU,GPU,RAM. A cpu mindig 414, a GPU mindig 416 a RAM mindig 419. Tehát szeretném össze gyűjteni azokat a csomagokat a listából amik csak GPU-t, CPU-t és RAM-ot tartalmaz. Szóval az 1-es csoamg ebbe bele esik. és a 8-as csomag is, mert a 8-as CPU-t tartalmaz. De pl a 7-es csomag már nem, hiába van benne 419-es RAM, ha mellette van még mondjuk egy 159-es egérpad. -
zsolti_20
senior tag
válasz Fferi50 #43525 üzenetére
Igen ha pl egy másik oszlopba át lehetne másolni a kiválasztott sorokat az úgy tökéletes lenne.
A fentebb említett példádban ha a 414,416,419 van megadva akkor azok a csomagok kellenek, amikben csak is ezek a számok vannak megadva. Tehát ez lehet pl:
-414
-416
-419
-414,416
-414,419
-416,419
-414,416,419 stb...
De ha van benne mondjuk 539 akkor annak már nem kellene a listába kerülnie, mert hiába hogy tartalmazza akár a 414,416,419-et van mellette egy olyan ami miatt nem kerülhet fel a listára. Úgy kell elképzelni, hogy pl cpu mindig 414, a GPU mindig 416 a RAM mindig 419 de ha van ott egy 539-es egérpad, akkor az hiába van a listán, ha van közte olyan tétel ami nincs raktáron. Olyan csomagot pedig nem tudunk elküldeni amiből hiányzik valami.Megjelenhetnek a keresőlapon is, az nem probléma. Egymás alá kerülnének be a csomagok számai, amik csak egyszer szerepelhetnek az új listában.
-
zsolti_20
senior tag
válasz Fferi50 #43525 üzenetére
Szia! Most reggel össze dobtam gyorsan egy teljes értékű DEMO excel filet, hogy minden 100%-ban tiszta legyen. Mivel nem vagyok túl jártas Excel VBA-ban, ezért formulával oldottam meg, előre is elnézést ha orbitális hülyeséget csináltam.
Szóval a működése annyi, hogy
A: csomagok száma
B: csomagokban lévő alkatrészek cikkszámai
C: darabszám a csomagban
D: Ahol 0 van az a sor kell nekem mert előtte filterrel kivettem a pipákat az elöl a cikkszám elöl amire nincs szükségem, szóval ami kell nekem az eltűnt filterezéskor a sorokból, és ezt a listát másoltam át az I,J,K oszlopokba.
F: összefűzi a csomagokat, igazából ha ismétlődik akkor az L betű lesz, első helyre pedig a csomag számát írja ki, így könnyen eltűntethetőek ha dupplikálva vannak a csomagszámok.
G: összesített darabszám csomagok alapján. Mostanra jöttem rá, hogy a darabszámra is szükségem van.
I,J,K-ról pedig már beszéltem.
Szóval jelenleg bedobom az összes csomagszámot,cikkszámmal és darabszámmal az A,B,C oszlopokba. Erre nyomok egy filtert, kiszedem a pipákat onnan amelyik cikkszámot megszeretném kapni a végén. És ezt a listát átmásolom az I,J,K-ba. Tehát ott lesz az a lista ami NEM tartalmazza azokat a cikkszámokat amire szükségem van a végén.
D oszlopban kiválasztom filterrel, hogy csak azokat a sorokat mutassa ahol 0 van, vagyis nincs egyezés az I,J,K oszlopban lévőkkel.
Ezután filterezem az F oszlopot, és eltűntetem az összes L betűvel ellátott sort.
Ekkor már megvan oldva hogy csak a bizonyos cikkszámok ellátott csomagokat dobja ki nekem, és szépen tudom szűrni darabszám alapján is a G oszlopban.
Eléggé megszenvedtem vele, főleg a logikai lépésekkel, de soknak érzem ezeket a filterezéseket, főleg ha van mondjuk 40ezer sorom.
Lehetséges megoldani ezt az egészet úgy, hogy van egy Sheet1, Sheet2 lapom az excel fileban. A sheet2-re beírom a cikkszámokat mondjuk A oszlopba, a sheet1-en pedig lenne két gomb. Az egyikkel importálom a bizonyos 3 oszlopot a másik excel fileból. A másik gombbal pedig megcsinálja ezt a sok filterezést amit manuálisan kell most csinálnom.
Amire szükségem van az az, hogy egy csomag szám csak egyszer szerepeljen. A kiválasztott cikkszámok alapján jelenjenek meg a csomagok, de ha valami mást is tartalmaz akkor az ne legyen ott.
Illetve az összesített darabszám legyen a csomag számok mellett, hogy darabszám alapján is lehessen szűrni.
Vagy inkább hagyjam így az egészet és ne foglalkozzak vele többet?
És itt elérhetitek a DEMO filet:
[link] -
Lokids
addikt
válasz Fferi50 #43550 üzenetére
Köszi a mozgatás részét értem. Az rendben.
Az adatokat nem.
Az xlvalues nem fogadja el, hogy range("H1:H7") és gyanítom nem is ezt kéne neki megadni.Nincs olyan parancs ami a kiválasztott G és H oszlopokból egyszerűen kiszedi a G-t? (ahogy egérrel is kiszedjük a pipát mellőle)
If you chase two rabbits you will lose them both.
-
Lokids
addikt
válasz Fferi50 #43552 üzenetére
Tulajdonképpen annyit akarok, hogy a tartomány amit a diagram használ az F1:H7.
Ebbe sajnos benne van a G oszlop is. Ezt ignorálja. Törölje. Vagy mittudom én.
Fenti példában az X tengely az összeg, vagy a darab legyen, míg az Y a nevek.
És meg tudjam neki mondani, hogy a darabot, vagy az összeget rakja rá. Ne pedig mindkettőt.If you chase two rabbits you will lose them both.
-
Új hozzászólás Aktív témák
- Aliexpress tapasztalatok
- Nothing Phone (1) - nem semmi (2)
- exHWSW - Értünk mindenhez IS
- PlayStation 1 / 2
- Viccrovat
- Samsung Galaxy S23 Ultra - non plus ultra
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Kerékpárosok, bringások ide!
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Fallout 76
- További aktív témák...
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Alpha Laptopszerviz Kft.
Város: Pécs