- Crypto Trade
- Súlyos adatvédelmi botrányba kerülhet a ChatGPT az EU-ban
- MinDig TV
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Rendszergazda topic
- Mindenki AI-t akar, már 2025-re is eladták a HBM chipeket
- Proxmox VE
- Kapnak egy rakás reklámot a Roblox játékosai
- ArchiCAD és Artlantis topik
- Mikrotik routerek
-
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
-
Delila_1
Topikgazda
-
Sutyi73
csendes tag
Illetve a destination sornál syntax errort ír.
Illetve még egy kérdés. Ha két ugyanolyan szám szerepel az A oszlopban, akkor azt össze kell vonni úgy, hogy az E oszlop értékeit össze kell adni. Az A oszlop marad.
Tehát: A B C D E A B C D E
38 12.5 38 16,5
25 8 ==> 25 8
38 4Köszi a segítséget.
[ Szerkesztve ]
-
Sutyi73
csendes tag
Üdv! Segítséget szeretnék kérni.
Adott egy könyvtár, amiben xlsx fileok vannak. Egy táblázatban kellene összesíteni ezeknek a fileoknak adatait. Ezt hogyan lehet kivitelezni. Az A oszlopban levő számok egy egy embert jelentenek, a G oszlopban levők pedig munkaórákat. A cél, hogy egy táblázatban ezeket összesítsük. A könyvtárban az xlsx állományok 2019.08.04 N, 2019.08.04 É, 2019.08.05 N stb. elnevezésűek. Kérlek ha tudtok segítsetek.Bocsi nem akartam még egyszer kirakni.
[ Szerkesztve ]
-
Sutyi73
csendes tag
Üdv!
Eddig eljutottam, de nem jól működik. Mi lehet a hiba? A másolt adatokat szépen egymás alá kellene folyamatosan írnia, de nem úgy csinálja.Sub Munka1()
Dim wb As Workbook
Set wb = ActiveWorkbook
Dim directory As String, fileName As String, sheet As Worksheet
directory = "D:\2019.08\"
fileName = Dir(directory & "*.xlsx")
Do While fileName <> ""
Workbooks.Open fileName:=directory & fileName, ReadOnly:=True
Range("A2:E" & ActiveSheet.UsedRange.Rows.Count).Copy
Destination = wb.Worksheets("Célmunkalap").Range("A" & wb.Worksheets("Célmunkalap").UsedRange.Rows.Count + 1)
Windows("Órák.xlsm").Activate
Range("A" & wb.Worksheets("Célmunkalap").UsedRange.Rows.Count + 1).Select
ActiveSheet.Paste
Workbooks(fileName).Close
fileName = Dir()
Loop
End Sub -
Delila_1
Topikgazda
válasz Sutyi73 #41559 üzenetére
Mivel a
Range("A2:E" & ActiveSheet.UsedRange.Rows.Count).Copy Destination = _ wb.Worksheets("Célmunkalap").Range("A" & wb.Worksheets("Célmunkalap").UsedRange.Rows.Count + 1)
sorral már megtörtént a másolás, nincs szükség a
Windows("Órák.xlsm").Activate
Range("A" & wb.Worksheets("Célmunkalap").UsedRange.Rows.Count + 1).Select
ActiveSheet.Pastesorokra. Nem programkódként másoltad ide a makrót, így nem látom, hogy a felső utasítás 1 sorban van-e. A "Destination =" után egy szóközzel alsó kötőjelet tettem be az eredeti mögé.
A mappából megnyitott füzet bezárását így add meg
Workbooks(fileName).Close False
akkor nem kérdez rá a mentésre.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Sutyi73
csendes tag
-
Delila_1
Topikgazda
válasz Sutyi73 #41561 üzenetére
Lemaradt a fele.
Range("A2:E" & ActiveSheet.UsedRange.Rows.Count).Copy _
Destination:=wb.Worksheets("Célmunkalap").Range("A" & wb.Worksheets("Célmunkalap").UsedRange.Rows.Count + 1)Továbbá a Destination után kettőspont is kell az = jelen kívül (értékadás).
[ 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.
-
g4b3n
tag
Sziasztok!
Adott egy 2010-es excel, amiben van egy munkalap. A-M oszlopig vannak benne adatok több száz sorral pedig az egyes tételek felsorolva.
A G oszlopban vannak a mennyiség adatok.
Azt szeretném elérni, hogyha a G oszlop adott cella értéke nem 0, akkor azt másolja át erről a munkalapról egy új munkalapra az egész sor tartalmát (A-M-ig), úgy hogy a tételek között nincs üres sor.pl.
Ha 1. munkalap 23. és 98. sorában a G oszlop értéke nem nulla, akkor az a 2. munkalap 2. és 3. sorába másolja át az előző két sor (A-M-ig) tartalmát.Köszönöm a segítséget.
-
Delila_1
Topikgazda
Az első munkalapodhoz kell rendelned a makrót (a Téma összefoglalóban megtalálod a leírást)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ide As Long
If Target.Column = 7 Then
If Target = 0 Then
Application.EnableEvents = False
ide = Sheets("Munka2").Range("A" & Rows.Count).End(xlUp).Row + 1
Rows(Target.Row).Copy Sheets("Munka2").Range("A" & ide)
Application.EnableEvents = True
End If
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.
-
dm1970
tag
válasz Delila_1 #41547 üzenetére
Szia!
Kicsit elhúzódott a hosszú hétvége.
Köszi, így már tökéletes, az igazzal próbálkoztam én is, több variációban, de mivel teljesen sötét, hogy mi mit miért csinál a képletben, nem jutottam előrébb.
Viszont hogy el ne feledkezzek a CSE-ről, a Mutt féle képletnél maradtam.Mutt
Köszi Neked is, mivel a 3. volt a legrövidebb , először azzal próbálkoztam, s mivel ment a többit nem teszteltem. -
g4b3n
tag
válasz Delila_1 #41564 üzenetére
Köszönöm a gyors választ.
Laphoz rendeltem, de semmi sem történik a munkalap2-n.
Majd csináltam egy teszt excelt 2 db munkalappal, az elsőbe bemásoltam a táblázatot, és hozzárendeltem makrót, viszont így sem történt semmi.
Makró barátként mentettem el mind a két doksit.
Nem értek még az excel makróhoz viszont, valamennyire értek a programozáshoz (C nyelv).
If Target.Column = 7 Then
ide = Sheets("Munka2").Range("A" & Rows.Count).End(xlUp).Row + 1A G oszlopot 7-es szám jelöli a kódban a Munka2 pedig a 2. munkalapot, ezeket akár egy másik projekthez már tudom változtatni.
Szóval mi lehet a gond, miért nem működhet a makró?
Újabban felmerült olyan, hogy csak az A B C és G oszlopokat kell átmásolni egymás melletti cellákba a 2. sortól kezdően (az 1. sort figyelmen kívül kell hagyni), másrészt a vizsgálandó sorok számát lehessen változtatni, pl. 350-ig. Azaz 2-350-ig kell megvizsgálni a G oszlopot.
-
Delila_1
Topikgazda
Lehet, hogy lépésenként futtattad, és kiléptél az Application.EnableEvents = True sor végrehajtása előtt. A futás tiltása (False) maradt érvényben.
A VBE felületen Ctrl+g-re megjelenik az Immediate ablak, oda írd be az engedélyező sort, és enterezd le.Átírtam a makrót. A megadott G2:G350 tartomány módosulását figyeli, és az A:C tartományt másolja a 2. lapra, majd a G-t a D-be. Ez utóbbinak nem sok értelme van, ha nullás bevitel esetén másol. Bármilyen G oszlopbeli érték megadásakor történő másoláshoz vedd ki a belső If - End If feltételt. Csakis az If és End If-es sort, a magot ne!
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ide As Long
If Not Intersect(Target, [G2:G350]) Is Nothing Then
If Target = 0 Then
Application.EnableEvents = False
ide = Sheets("Munka2").Range("A" & Rows.Count).End(xlUp).Row + 1
Range("A" & Target.Row & ":C" & Target.Row).Copy Sheets("Munka2").Range("A" & ide)
Range("G" & Target.Row).Copy Sheets("Munka2").Range("D" & ide)
Application.EnableEvents = True
End If
End If
End Sub[ 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.
-
bozsozso
őstag
Sziasztok,
Azt hogy tudnám elérni, hogy A oszlopban 2. sortól van kb.100 termék,B-C-D stb. oszlopok első soraiban kb 20 anyag. A termék és anyag metszéspontjában van, hogy az adott termék milyen mennyiségben tartalmazza az anyagot. Másik munkalapon fel vannak sorolva a termékek rendelt mennyisége. Ennek a rendelt mennyiségnek szeretném az anyagfelhasználását kiszámolni egy harmadik munkalapra ahol az anyagok vannak felsorolva. Végső megoldásként azt szeretném ha tudnám bővíteni a termékeket és az anyagokat is.
Vagy szívesen veszek javaslatokat is ki hogyan csinálná meg akár teljesen más elrendezéssel, felvitellel. Annyi a lényeg, hogy a rendelt mennyiség mindig termékenként és napra van megadva, amiből naponta kell számolni az anyag szükségletet.
szerk.
kicsit más: meg lehet valahogy adni egy cellában úgy cella tartalom kiolvasást, hogy megadom benne az oszlopot a sor számát pedig cella tartalomból veszem ki
Pl.:
A1 = alma
b1 = 1
c1 cellába pedig valami ilyesmit szeretnék megadni ="A"&b1Ez tudom, hogy azt adja vissza, hogy A1, de én azt szeretném, hogy kiírja alma
[ Szerkesztve ]
-
Dr.NX
addikt
Sziasztok!
Magyar Office 2013
Egy karaktersorozatból pl. (01)123(02)456 szeretném kivágni a zárójeleket.
Ezt jelenleg két lépésben tudtam megoldani, a (01)-et lecserélem 01-re, majd egy másik cellában a (02)-t 02-re. (A (01) és (02) mindig fix amúgy.)
pl. B1-ben
=CSERE(A1;1;4;"01")
majd erre
=CSERE(B1;6;4;"02")Hogyan lehetne ezt elegánsabban, egy függvénnyel megoldani?
Tehát pl. mindkét cserét egy függvényben hajtsa végre?Köszi!
Elfogadom a sütiket.
-
lappy
őstag
[ Szerkesztve ]
Bámulatos hol tart már a tudomány!
-
bozsozso
őstag
válasz Fferi50 #41569 üzenetére
Hát nem nagyon boldogulok.a Termék munkalapról az index-hol.van fügvényekkel megtalálom a megfelelő értéket, de arra nem találok megoldást, hogy hogyan lehetne összeadni az eredményeket.
Tehát van egy termékek adatlap amin megvan, hogy a termékekhez milyen anyagmennyiség tartozik(T01,T02, T03 stb.-termékek ,A01, A02,A03 stb - anyagok) pár cellát elrejtettem mert azok nem fontosak.
Van egy rendelt munkalap aminek első sorában csak a termékek(T01,T02, T03 stb.) vannak az A oszlopban pedig a dátum. A rendelt mennyiség kézzel kerül kitöltésre minden nap minden termékre.
Amelyik munkalapon pedig számolni szeretnék az a felhasználás adatlap Első sorban az anyagok A01, A02,A03 stb) A oszlopban dátum.
Itt szeretném pl.: a B3 cellába ha összeszorozná a rendelt munkalapon található mennyiségek
anyagfelhasználását.A termékekhez tartózó külön anyagfelhasználást azt ki tudom íratni ezzel a 2 függvénnyel, de azt nem sikerül megoldanom, hogy az A01 anyagnál adja össze a T01,T02, T03 stb. termékek A01 anyagfelhasználást megszorozva a termékből rendelt mennyiséggel.
A minta képeken több tizedes jeggyel szerepelnek anyag felhasználások ezért más számokkal itt leírnám.
Ha T01-nek A01 anyagtartalma 1
T02-nek A01 anyagtartalma 2
T01-ből rendeltek 10-et 2015.01.01-én
T02-ből pedig rendeltek 20-at 2015.01.01-énAkkor A01 anyagfelhasználás (10*1)+(20*2)=50 Ennek kellene a B3 cellába kerülni és így sorba a napokon anyagokon.
Ami még fontos, hogy nem minden terméknél van minden anyag felhasználva.
Lehet kicsit túlmagyarázom.
-
Aladaar
tag
Adott egy lista, nevekkel, de sok név után változó mennyiségű szóközzel, és a végén 1-3 darab számmal. Hogyan tudnám a nevek utáni felesleges szóközt és számokat eltüntetni? A "kimetsz" törli a felesleges szóközöket, de a számokra nem találtam megoldást.
előre is köszönöm,
A. -
Mutt
aktív tag
válasz bozsozso #41573 üzenetére
Szia,
SZORZATÖSSZEG függvény fog segíteni a szorzásban és az összeadásban.
Csak 2 plusz feladat van:
1. a rendelések lapon a rendelt mennyiségek vízszintesen vannak megadva termékenként, miközben a termékek lapon függőlegesen. Itt a TRANSZPONÁLÁS függvényt kell segítségül hívni.
2. a képletet nem simán Enter-el, hanem Ctrl+Shift+Enter-el kell bevinni.A példádra a képlet csak ennyi lenne (feltételezve hogy 22 terméked van, ha több akkor mindkét hivatkozást egységesen bővíteni kell - fontos hogy az sorok száma és az oszlopok száma azonos legyen).
=SZORZATÖSSZEG(Termekek!B2:B23;TRANSZPONÁLÁS(Rendelesek!$B2:$W2))
Ez a képlet másolás során el fog csúszni, ezért kell az iNDEX - HOL.VAN-al javítani rajta.
=SZORZATÖSSZEG(INDEX(Termekek!$B$2:$G$23;0;HOL.VAN(Felhasznalas!E$1;Termekek!$B$1:$G$1;0));TRANSZPONÁLÁS(Rendelesek!$B9:$W9))
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Mutt
aktív tag
válasz Aladaar #41574 üzenetére
Szia,
Ha A2-ben van az eredeti szöveged, akkor ez visszaadja az első számig a karaktereket.
=KIMETSZ(BAL(A2;HAHIBA(HOL.VAN(IGAZ;SZÁM(KÖZÉP(A2;SOR(INDIREKT("$A$1:$A"&HOSSZ(A2)));1)*1);0)-1;HOSSZ(A2))))
Ctrl+Shift+Enter-t kell majd nyomod bemásolás után, mert tömb-függvény.
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
bozsozso
őstag
Az első szorzatösszeg példa azért nem jó, mert nem egyeznek meg a sorok és az oszlopok száma.kb.100 termék és kb 20 anyag. Eddig ezt a megoldást használtam csak bővültek a termékek és az anyagok így mindig változtatnom kell rajta.
A második nem akar működni.
Nekem valahogy ebben a cellák nem állnak össze. Az INDEX függvénynél a tömb az oké, hogy csak az értékekre vonatkozik, de miért van fixen a 0.sor megadva?A b3 cellában nem a B$1-et kellene keresni a HOL.VAN függvénnyel?
-
Mutt
aktív tag
válasz bozsozso #41577 üzenetére
Hali,
Ha 100 terméked van a termék lapodon, akkor a rendelt munkalapodon mindegyik terméknek kell egy oszlop (vagyis ott 100 oszlop kellene hogy legyen).
A képernyőmentés szerint van 38 terméked (3-40 sorig), de a rendelt munkalapon csak 28 oszlopot jelöltél ki a B3:AC3 tartománnyal. Ez hibához vezet. 38 sorhoz, 38 oszlop kell (azonos sorrendben kell lenniük itt és ott is a termékeknek hogy helyes eredmény legyen).
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
bozsozso
őstag
-
EmberXY
addikt
Sziasztok!
Diagrammal kapcsolatos kérdésem lenne.
Egy táblázatban termékek fogyása fel feltüntetve, a beszerzési ár és a mennyiség szorzata alapján szeretném csoportosítani ezeket egy diagram segítségével. Mivel a táblázat termékcsoportonként mutatja az egyes tételeket, nincs sorba rendezve, emiatt a diagramon is "össze-vissza" látszanak az értékek.
A kérdésem az lenne, hogy diagramon belül van-e lehetőség az adatok sorbarendezésére, vagy mindenképp olyan sorrendben fognak látszódni mint ahogy a kijelölt tartományban vannak?
Válaszokat előre is köszönöm.Up the Irons!
-
bozsozso
őstag
Sziasztok,
Nem nagyon tudok szabadulni innen. Azt meg lehet határozni egy kimutatásnál, hogy a végösszesen sor ne a legvégén hanem az elején legyen? Fontos lenne, mert ezzekkel az értékekkel még tovább szeretnék számolni, de így hogy mindig ha több sor kerül be frissítéskor akkor ennek a helye is változik.
-
bobsys
addikt
Sziasztok, hogyan lehet egy formulaban hivatkozni egy cella ertekere?
Konkretabban van egy ilyenem, hogy =countif(A1:A20,"*akarmi) es ezt szeretnem ugy megcsinalni, hogy a *akarmi helyett egy masik cellaban levo erteket rakjon be. Van vagy 100 sorom ahol meg kell kulonbozo "akarmit" szamolni es nem szeretnem egyesevel modositgatni a formulat.Enterprise Admin? Kirk kapitany leszel? - Ne törődjél semmivel, egyél zsömlét kiflivel
-
Fferi50
őstag
válasz bozsozso #41591 üzenetére
Szia!
Csak ötletek:
- a függvénnyel csinálsz segédcellákat, minden tétel összesen sorára, amire szükséged van és ezeket a cellákat használod a továbbiakban.
- Hol.Van függvénnyel megkeresed a Végösszesen sort és az Index függvény visszaadja a teljes sort neked.=SZORZATÖSSZEG(INDEX(B1:X5000;Hol.Van("Végösszesen";A1:A5000;0);0);TRANSZPONÁLÁS(Y1:Y23)
A kimutatásod az A oszlopban kezdődik és az X oszlopig tarthat, max 5000 sorral. Az oszlopszám és a sorok száma is növelhető. Az Index függvény azt a sort fogja használni, amelyikben a HOL.VAN függvény megtalálja a Végösszesen szót az A oszlopban. A másik tényező az Y oszlopban van, természetesen a saját feltételeidnek megfelelően állítod be.
Üdv.[ Szerkesztve ]
-
Polllen
nagyúr
Sziasztok!
Egy kis segítségre lenne szükségem.
BI-ból töltünk le adatokat, ahol a a dátumok "16.08.2019" formátumban jönnek le, az angol excel viszont (gondolom a magyar régiós beállítások miatt) nem ismeri fel dátumként. Pl. ha ebből az értékből kivonom a today() függvényt, hibára fut.
Az isdate() viszont simán elfogadja dátumnak...
Hogyan tudnék ezekkel a dátumokkal a legegyszerűbben dolgozni? Most azt csinálom, hogy Date()-tel kicserélem "2019.08.16" formátumra, de ez így elég macera. Ráadásul a csavar az, hogy ha én töltöm le az adatokat, nálam a dátum jól jelenik meg. Viszont ha broadcastelem, a szerver már így küldi ki...
"Odamentem egy párhoz...négyen voltak!"
-
Nagyzoli27
kezdő
Üdv!
Azt szeretném kérdezni, hogy egy cellán belül hogy lehet az ismétlődő értékeket kivenni?
Az alábbi példában a kijelölt részt például:NYCY 5X 2,5 RE/2,5 NYCY 5X 2,5 RE/2,5 mm2 kábel 0,6/1kV
Köszönöm
-
lappy
őstag
válasz Nagyzoli27 #41594 üzenetére
saját függvénnyel
Function RemoveDupes2(txt As String, Optional delim As String = " ") As String
Dim x
'Updateby20140924
With CreateObject("Scripting.Dictionary")
.CompareMode = vbTextCompare
For Each x In Split(txt, delim)
If Trim(x) <> "" And Not .exists(Trim(x)) Then .Add Trim(x), Nothing
Next
If .Count > 0 Then Remove= Join(.keys, delim)
End With
End FunctionBámulatos hol tart már a tudomány!
-
Delila_1
Topikgazda
válasz Polllen #41593 üzenetére
Kijelölöd a módosítandó oszlopot, Szövegből oszlopok, Tovább, Tovább, a dátumnál megadni, hogy az eredeti NHÉ, OK.
Ezt rögzítheted makróban, amit új letöltés után indíthatsz.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.