-
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
-
EmberXY
veterán
Sziasztok!
Egy számomra eddig ismeretlen problémával találkoztam, de lehet, hogy csak én vagyok láma hozzá...
Adott egy Excel tábla, amiben az oszlopok valamiért csak a C oszloptól kezdve látszódnak. Korábban nem volt ilyen gond, több ehhez hasonló táblával dolgozom, sehol ilyen még nem fordult elő. Nincs Elrejtés opció bekapcsolva az oszlopokon, illetve az Ablaktábla rögzítés sem kavar be, az alsó csúszka is teljesen a bal szélen van. Ami érdekes, hogyha a cellákat léptetem balra a C oszlopból indulva, akkor felül a szerkesztősávon látszik minden cella tartalma, tehát ott van minden, de érthetlen számomra, hogy az A és B oszlop hogyan tűnhetett el... [kép]
Mit állíthattam el?
Ha van valakinek ötlete, azt nagyon megköszönném. -
Mutt
senior tag
válasz
Carasc0 #45230 üzenetére
Szia,
Egy Excel for Ipad és Excel 2016 között kb hány %-os kompatibilitás van?
Nincs aktív tapasztalatom Excel Apps-al IOS-en, de MS súgót olvasva, ezt látom:
- Nézegetésre megfelelő.
- Szerkesztésre csak az alap fájlformátumok mennek.
- A függvények teljes mértékben mennek, tömb-képletek is (csak újat nem fogsz tudni létrehozni).
- Pivot, fejlesztőeszköz (gombok, vezérlők), VBA nincsen.Kezdő szinten szerintem 100%-os a kompatibilitás, haladó szinten 50%-ot mondanék.
Üzleti fájlok létrehozására alkalmatlan, max. prezentálni lehet vmit vele.üdv
-
Mutt
senior tag
válasz
DeFranco #45237 üzenetére
Szia,
Támogatja a VBA-t, illetve Office 2013-tól lehet már használni az Office Script-et is, ami nem a fájlban hanem szerveren tárolja a makrót.
üdv
-
Mutt
senior tag
válasz
Lokids #45235 üzenetére
Szia,
Office 365-ben használd az EGYEDI (UNIQUE) képletet.
Ha régebbi Excel-ed van, akkor pedig egy csúnya tömb-képlet van. https://exceljet.net/formula/extract-unique-items-from-a-listüdv
-
Delila_1
veterán
válasz
tomi_x #45243 üzenetére
Kevés megjegyzés esetén rákattintasz a megjegyzésre, majd a Delete gombbal kitörlöd.
Sok megjegyzésnél érdemes egy rövid makró futtatni.
Sub OhneMegj()
Dim sz As Object
For Each sz In ActiveSheet.Comments
sz.Shape.Select True
Selection.Delete
Next
End SubLátod, a makró kijelöli, majd kitörli egyenként a megjegyzéseket. Ha elhagyjuk a kijelölést, valamiért a cella jobb felső sarkában megmarad a kis piros háromszög, és nem is enged új megjegyzést beszúrni oda.
Szerk.: Lehet, hogy a képen látható, megjegyzés kinézetű szöveg nem megjegyzés, hanem egy érvényesítéshez csatolt útmutató.
-
Fferi50
Topikgazda
Szia!
Az előző választ kiegészítve:
Előkerestem a mintámat, a következőt találtam: A körlevél mintában minden lehetséges mező fel van tüntetve. Ahol nincs az Excelben érték, ott természetesen nem hoz adatot, üres marad a mező.
Néhány kép:
Az Excel munkalap
A Word körlevél mezőkkel:
A Word körlevél feltöltve (majdnem) minden mező:
A körlevél hiányos mezőfeltöltéssel:Üdv.
-
Delila_1
veterán
válasz
zsolti_20 #45232 üzenetére
Erre már válaszoltam. A képlet
=JOBB(Munka1!A2;HOSSZ(Munka1!A2)-6)*1
Az előző válaszhoz képest annyi a változás, hogy akkor azonos lapon volt a szöveg+szám, itt másikra kell a képlet. Még az is változott, hogy ott csoport szerepelt, itt meg group, ahol a karakterek száma eltér.
-
Fferi50
Topikgazda
Szia!
Az Excelben az egy szerződéshez tartozó tételeket egy sorban kellene felvinni. A körlevél sablonban pedig minden tétel helyét meg kell határozni. Természetesen nem árt egy maximális tételszámot megadni, aminél több egy rendelésben nem lehet - vagy ilyenkor 2/több sorban kell rögzíteni a rendelést.
El lehet érni, hogy az üres tételek ne jelenjenek meg a körlevélben. Erre volt egy példám, de időbe telik előkeresni.
Üdv. -
Fferi50
Topikgazda
válasz
Lokids #45235 üzenetére
Szia!
Képlet szerintem nincs erre. Viszont az adatok - ismétlődések eltávolítása megoldja a feladatot. Először átmásolod egy új oszlopba az egészet és azon hajtod végre.
Másik lehetőség a Speciális (lánykori nevén Advanced) szűrő, ahol lehetőség van az egyedi adatok kiszűrésére és más helyre áthelyezésére is.
Üdv. -
DeFranco
nagyúr
Sziasztok!
Lehet felmerült már kérdésként, a keresőben nem találtam megfelelő találatot:
Az office 365 támogatja a VBA-t / makrót vagy sem? A neten többféle információ kering, fontos lenne tudnom, hogy egy esetleges váltásnál maradhatnak-e a scriptjeim vagy át kellene őket írni.
Ha egyes verziók (ha van több o365 verzió) támogatják míg mások nem, akkor ebben is szeretnék tisztán látni ha lehetséges.
-
szbie
újonc
Sziasztok!
Szeretnék egy kis segítséget kérni. Olvasgattam a fórumon , de nem találtam meg a választ. Körlevéllel kapcsolatban lenne kérdésem. A probléma a következő:
Van egy excelem adatokkal (tételenként elkészítve), körlevelet készítek belőle ez is rendben. Ami a problémát okozza, hogy lehet-e körlevélben csoportosítani? Ahhoz, hogy jobban értsétek a problémát adott egy szerződés ami több tételt tartalmaz, a partnert ki kéne értesítenem tételenként, hogy hány darab készült el. Igen ám de egy adott partnerhez több tétel tartozik és 1 partnernek nem írnék 10 levelet, ha mondjuk a szerződésben szereplő tételekből 10 db készült el. Esetleg erre lenne megoldás?
Köszönöm
-
Lokids
addikt
Sziasztok!
Excelben melyik képlet képes arra, hogy ha van egy táblám pl:
alma
alma
körte
alma
retek
répa
retek
szőlő
alma
körteakkor a végeredménybe felsorolja egymás alá a tételeket, de csak 1x?
Fentiből ez legyen az eredmény:
alma
körte
retek
répa
szőlő -
Véreshurka
senior tag
Sziasztok!
Nem tudom mennyire illik ide a kérdésem, de a win10 topikban nem érkezett válasz, gondoltam itt is megkérdezem:
Tudnátok-e abban segíteni, hogyha a fájlkezelőből megnyitok egy excel táblázatot akkor az a táblázat csak a háttérben nyíljon meg? Most már kezd nagyon zavaró lenni, hogy más táblázatot is megnyitnék, de mindig felugrik a előzőleg megnyitott táblázat.Előre is köszönöm!
-
Mutt
senior tag
válasz
Misi_D #45222 üzenetére
Szia,
Ezt próbáld ki.
1. Fájl importálása Power Query-be.
2. Majd csoportosítás és a keresd meg id-nként a ciklusszámláló maximumát.
3. Most jön egy furcsa lépés, de így a legyegyszerűbb. Szóval lekérdezések egyesítése és ott válaszd ki a táblát kétszer és add meg hogy az id és a ciklusszámláló alapján keressen belső egyezést.
4. Jön a második furcsa lépés, de ehhez M-kódot kell módosítani. A szerkesztő lécen vmi ilyen kód lesz:Ahol a #"Sorok csoportosítva" egy hivatkozás egy korábbi lépésre aminek egy tábla az eredménye. Power Query-ben nem kötelező a közvetlen előző lépésre hivatkozni, lehet bármelyik korábbira hivatkozni. Nekünk pedig az a lépés kell ami még az eredeti (nem csoportosított adatsort) tartalmazza. Az én esetmben ezt a lépést "Típus módosítva"-nak hívják. Még egy módosítás kell, "max" oszlop nincs az eredeti táblázatban hanem ott nekem "counter" van ezt is le kell cserélni.
Ha ezeket javítod akkor ez lesz az eredmény:
5. Most már csak ki kell bontanod a Sorok csoportosítva oszlopot és megkapod kívánt eredményt.
üdv.
Ps. Ha a nagy fájl miatt lassú lenne a feldolgozás, akkor még egy trükk. Lehet puffereltetni egy adott táblát.
Az én esetemben a "Típus módosítva"-t érdemes. Ehhez azt kell csinálni, hogy ezen lépés után beszúrsz egy új lépést (pl. új oszlop hozzáadása). Majd a kapott M-kódot felülírod ezzel: = Table.Buffer(#"Típus módosítva") -
Mutt
senior tag
válasz
zsolti_20 #45217 üzenetére
Szia,
Power Query-s megoldás VBA-mentesen.
1. Alakítsd át a listát és a szűrőt 2 táblázattá.
2. Ezek után Adatok -> Táblázatból vagy tartományból opcióval töltsd be Power Query-be az egyik táblázatot.
3. Kezdőlap -> Bezárás és betöltés -> ... adott helyre majd válaszd a csak kapcsolatot.
4. 2-3-as lépést csináld meg a szűrővel
5. Kapcsolatok alatt jobb klikk a lista lekérdezésen és Szerkesztéssel menjünk vissza a Power Query szerkesztőbe.
6. Most számoljuk meg hogy hány eleme van az egyes csoportoknak. Ehhez a Kezdőlapon a Csoportosítási szempontot használd. Itt elég a sorokat megszámolni, de ha nem bánod akkor haladó üzemmódban inkább ezt állítsd be:
7. Az Elemek egy beágyazott tábla, ami tartalmazza az eredeti listádat és ebből ki fogjuk nyerni a tételeket.
(Természetesen lehet ezt sima lekérdezés egyesítéssel helyettesíteni, ha a hagyományos utat választanád.) Adj egy új oszlopot a táblázathoz, aminek ez legyen a képlete: =[Elemek][Tetel]
8. A Tetel oszlop jobb felső sarkában lévő ikonra kattints és válaszd a kibontást új sorokba. Ezzel visszakaptuk az eredeti listát, csak most már tudjuk hogy hány elem van egy csoportban.
9. Jöhet a Kezdőlap -> Lekérdezések egyesítése. Itt kiválasztjük a szűrő lekérdezést és a közös oszlopot kijelöljük. Alul javasolt a Belső (egyező sorok) opciót használni.
10. Most megint meg kell számolnunk, hogy egyes csoportokban hány elem van. Hasonlót csinálunk mint a 6-os lépésben.
11. Megint lett egy beágyazott táblánk, amiből megint kellenek a tételek, de nyerjük ki még az eredeti elemszámot is. A tételeket ugyanúgy mint a 7-es lépésben egy új oszloppal kapjuk meg.
12. Az eredeti elemszámhoz szintén egy új oszlop kell, aminek a képlete ez: =List.Min([Tetelek][Elemszám])
13. Már látszik, hogy nekünk csak azok a sorok kellenek, ahol az eredeti és az új elemszám azonos. Ehhez megint kell egy új oszlop. Képlete: =[Elemszám]=[EredetiElemszám]
14. Az új oszlopban szűrjünk rá a TRUE sorokra.
15. Töröljük a felesleges oszlopokat (csak a csoport és a tétel kell)
16. Tétel oszlop jobb felső sarkában megint kibontás sorokba.
17. Eredmény visszatöltése Excelbe, Kezdőlap -> Bezárás és betöltés.
18. Jobb klikk megint a Lista lekérdezésen és válasszuk a Betöltés helyét, majd Táblázat.üdv
Ps. VBA-val limitáltan lehet módosítani a Power Query-t.
-
Carasc0
őstag
Sziasztok.
Egy Excel for Ipad és Excel 2016 között kb hány %-os kompatibilitás van?
-
Fferi50
Topikgazda
válasz
Misi_D #45226 üzenetére
Szia!
Egy lehetőség, logikai szinten leírva:
Az első előfordulást beteszed a munkalap következő sorába. A következő előfordulásnál megkeresed, hol van a munkalapon, megnézed a másik változó értéke milyen, ha nagyobb, akkor kicseréled a sort az újra, ha nem, akkor hagyod békében.
Ezt csinálod végig a fájlon.
Előny, hogy akkor is használható, ha a csv fájlban nem sorban vannak az ID-k.
A munkalapon kereshetsz a Range.Find metódussal vagy kereső függvényekkel egyaránt.
A beolvasásnál a kinput változóban a teljes sor kerül. Ebből neked kell meghatározni, hol az id és a számodra szükséges változó adata. Ha tudod, hogy hanyadik oszlopban van, akkor pl. használhatod a Split függvényt, amelyik a megadott határoló (pl. pontosvessző - ; - ) szerint egy tömbbe transzformálja a szöveget. A tömb indexe 0-val indul. Innen már meg tudod kapni a keresett adatokat.
Egy példa:Sub beolvaso()
Dim utja As String, fnev As String, kinput As String, fc As Byte, cl As Range, bejott, holvan As Range
utja = "C:\Users\user\Documents"
fnev = "\xxx.csv"
fc = FreeFile()
Open utja & fnev For Input As #fc
Set cl = ActiveSheet.Cells(1, 1) 'az aktív munkalap első cellájába kerül az első adat
'ha nem ide szeretnéd, akkor változtasd meg a Cells paramétereit
Do While Not EOF(fc)
Line Input #fc, kinput
bejott = Split(kinput, ";") 'egy tömbbe transzformáljuk a bejött adatot
'megkeressük az azonosítót az első oszlopban. Ha nem ide tetted, akkor írd át az oszlop számát
'ha nem az input első adata az ID akkor bejott(0) paraméterét írd át a megfelelő oszlopra
Set holvan = ActiveSheet.Columns(1).Find(what:=bejott(0), LookIn:=xlValues, lookat:=xlWhole)
If holvan Is Nothing Then 'ha még nincs, akkor bejegyezzük az első szabad sorba
'cl.Value = kinput 'ez a sor egy cellába tenné a teljes inputot
Range(cl, cl.Offset(0, UBound(bejott))).Value = bejott ' így viszont külön cellába kerülnek az értékek
Set cl = cl.Offset(1, 0) 'ez lesz a következő üres sor első cellája
Else
If holvan.Offset(0, 2).Value < bejott(2) Then 'ha a változó nem a második az adatok között, akkor
'mindkét 2-est írd át megfelelőre - az offset és a tömb paramétere is 0-tól indul.
Range(holvan, holvan.Offset(0, UBound(bejott))).Value = bejott 'kicseréljük az újra
End If
'MsgBox kinput
End If
Loop
Close #fc
MsgBox "Az input kész!"
End Sub
Remélem, sikerül.
Üdv. -
Fferi50
Topikgazda
válasz
Misi_D #45224 üzenetére
Szia!
Excelben van lehetőség arra is, hogy egy fájlt direkt eléréssel nyiss meg és olvass be. Így megoldható, hogy csak azt a rekordot tedd be a munkalapra, amelyikre szükséged van.
Itt a példa:Sub beolvaso()
Dim utja As String, fnev As String, kinput As String, fc As Byte
utja = "C:\Users\user\Documents"
fnev = "\xxx.csv"
fc = FreeFile()
Open utja & fnev For Input As #fc ' file megnyitása
Do While Not EOF(fc)
Line Input #fc, kinput 'egy teljes sor beolvasása a fájlból
MsgBox kinput 'itt megnézheted, mit olvastál be, ennek a helyére ill. ez után jöhet feldolgozás
Loop
Close #fc ' fájl bezárása
End Sub
Ez csak a fájlművelet, természetesen az excel munkalap kezelését is meg kell oldanod előtte illetve közben.
Remélem hasznos lesz neked.
Itt találsz a Line Input-ról súgót, illetve innen megtalálod a direkt fájlkezelés példáit is. [link]
Üdv. -
Misi_D
tag
válasz
Delila_1 #45221 üzenetére
Köszi!
Excelben már megy nekem is, nem ez a gond.
Túl nagy a csv fájl, s mivel a 90%-a haszontalan adat, már a betöltéskor/közben meg szeretném szűrni. Tehát olyan megoldást keresnék, ami során sql-el (vagy M vagy DAX....) meg tudnám szűrni "on the fly" a csv tartalmát. -
Delila_1
veterán
-
Delila_1
veterán
-
Misi_D
tag
Sziasztok!
Lenne egy csv fájl, amit importálnom kellene excelbe, de úgy, hogy már megszűröm, nem kell minden rekord belőle.
A csv fájl többek között nem distinct id-kat, valamint ciklusszámlálót is tartalmaz - utóbbi egy érték 1-től x-ig, az adott id x különböző alkalommal (rekorddal) szerepel a csv-ben, viszont id-nként az x különböző mértékű lehet. Tehát pl az aaa id 22-szer szerepel, a ciklusszámláló pedig rekordonként 1-től 22-ig veszi fel az értékeket, a bbb id 18-szor, melynél a számláló 1-től 18-ig számlál.
Nekem az import során id-nként csak a legmagasabb ciklusszámú rekordra lenne szükségem. Ezt a szűrést hogyan lehet megoldani? Gondolom powerquery, de az M-hez annyira nem értek...Köszönöm!
-
zsolti_20
senior tag
Sziasztok. Segitseget szeretnek kerni konvertalassal kapcsolabtan. Mar megprobaltam mindent de egyszeruen nem tudok szovegbol szamot generalni.
Power Queryt hasznalok hogy adatokat osszegezzek. A tablazathoz ez a sor van megadva: ""Group " & Text.From([Index])". Elvileg itt konvertalja nekem textre.
Ezt az oszlopot szeretnem hasznalni VBA scripthez ami kepes keresest csinalni ezzel a sorral : "Application.Match(csoport, Columns(1), 0)"
De itt mindig megakad Run time error "13": Type mismatchra hivatkozva. Probaltam hasznalni seged oszlopot ahol levagom a Group reszt es csak a szam marad meg belole, szoval pl Group 1,Group 2, Group 3, ez levagva 1,2,3 de ugyan ugy hibat dob ki. Probaltam ezt =VALUE-val megadni, de ezt sem akarja, sot ha levagom a text reszet es csak a szamok maradnak es azt masolom at manualisan azt sem fogadja el. Csak azt hajlando elfogadni ha kezzel manualisan adom meg a szamozast.
Mar vegig probaltam mindent de itt elakadtam sajnos. -
Delila_1
veterán
válasz
Lokids #45212 üzenetére
Így egyszerűbb.
Sub mmm()
Dim s_rnG As Range, p_Osszeg, s_Cell As Range, ev As Integer, honap As Integer
Set s_rnG = Range("ADU2:ADX5")
p_Osszeg = 500
For Each s_Cell In s_rnG
If Year(s_Cell.Value) = Left(Cells(1, s_Cell.Column), 4) * 1 And Month(s_Cell.Value) = Right(Cells(1, s_Cell.Column), 2) * 1 Then
s_Cell.NumberFormat = "General"
s_Cell.Value = p_Osszeg
End If
Next
End Sub -
Lokids
addikt
válasz
Delila_1 #45211 üzenetére
Köszi a választ.
Nem rossz ötlet, hogy case-el megadom, hogy melyik szám melyik év/hónapot takarja.
De akkor sem kerülöm ki azt, hogy tíz év esetén 120 caset kelljen rögzíteni.Kis pontosítás: A makró egy másik listából dolgozik, ahol 1 sor 1 beszerzés.
Itt van olyan tétel, hogy szerződéskötés dátuma és szerződés összege.
A makró által létrehozott új munkafüzetben a fejléc az az év+hónap (2020.01 -> 2023.12) lesz.A lényeg, hogy ha a dátum 2022.01.22, akkor a Szerződés összegét a 2022. 01oszlopba rakja
-
Delila_1
veterán
válasz
Lokids #45210 üzenetére
Egy leegyszerűsített példa
Sub mmm()
Dim s_rnG As Range, p_Osszeg, s_Cell As Range, ev As Integer, honap As Integer
Set s_rnG = Range("ADU2:ADX5")
p_Osszeg = 500
For Each s_Cell In s_rnG
Select Case Cells(1, s_Cell.Column)
Case 801: ev = 2020: honap = 1
Case 802: ev = 2020: honap = 2
Case 803: ev = 2020: honap = 3
Case 804: ev = 2020: honap = 4
End Select
If Year(s_Cell.Value) = ev And Month(s_Cell.Value) = honap Then
s_Cell.NumberFormat = "General"
s_Cell.Value = p_Osszeg
End If
Next
End Sub -
Lokids
addikt
Sziasztok!
Hogy kell kezelni normálisan makróval azt a problémát, hogy van 1 változó ami dátum.
Ez alapján egy másik változót (szám) el kell helyezni a megfelelő cellába.Eddig 1 évet kértek, ezért én csináltam 12db if-elseif elágazást. Viszont most meggondolták magukat és 3 évet kérnek. És valahogy nem tűnik jó ötletnek 36 db if-et odadobni. Főleg ha majd 10 évet akarnak.
Jelenleg ezt csinálom:
For Each s_Cell In s_rnG
s_CNum = Workbooks(Main_WB_Name).Worksheets(Likvid_WB_Head_Sheet).Cells(4, s_Cell.Column)
If s_CNum = 801 And s_Datum > "2019.12.31" And s_Datum < "2020.02.01" Then
s_Cell.value = p_Osszeg
ElseIf s_CNum = 802 And s_Datum > "2020.01.31" And s_Datum < "2020.03.01" Then
s_Cell.value = p_Osszeg
CNum-al adtam mind a 12 oszlopnak egy számot (801-812), hogy hogy adott hónapban adott mezőbe kerüljön az összeg.
Ezt hogy lehetne egyszerűbben? -
Delila_1
veterán
A Munka1-től Munka4-ig marad úgy, ahogy a 45202-es hsz képe mutatja.
Az összesítő lapon vegyél fel egy új oszlopot. Itt az A oszlopba kell beírnod a keresendő értéket, az új oszlopba pedig a lap nevét. Ezeket érvényesítésből is kiválaszthatod, hogy ne legyenek elírások.A B2 cella képletete
=HAHIBA(INDEX(INDIREKT($G2 & "!$A$1:$G$10");HOL.VAN($A2;Munka1!$A:$A;0);HOL.VAN(B$1;Munka1!$1:$1;0));"–")
amit jobbra és le is másolhatsz. Nem létező adat, vagy lapnév esetén "–" lesz a beírás. -
Zoty4
őstag
válasz
Delila_1 #45202 üzenetére
lehet rosszul fejeztem ki magamat.
Ezt a függvényt szeretném úgy modosítani hogy a többi munkalapról is be tudja kérni az adatokat:
=INDEX(Munka1!$A$1:$G$6;HOL.VAN($A2;Munka1!$A:$A;0);HOL.VAN(B$1;Munka1!1:1;0))
Ha csinálok egy 10-es összehasonlítást akkor mindegy melyik lapon legyenek, meg tudja jeleníteni.
Csak előfordulhat h munka1 és munka2-n is szerepelhet ugyanaz az árú, ez nem hiszem h gond, csak megemíltettem
Új hozzászólás Aktív témák
- ÁRGARANCIA!Épített KomPhone i9 14900KF 64GB RAM RTX 5080 16GB GAMER PC termékbeszámítással
- Samsung Galaxy A05s 64GB Kártyafüggetlen 1Év Garanciával
- MacBook felvásárlás!! MacBook, MacBook Air, MacBook Pro
- BESZÁMÍTÁS!ASUS B650M R5 7600X 64GB DDR5 1TB SSD RTX 3080Ti 12GB Be Quiet! Pure Base 500FX ASUS1000W
- DDR3 BAZÁR! 8GB 16GB 1333MHz 1600MHz 2400MHz DDR3 memória garanciával hibátlan működéssel
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest