- Programajánló: közeleg az idei Bacsis-tuning Retró Számítógép kiállítás
- Computex 2025: az Akko klaviatúráira nem mondható, hogy unalmasak
- Computex 2025: szinte mindenre gondol a Team Group
- ATX 3.1-es tápokkal gyarapodott az MSI MAG termékcsaládja
- Még mindig nem döntött az ASML High-NA gépeiről a TSMC
- Vezeték nélküli fülhallgatók
- Androidos fejegységek
- TCL LCD és LED TV-k
- Riasztó topik
- Intel Core Ultra 3, Core Ultra 5, Ultra 7, Ultra 9 "Arrow Lake" LGA 1851
- Fejhallgató erősítő és DAC topik
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- VR topik (Oculus Rift, stb.)
- Kormányok / autós szimulátorok topikja
-
PROHARDVER!
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
-
Fferi50
Topikgazda
Szia!
Talán megpróbálhatnád az alábbi lépéseket:
1. Az első sorban, vagy ha az foglalt a fejléceknek, akkor az adatok utáni sorban számozd be az oszlopokat 1 -től a végéig.
2. A következő sorban számozd be azokat az oszlopokat, amelyekkel számolni szeretnél. Én az első oszlopot otthagynám.
3. Az adatokat kijelölni - az eredmény oszlopot kihagyva természetesen
4. Adatok - rendezés - irány balról jobbra - utolsó sor szerint
5. A rendezés után egymás mellé kerülnek a kívánt oszlopok, így alkalmazható a DARABTELI függvény.
6.FONTOS! Az eredmény oszlopot kijelölöd - másolás - irányított beillesztés értékként
7. Adatok - rendezés - balról jobbra - utolsó előtti sor szerint (ami az eredeti sorrendet tartalmazza).
Ezzel kész a feladat.
Így néz ki a képletezésre előkészített táblázat:
Megcsinálni gyorsabb, mint az egészet elolvasni!
Üdv. -
föccer
nagyúr
Jó volna PBI-is foglalkozni. Még nem szántam rá magamat, h rászánlam az időmet. Illetve a kritikus rendszerekhez nem is adnak még olvasási jogot sem, hogy direkt felcsatlakozzam az adatbázis szerverre. Mondjok ezt az excel is meg tudná csinálni, de nem eröltetem.
üdv, föccer
-
spe88
senior tag
D2: =HA(A2=A$18;SOR();"")
E2: =DARAB(D2:D12)
F2: =HAHIBA(KICSI($D$2:$D$12;$E$2-(SOR(A1)-1));"")
G2: =HAHIBA(INDEX($B$1:$B$12;F2)-INDEX($B$1:$B$12;F3);"")
H2: =MAX(G2:G17)Természetesen ágyazhatod egymásba a képleteket és akkor nem kell ennyi segédoszlop, csak így egyszerűbb megérteni.
Szerintem erre gondoltál
-
spe88
senior tag
Köszi szépen, kipróbálom.
Sztem, amúgy wwhy-nak nem erre van szüksége, hanem, hogy az adott rendszámból a 4 út közül melyik volt a leghosszabb út, tehát úgymond a kilométeróra-állásokból ki kell vonogatni az előzőeket, szóval kicsit bonyolultabb. Persze, lehet hogy én értettem félre.
-
Mutt
senior tag
Hali,
INDEX-el tudsz oszlopokat válogatni: a harmadik paraméter az oszlop választó és ha kapcsos zárójelben felsorolod, hogy a tartomány mely oszlopára van szükséged, akkor csak azok jelennek meg.
Angol nyelvű Excelben pontosvesszővel, magyarban backslash ("\") az oszlop elválasztó.
Ezek után szövegösszefűzéssel 1 cellába kiírattam az eredményt és azon megszámoltam az A-betüket.
Az egészet 1 lépésben is meg lehet csinálni ha nem kell a köztes eredmény. Microsoft365 esetén a LET függvénnyel még egyszerűsíteni is lehet:
Magyarul a képletek:
=SZÖVEGÖSSZEFŰZÉS("";IGAZ;INDEX(B2:L2;;{1\6\11}))
=HOSSZ(M2)-HOSSZ(HELYETTE(M2;"A";""))Ha Microsoft365-ön vagy akkor sima enter, korábbi változatokhoz Control-Shif-Enter kell az első képleten.
üdv
-
wwhy
veterán
Egy újabb kacifántos (számomra) kérdésben kérem a segítségeteket.
PéldaAdott egy autópark, ahol az autók A-ból B, C, D stb.-be mennek naponta, és ahol egy adott autó egy nap alatt megteheti az A-B, A-C, A-D utat is. A fuvar végén a sofőr beírja a rendszámot és a megtett km számát a napi elszámolás munkafüzetbe.
A kérdés az, hogy milyen képelttel (?) lehetne ebből a listából a leghosszabb utat átvinni az autólistába
Tehát lehet, hogy ABC123 autó megtesz 4 utat, 10, 20, 30 illetve 40 km-t, ezeket a sofőr mind beírja, de nekem csak a 40 km kellene az autolistában megjelenjen.
Nap végére egy nagyon hosszú lista alakul ki a napi elszámolás listában, szinte képtelenség kikeresni az adott rendszámhoz tartozó leghosszabb utat
Próbálkoztam a Keres fügvénnyel, de az megáll az első találatnál :/
-
spe88
senior tag
Igazából a sárga oszlopot csak illusztrációnak írtam be, hogy lehessen látni, hogy az adott sorban nem mindenhol kell, hogy összeszámolja, csak ahol sárga.
A Darabteli meg nem tud tört tartományokban számolni. Egyesével meg szintén nem akarok elnevezni tartományokat Aladárnár, Bélánál stb.
-
spe88
senior tag
Van arra megoldás, hogy a sárga tartományban található A-betűket megszámolja minden egyes embernél és kidobja a végeredményt, mint a kék oszlopban? Próbálkoztam a DARABHATÖBB fv-nyel, de az ebben az esetben nem működik.
Köszi szépen
-
spe88
senior tag
Van valami olyan megoldás Excelben, hogy elegánsan tudjak definiálni a Name Boxban egy tartományt, ami hosszabb, mint a megengedhető a karakterek száma?
Próbáltam, olyat, hogy elnevezek két tartományt mondjuk Range1 és Range2-nek, és akkor a névkezelőben nem a natív cellaneveket adom meg, hanem azt, hogy
=Range1;Range2
vagy=Munka1!Range1;Munka1!Range2
, de akkor sem működik.Köszi
-
Mutt
senior tag
válasz
föccer #51276 üzenetére
Szia,
Ha van időd, akkor nézz rá a Power BI-ra. A mondottak alapján jobb megoldás lehet, beépített time-inteligence funkciója segít az eltérő időintervallumok kezelésében, Power Query része makrót tud helyettesíteni és a DAX megoldja a számításokat viszonylag kis fájl méretben. Nálam 3 év adata kb. 1,5 millió sor és 30 oszlop 98 MB.
Hátrányt is mondok: DAX szivat ahol tud, Microsoft minden hónapban újabb változattal jön, amiben minden máshol van mint korábban, Power Queryben a legkisebb módosítás is újraszámolást eredményez ami miatt percekig nézem a homokórázó kurzort.
üdv
-
Fferi50
Topikgazda
Szia!
"a gépen dupla katt-al megnyitom az excel filet és amikor felugrik a password ablak, akkor VBA ismerje fel, hogy most egy "olyan" file-t nyitottam meg "
Én úgy gondolom, ez nem fog így menni. A fájlt makróból lehet jelszóval megnyitni, de ahhoz ismerni kell a fájl nevét:
Workbooks.Open Filename:=fájlnév,Password:=jelszó
A fájlnévnek az aktulális könyvtár esetén elegendő a név.kiterjesztés, másik könyvtár esetén a teljes elérési út szöveg formában (idézőjelek között). A jelszó szintén idézőjelek között, mert az is szöveg (akkor is ha szám!).
Tehát a makróból való megnyitáshoz ismerni kell a fájl nevét.
Ezt a DIR() parancs tudja szolgáltatni:
fájlnév=DIR("*.xls*") az első xls-el kezdődő kiterjesztésű fájl nevét adja vissza.
Ebben az Instr függvénnyel megnézheted, hogy szerepel-e a kívánt szövegrészlet.
A következő fájlnevet pedig a paraméter nélkül kiadott parancs adja vissza:
fájlnév=DIR()
Addig az első feltétel szerint keres, amíg meg nem változtatod a keresés feltételét.
Ha nem talál olyan fájlt, ami a keresési feltételnek megfelel, akkor üres lesz a fájlnév változó. [Itt találsz a DIR parancshoz helpet]
Üdv. -
Pá
addikt
válasz
Fferi50 #51283 üzenetére
Köszi!
Munkafüzetet nyitok meg.
Igazából ezek teljesen különálló fileok, megnyithatom őket a gépről is, shared driveról is, netről letöltve is, chatprogramon keresztül megkapva is stb...Igazából annyit szeretnék, hogy mondjuk a gépen dupla katt-al megnyitom az excel filet és amikor felugrik a password ablak, akkor VBA ismerje fel, hogy most egy "olyan" file-t nyitottam meg és írja be a jelszót magától és okézza le.
Az a nehézség, hogy ha jól tudom, akkor az Excel nem tekinti megnyitottnak a munkafüzetet, amíg a jelszót nem írtam be, így nem tudom mivel triggereljem a makrót, mert azt olvastam, hogy az openworkbook ebben az esetben nem működik.
-
Fferi50
Topikgazda
válasz
föccer #51276 üzenetére
Szia!
"De mivel tudom biztosítani, hogy 1 for-on belül a 4 sub úgy fut le, hogy szépen, megvárja az egyik a másik futását, és minden rendben kiszámolódik és lementődik."
Egyrészt - ugye egymás után indítod a subokat, tehát a következő csak az előző után futhat. Persze értem, a számolás végrehajtását is ellenőrizni kell, erre a következő utasítás sorozat lehet jó:
Do While Application.CalculationState=xlCalculating : Loop
Ez addig "áll", amíg a számolás be nem fejeződik . A ciklus belsejébe tehetsz egy várakozási üres ciklust is - pl. For x=1 to 5000 : Next - , hogy ne azonnal ismétlődjön a számolási állapotra a rákérdezés.
Üdv. -
Fferi50
Topikgazda
-
Fferi50
Topikgazda
válasz
föccer #51277 üzenetére
Szia!
Ha a terület egyforma, akkor az lehet a gond, hogy annak a munkalapnak kell aktívnak lenni, amelyikbe az értéket be szeretnéd illeszteni.
Egyébként használható a With utasítás is:Dim Akt_datum_oszlop As Integer
With Workbooks("Tech_elemzo_recet_mintavetel_v4_3.xlsm")
Akt_datum_oszlop = .Sheets("KEZELŐ").Range("H19").Value
MsgBox (Akt_datum_oszlop)
.Sheets("MBO_haladás").Activate
Range(Cells(4, Akt_datum_oszlop), Cells(37, Akt_datum_oszlop)).Value = .Sheets("KEZELŐ").Range(Cells(2, 20), Cells(35, 20)).Value ' MBO KPI
End With
MsgBox ("KÉSZ")
'Ha szükséges, akkor vissza aktíválhatod a.Sheets("KEZELŐ").Activate sorral az End With előtt a kezelő munkalapot. De magához az értékek kiolvasásához nem kell aktívnak lennie.
Üdv. -
Pá
addikt
Munkám során naponta megnyitok egy csomó excel munkalapot.
Az a közös bennük, hogy mindegyik ugyanazzal a jelszóval van védve és a filenév közepén van egy ugyanolyan rész, amiről felismerhetőek.Szeretnék a personal.xlsb-be egy makrót tenni, ami minden alkalommal beírja automatikusa a passwordot, amikor olyan file-t nyitok meg, aminek a nevében szerepel ez a kifejezés.
Ehhez kérnék egy kis útbaigazítást, hogy induljak neki. -
föccer
nagyúr
Object-definied error-t dob.
Akt_datum_oszlop értéke helyesen érkezik H19-ből. Ebbe az oszlopba kellene bemásolnia az eredményeket.
Kezelő fül T2:T35 értékei menjenek az MBO haladás fül 4-37 sorába, a kiválasztott, Akt_datum_oszlop oszlopáába.
Mi a gondja?
Biztos valami extra banális dolog.
Köszönettel ismételten a sok-sok segítségért.
Sub Eredmenyek_kimasolasa()
'
' Eredmenyek_kimasolasa Makró
'
'
Dim Akt_datum_oszlop As Integer
Akt_datum_oszlop = Workbooks("Tech_elemzo_recet_mintavetel_v4_3.xlsm").Sheets("KEZELŐ").Range("H19").Value
MsgBox (Akt_datum_oszlop)
Workbooks("Tech_elemzo_recet_mintavetel_v4_3.xlsm").Sheets("MBO_haladás").Range(Cells(4, Akt_datum_oszlop), Cells(37, Akt_datum_oszlop)).Value = Workbooks("Tech_elemzo_recet_mintavetel_v4_3.xlsm").Sheets("KEZELŐ").Range(Cells(2, 20), Cells(35, 20)).Value ' MBO KPI
MsgBox ("KÉSZ")
End Sub -
föccer
nagyúr
válasz
Fferi50 #51275 üzenetére
Egy kis WoT, hátha érthető az egész történet.
Főnökség ad-hoc jelleggel talál ki különböző statisztikai mutatókat és azokon "finomhangolnak" hogy éppen mit akarnak látni. 3 évre visszamenőleg, havi bontásban. Az egyes elemzéseket külön-külön rakom össze a táblákat és makróval pörgetem az időket bennük, betöltött alapadatokat. Alapadatok célszoftver riportáló eszközéből jönnek. Van hogy olyami kell, ami már meg van írva, csak más időintervallumra. Igen ám, de a gyártásfelügyeleti célszoftver nem minden riportban ad dátumot, csak a riport eszközben lehet beállítani, hogy milyen dátumok közötti adatokat adja meg. Így vagy havi bontásban szedegetem le a riporterből, vagy egy másik riporot hazsnálok, amiben van ugyan dátum, de nem arról szól amit nekem fel kell hazsnálnom. Így erre készítettem egy konverziót táblát, ami a dátumos riportból elkészíti a szükséges riport formátumot és azt átrakja az eredeti számoló táblába. Így lehúzom a 3 éves adatsort, bepakolom a konverziós táblába, ami legenerálja a szükséges riport formátumot a megfelelő havi bontásban és szépen megeteti a számoló táblával. Indítaná a számoló táblának a makróit, ami megcsinálja szsükséges elemzéseket, lementi az eredményt, majd jöhet a következő hónap, szűrés, riport generálást, adat átadás, elemzést mentés. És így tovább....
De akkor lehet azt kellene csinálni, hogy minden, már megírt makrót átrakok az riport konverziós excelbe és onnan vezérlek mindent. Igen ám ez jó is lehet, mert a 4 sub-ot bele fogom 1 for ciklusba ami végig megy a hónapokon. De mivel tudom biztosítani, hogy 1 for-on belül a 4 sub úgy fut le, hogy szépen, megvárja az egyik a másik futását, és minden rendben kiszámolódik és lementődik.
föccer
-
Fferi50
Topikgazda
válasz
föccer #51274 üzenetére
Szia!
Ha nem adod meg a munkafüzetet, akkor az éppen aktuális munkafüzetben fogja keresni a KEZELŐ nevű munkalapot, ha nem talál ilyet, akkor hibaüzenettel megáll.
Ilyen esetekben célszerű a munkafüzetet tartalmazó hivatkozást is megadni, tehát Workbooks("valami").Sheets("Kezelő").Range("H19").Value
Az előző kérdésedre egy kérdés: Melyik munkafüzetben van a második munkafüzetet feldolgozó makró? Szerintem annak is az első munkafüzetben kell lennie és akkor kell egy átpakoló makró - utána feldolgozó makró - utána kövekező lépés, kb. így:
For ciklus indul
átpakoló makró
feldolgozó makró
next
Ne felejtsd el, ha új munkafüzetet nyitsz, akkor az lesz az aktív munkafüzet, ha új munkalapot adsz hozzá, az lesz az aktív munkalap.
Üdv. -
föccer
nagyúr
válasz
föccer #51273 üzenetére
Illetve még annyi a kérdés.
Ha munkafüzet1-ben call-al meghívok egy sub-ot, ami a munkafüzet 2-ben fut és a futó sub-ban csak annyi van, hogy Akt_datum_oszlop = sheets("KEZELŐ").Range("H19").Value, akkor a munkafüzet1-ben keresi az értéket (ahol az első sub indult) vagy a munkafüzet 2-ben (ahová a call mutat)?
Köszi!
üdv, FG
-
föccer
nagyúr
Sziasztok!
Van egy adat feldolgozó munkafüzetem. Ez szépen paraméterezve, leválogat egy nagy adattömbből a szükséges elemeket és egy makróval átrakja egy másik munkafüzetbe a szükséges adatokat.
A másik munkafüzetbe a betöltött adatokon egy makró fut végig és készíti el a szükséges elemzést.
Hogyan tudom azt megoldani, h az első munkafüzet amikor átpakolja az adatokat a másodikba, akkor elinduljon a feldolgozó makró, és annak futása után (elemzés eredményei lementése után) visszavegye az irányítást és lépjen a következő ciklusba?
Ha az első munkafüzetbe simán berakom egy for ciklusba egy call metódussal, akkor megfelelő lesz? A for ciklus meg fogja várni, hogy lefusson a 2. munkafüzet makrója?
Első munkafüzetbe függvények válogatnak egy sima cellába kiválasztott dátum alapján. Ha a válogatás végig ment (kb 20-30 másodperc), akkor a Sub Adatok_atadasa_Tech_elemzonek() végzi el az adatok átadását, majd ott az Sub MBOKPI_szamitas() makró fut, ami megcsinálja a kalkulációt.
Amit még meg kell írni, de nem okoz gondot, hogy a kalkuláció eredményét kimentsem, illetve hogy pörgessem automatán a szűrést.
Köszönettel, Föccer
-
13128814
tag
válasz
Fferi50 #51270 üzenetére
Utána az AI:AR utolsó sora ami szintén sum függvényekből áll bemásolódik a következő helyre:
[link] (utolsó sor)
[link] (ide másolódik)Ami izgi, az az, hogy utána generálódik még egy pivot, viszont ott már azokat a kártyákat vizsgáljuk ahol a változás "1":
Biztos van szofisztikáltabb megoldás ezekre, én is csak örököltem ezt a feladatot, csak mivel simán elmegy 1 - 1,5 óra rá hetente, gondoltam megpróbálom lemakrózni. Az más kérdés hogy már annyi munkaórám van benne, mintha fél évig manuálisan töltögettem volna.
De ez a "tudás" már az enyém!
Végül is úgy oldottam meg, hogy bekapcsoltam a szűrőket, és utána húztam végig a képleteket:
With PSheet.PivotTables("PIVOT").PivotFields("változás")
.Orientation = xlPageField
.Position = 2
.PivotItems("0").Visible = True
On Error Resume Next
.PivotItems("(blank)").Visible = False
.PivotItems("1").Visible = False
On Error GoTo 0
End With
With PSheet.PivotTables("PIVOT").PivotFields("Elérhető")
.Orientation = xlPageField
.Position = 3
.PivotItems("1").Visible = True
.PivotItems("2").Visible = True
' Hide other items if present
On Error Resume Next
.PivotItems("(blank)").Visible = False
.PivotItems("0").Visible = False
On Error GoTo 0
End With
Bár ettől függetlenül nagyon zavar hogy ilyen lett, mert így nem tetszik. Kicsit tróger megoldásnak érzem. -
Fferi50
Topikgazda
válasz
13128814 #51269 üzenetére
Szia!
Az a kérdés, hogy mit teszel még utána vele. Szerintem az működhet, hogy a pivotot legenerálod, majd minden szűrés után a mellette levő területet "kitakarítod" és a fejléc + függvény subot futtatod - ez utóbbiba beleteheted a "takarítást" is (CleanContents).
Így nem kell minden szűréshez külön pivot generálás.
Üdv. -
13128814
tag
válasz
Fferi50 #51266 üzenetére
Először is köszönöm a válaszodat!
Ez a kimutatásadatotvesz nem lesz barátom.
De ez engem minősít és nem a képletet.
Akkor fordítsuk meg a dolgot, megmutatom az excelt hátha találunk egy kiskaput.
Alapvetően 3 excel van, van egy "generátor" amiből fut a makró, és tartalmaz olyan lapokat amikben benne vannak a sablonok. Az új excel alapja egy csv lekérdezés ami tartalmaz 300k+ sort. És tulajdonképpen az előző heti excelben lévő adatokat vetem össze az aktuálisat.
A generált excel releváns lapjai - amiben szeretném a pivotot legenerálni (ez a pivot tartománya, forrása):
A-tól G-ig az adatok egy lekérdezésből jönnek.
H-tól S-ig ezek képletek amiket a forráskódban tartok.
És ilyen pivotot szeretnék:
Ez már a szűrt állapot.
AH-tól behúzom az A oszlop tartalmát.
AI-tól pedig képletezve van szum függvényekkel, amiket képzelj így:
Tehát ezért lenne fontos hogy a pivot szűrése után eltűnjenek a mellette lévő sorok. És ugye mivel mikor manuálisan generálom le a pivotot, akkor pont úgyis viselkedik a többi sor, ahogy jó. Azaz egy szűrés után eltűnnek, ezért gondoltam azt hogy van valami beállítás.
De ha nincs! Akkor az emgoldás lehet, hogy valahogy úgy generálom le hogy már szűrve -> frissítem a pivotot, és utána futtatom le a fejléc + függvény subot?
-
Fferi50
Topikgazda
Szia!
"Hogyan lehet ezt megoldani?"
Kereső függvényekkel. De hogy jól lehessen alkalmazni, szükséges pár módosítás szerintem.
1.Az első sorban az összevont cellákat célszerű megszüntetni, helyette a kijelölés közepére igazítást javaslom alkalmazni.
2.Az E oszlopban a mérethatárokat szabatosabban kell meghatározni. A pontosan 3 átmérőjű termék melyik kategóriába tartozik? Az 1-3-ba vagy a 3-6-ba? Ugye, hogy nem mindegy az eltérés paraméterek miatt?
3. A kereső függvény használata érdekében a mérethatárokat egy számmal kellene megadni az E oszlopban, egyértelműen, mindig az alsó határt és jó lenne, ha az eltérés méretek nem egymás alatt, hanem egymás mellett lennének.
Ezekkel a módosításokkal lehetne igazán jó képletet alkotni szerintem.
Üdv. -
3DFan
aktív tag
Sziasztok! A következő táblázatból szeretnék tartalmat kinyerni három bemenő adat segítségével. Hogyan lehet ezt megoldani? Köszönettel. [kép]
-
Fferi50
Topikgazda
válasz
13128814 #51265 üzenetére
Szia!
A kimutatás szűrő vagy szeletelő valóban nincs hatással a kímutatáson kívül levő területre. Ez általában hasznos is, de természetesen - ahogyan esetedben - ez nem feltétlenül szerencsés.
Javaslom, hogy nézd meg a GETPIVOTDATA (magyarban KIMUTATÁSADATOT.VESZ) függvényt, ahol a kimutatás állapotától némileg függetlenül mindig a kívánt adatot kapod vissza. Azért némileg függetlenül, mert ha a szűrés miatt egy adat nem látszik a kimutatásban, akkor a függvény értéke #HIV! lesz magyarban (Error 23 a VBA-ban). De ha a szűrést megváltoztatod és ismét látszik a hivatkozás, akkor az érték is újra megjelenik.
Szűrés nélkül:
Szűréssel:
Megfelelő negyedévi szűréssel:
Vagyis valószínűleg elég egy képletet beilleszteni azokba a cellákba, amelyekből tovább számolsz.
Remélem, segít.
Működik úgy is, ha nem azonos oldalon van az eredmény és a kimutatás.
Üdv. -
13128814
tag
Sziasztok!
Egy pivot generálásnál akadtam el és a ChatGPT sem barátom már ebben.
A jelenség az, hogy ha a generált pivotban szűrök, akkor a mellette lévő sorok nem követik le a szűrést hanem fixen ott maradnak (mármint a pivot tartomány melletti sorok). Ezzel az a baj, hogy az AH-nak egyenlőnek kell lennie az A oszlopban lévő adatokkal (ebben a formában: A6 = AH6), mert utána sok képletem van. Csak mivel a pivotban alkotott szűrés nincs kihatással az AH-tól kezdődő oszlopokra, így a képletek fals számokat kalkulálnak. Hogyan tudnám függővé tenni a többi oszlop sorát is a pivot szűrésétől?
Itt generálom le a pivotot:
Sub pivot(ByRef ujWb As Workbook)
Dim PTable As pivotTable
Dim PCache As PivotCache
Dim PRange As Range
Dim PSheet As Worksheet
Dim DSheet As Worksheet
Dim LR As Long
Set PSheet = ujWb.Worksheets(1)
Set DSheet = ujWb.Worksheets(2)
LR = DSheet.Cells(Rows.Count, 1).End(xlUp).Row
Set PRange = DSheet.Range("A2:S" & LR)
Set PCache = ujWb.PivotCaches.Create _
(xlDatabase, SourceData:=PRange)
On Error Resume Next
Set PTable = PCache.CreatePivotTable(TableDestination:=PSheet.Cells(1, 1), TableName:="PIVOT")
On Error GoTo 0
If PTable Is Nothing Then
MsgBox "Nem sikerült létrehozni a pivot táblát. Ellenőrizd a célcellát és az adatokat.", vbExclamation
Else
' Pivot tábla létrehozva sikeresen, folytasd a kód futtatását
With PSheet.PivotTables("PIVOT").PivotFields("Design_no")
.Orientation = xlRowField
.Position = 1
End With
With PSheet.PivotTables("PIVOT").PivotFields("Code")
.Orientation = xlColumnField
.Position = 1
End With
With PSheet.PivotTables("PIVOT").PivotFields("Kártya gyári szám")
.Orientation = xlDataField
.Position = 1
End With
With PSheet.PivotTables("PIVOT").PivotFields("CH")
.Orientation = xlPageField
.Position = 1
End With
With PSheet.PivotTables("PIVOT").PivotFields("változás")
.Orientation = xlPageField
.Position = 2
End With
With PSheet.PivotTables("PIVOT").PivotFields("Elérhető")
.Orientation = xlPageField
.Position = 3
End With
End If
End Sub
Itt töltöm ki az AH-t:
Sub pivotAtalakitas(ByRef ujWb As Workbook)
Dim LR As Long
Dim ws As Worksheet
Dim LastRowCell As Range
Set ws = ujWb.Worksheets("PIVOT")
Set LastRowCell = ws.Columns("A").Find(What:="*", After:=ws.Cells(1, "A"), LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
If Not LastRowCell Is Nothing Then
LR = LastRowCell.Row
Debug.Print LR
Dim i As Long
For i = 6 To LR
ws.Cells(i, "AH").Value = ws.Cells(i, "A")
Next i
Else
Debug.Print "A oszlop üres"
End If
ThisWorkbook.Worksheets("Fejléc").Range("A4:J5").Copy
ujWb.Worksheets(1).Range("AI4").PasteSpecial
Application.CutCopyMode = False
End Sub
-
vakondka
őstag
válasz
Fferi50 #51263 üzenetére
Szia,
Köszönöm a segítséget, nagyjából hasonló dolgokat gugliztam össze.
Azóta rájöttem, hogy normál cellába beírva hibátlanul működik, pl egy A2 mezőn, viszont nekem ez volt a képlet a cellában amit kibővítettem és az ilyen képletekkel nem hajlandó együttműködni:=RemoveAccents(srenter!E2:E13000)Kijavítottam erre és hibátlan: =RemoveAccents(srenter!E2)
Így viszont csak hagyományos módon tudtam kitölteni a 13000 cellát lefelé, viszont működik -
Fferi50
Topikgazda
válasz
vakondka #51262 üzenetére
Szia!
Ez nem egy sima makró (Sub), hanem egy függvény (Function), ezért nem látod a makrók között. A függvényed egy bemeneti értéket vár - ahogyan látom ékezetes karaktereket tartalmazó szöveget - és azt alakítja át.
Meghívása VBA-ban egy olyan makróból történhet, amelyikben átadod az átalakítandó szöveget:
Pl. Sub hivo()
msgbox RemoveAccents(szöveg)
End Sub
szöveg helyére írod az átalakítandó szöveget.
Használható munkalapon is, ugyanúgy, mint egy beépített függvény.
A1-ben van az átalakítandó szöveg, akkor Pl. B1 képlete: =RemoveAccents(A1)
Még egy megjegyzés - Sub is várhat paramétert, akkor azt sem látod a makrók között, hiszen a bemeneti értéket meg kell adni a híváskor.
Üdv. -
vakondka
őstag
Sziasztok,
Most először használnék makrót, elvileg mindent a leírás szerint csináltam, viszont nem csinál semmit.Felvettem a modulhoz a VBA scriptet, makróbarát excelként van elmentve, bekapcsoltam a fejlesztői eszközöket is.
Ha az excelben a VBA gombra kattintok akkor látom a scriptet, de ha a makrók gombra kattintok akkor nem mutat egyetlen makrót sem. Gondolom futtatni kellene, de nincs mit.
Előre is köszi
-
Fferi50
Topikgazda
válasz
DopeBob #51260 üzenetére
Szia!
Nem nagyon látok más megoldási lehetőséget (persze ettől még lehet). Talán egyszerűbbé teszi a helyzetet, ha minden adatsort külön-külön veszel fel, úgy ahogyan a képen látod:
Ezután adatsoronként végig csinálod a következőt:
Kijelölöd az adatsort - vonal nincs - a vége időponthoz tartozó adatpontot kijelölöd - vonal automatikus.
Ezt kapod eredménynek:
Illetve:
A diagramot egy lépésben létre tudod hozni az adatok kijelölése után, majd végig lehet/kell lépkedni minden adatsoron az előbbi műveletekkel.
Persze makrót lehet írni rá, de az is időbe telik.
Üdv.
Ps. tudom, sok adatsornál nem kevés idő, de más lehetőséget most nem látok. -
DopeBob
addikt
Sziasztok,
grafikon rajzoláshoz kérnék egy kis segítséget de egyelőre teljesen tanácstalan vagyok. Kezdő és vég időpontjaim vannak és egy hozzátartozó érték pl:
12:12:01 12:12:21 100
12:13:04: 12:13:09 120Meg lehet valahogy csinálni azt, hogy a grafikon X tengelye a legkorábbi kezdő és a legkésőbbi végidőpont, az adatokat pedig egy vonalon ábrázolnám úgy, hogy ahol nincsen adat ott 0?
Vagy jobban járok, ha egy makróval legeneráltatom az összes előforduló időpontot az értékekkel?
-
psg5
veterán
Nos köszönöm!
Ez egészen jo. Valamiért keves beallitasom van, marmint csak kordiagramot tudok. Nekem elegendő lenne sima kituzes, de egy terkepen kétféle vagyis egyik település kituzom pirossal hogy rendben egyasikat is kituzok zolddel hogy nincs rendben.Most nézem hogy nem jott elo power menu, csak a Bing maps. Illetve lehet hogy az már regota ott volt. De ebben nincs beallitas.
-
Mutt
senior tag
Szia,
Ahogy olvasom 2013-ban már addin-ként meg volt, csak aktiválni kell. Fájl menű Beállítások->Bővítmények ablakbal a Kezelésnél a COM-bővítményeknél engedélyezd a Power Map-et. Ezek után ha jól emlékszem, akkor lesz egy új Power menűcsoport és azon belül találod meg.
Vmi ilyen eredményt kapsz (a mintában irányítószám, város, állam/megye, utca adatok vannak, nincs GPS).
Nem Excel, de kezeli az Excel adatokat és manapság kedvelt a Power BI. A Desktop változata ingyenes, az online ára sem vészes.
Ebben pedig vmi ilyen eredményt kapsz.üdv
-
13128814
tag
Sziasztok!
Office 365, 2207, magyarExcelben az megoldható, hogy a mai nap függvényében módosítsa a szegély színét, formátumát?
Pl. van egy szabadságtervezős ahol jelöltem mire gondoltam:[link]
Szóval pl. a mai nap esetében (kedd) az AF és AG közti szegély vastagabb piros lenne. Mert mondjuk ezt relációba lehetne hozni (?) a második sorral, mert az a today() fv. szerint színezi a cellámat pirosra. -
Mutt
senior tag
válasz
bandus #51244 üzenetére
Szia,
Ha OFFSZETet használsz akkor régi az Exceled, de 2016-tol az Adatok fülön az adatok beolvasása a Power Queryt indítja. Excel 2010hez külön lehet telepíteni.
Az adatsoron állva Adatok->Adatok beolvasása -> Táblázat/Tartományból betölti a PQt.
Ha nem konvertalja automatikusan akkor a fejlec bal oldalán az ABC123-ra kattintva a DateTime opciót válaszd.
A végeredményt Excelbe az adatok betöltése gombbal lehet elérni.YouTubeon sok videó van, de itt is segítünk.
Üdv
-
psg5
veterán
Sziasztok!
Ország térképre szeretnék excelből adatokat kitenni.
Egy jelöléssel egy települést jelölnék ahova az excel szerint történt valami vagy éppen nem történt semmi.
Ilyet lehet? -
Fferi50
Topikgazda
válasz
bandus #51244 üzenetére
Szia!
"hogyan tudnám képlettel összegezni egy adatsor első x elemét egy sorban, alatta a második x elemét,"
A képlet az A oszlopra pl. ha van fejléced, az X1 cellában van az összegzés darabszáma, az összegző oszlop első cellájában a képlet:=SZUM(Offset($A$2;(SOR()-1)*$X$1;0;$X$1;1))
Ezt húzhatod lefelé.
Ha az oszlop második cellájában szeretnéd kezdeni a képletet, akkor a -1 helyett -2 kell.
Ha nincs fejléc az összegzendő adatoknál, akkor $A$1 kell a $A$2 helyett.
Üdv. -
Fferi50
Topikgazda
-
sima general.
Mutt: köszi, sajnos azon kívül, hogy power query kifejezésről már hallottam fogalmam sincs, hogy mi ez
egy másik kérdésem is lenne: hogyan tudnám képlettel összegezni egy adatsor első x elemét egy sorban, alatta a második x elemét, alatta a harmadik x elemét, stb... párszor már megoldottam ezt valahogy az offset fv-nyel, de most sehogy sem akar összejönni.
köszönöm a segítséget
-
sziasztok! van két dátum oszlopom kicsit eltérő formátummal:
egyik: 2021-12-31T23:15:00.000Z
másik: 2021-12-31 23:15:00+00:00negyedórás bontásúak soronként. hogyan tudnék ebből a legegyszerűbben excel által is használható dátumokat kreálni, ahol megy automatikusan a napi, vagy akár órás/negyedórás csoportosítás is? sajna nem sikerül rájönnöm. köszi előre is
-
13128814
tag
Szia!
Kipróbáltam, működik! Eszembe nem jutott volna ez a probléma, nagyon szépen köszönöm a segítséged! Egy teljes vasárnapom ment el erre.
Utánanézek neki, köszi a tippet! Mert most az a célom, hogy összetákoljak egy működő kódot VBA-ban ahogy tudok (stackoverflow, Chat GPT, gyakorikérdések, stb.), majd ezt "optimalizálni" (értsd: legyen szebb, logikusabb, gyorsabb), aztán megcsinálni más platformon mint pl. python csak a móka kedvéért. De eddig erről a Power Query-ről nem is hallottam még, szóval utánanézek.
Mégegyszer nagyon szépen köszönöm a segítségedet!
-
Mutt
senior tag
válasz
13128814 #51238 üzenetére
Szia,
2 hiba van a kódban.
1. VBA-ban angolul kell megadni a képleteket, vagyisG1 = "=IFERROR(VLOOKUP($A3,'\\win2012-adc\WORK\Termelés\SAP\2023\["
I3 = "'!$A$3:$S$400000,8,0),2)"2. Nem a Value tulajdonságot kell használnod, hanem a Formula-t. O365 esetén a Formula2 javasolt.
ujExcelDatum.Range("I3").Formula2 = iKeplet
Ha a makrónak a célja, hogy az utolsó archivált fájlt és annak tartalmát akarod elérni akkor könnyebb/gyorsabb megoldás a Power Query használata. Youtube-on van sok video róla, de szívesen segítünk ha kell.
üdv
-
13128814
tag
válasz
föccer #51237 üzenetére
Először is köszönöm a válaszodat!
Hazudnék ha azt mondanám hogy teljesen értelek.Ha jól értem, akkor jobb lenne megnyitni azt a fájlt amire eddig próbáltam "hegeszteni" az FKERES függvényt?
Viszont akkor lehetne úgyis, hogy mondjuk azt mondom (szintaktikát engedjük el):
aktualisDatum = today()
elozoDatum = aktualisDatum - 1
És akkor a for ciklusban nem is csinálok listát, hanem végig léptem visszafelé az
elozoDatum
változót, addig a pontig amíg nem talál egyezést és nem nyitja meg valamelyiket.(Sima if ággal ezt le lehet kezelni, nem?)
És mivel megtudta nyitni valamelyik
elozoDatum
-nál akkor mi megtudjuk határozni mi a fájl neve. És akkor mondjuk megtehetjük hogy:Dim megnyitottWb
set = elozoDatum &
excelMaradekNev
És innentől kezdve tudunk könnyen hivatkozni erre a füzetre vagy a másikra.Vagy nagyon félreértettelek?
-
föccer
nagyúr
válasz
13128814 #51235 üzenetére
Csináld azt, hogy egy listába rakod a fájlneveket, akár elérési úttal. For ciklussal végig mész ezen a listán, beolvasod a teljes fájlnevet és megpróbálod megnyitni. Hibakezelést kell felépíteni arra az esetre, ha a fájl nem található, különben kiakad a makró.
Ha sikerül megnyitni, akkor már csinálhatsz vele amit akarsz, akár kimásolod a tartalmát, akár szerkeszted, de simán vissza is zárhatod.
üdv, föccer
-
13128814
tag
Bocsánat, a képeket nem csatolta:
https://ibb.co/YcJnhp4
Itt fűztem össze az FKERES-t.Ez pedig maga a hiba, hogy szövegként van ott a képlet.
-
13128814
tag
Sziasztok!
A segítségetekre van szükségem, mert elakadtam. Hogy ne érje szó a ház elejét, reggel óta küzdök vele, már a Chat GPT-t is izzasztottam, meg mindent amit tudtam. De csak egy egyszerű multis rabszolga vagyok aki szeretne automatizálni ezt-azt, szóval ne vegyétek le a fejemet kérlek.
A háttere az, hogy hetente készülnek riportok aminek az alapját 1 SAP lekérdezés és egy belsős adatbázis adja. Az aktuális excel mindig visszahivatkozik az előzőhetire, és ebből van a problémám.
A fájlok ilyen struktúrában vannak elmentve:
2023_07_29_valami
2023_07_22_valami
stb.
A problémám egy (számomra) komplexebb FKERES-el kezdődött. Ez így néz ki (és 3 van belőle!):
=HAHIBA(FKERES(A3;'\\win2012-adc\WORK\Termelés\SAP\2023\[2023_07_27_Össze_kártyaLekérdezés.xlsx]2023_07_27'!$A$3:$S$400000;8;HAMIS);2)
Mivel ez mindig az előzőheti excelre mutat rá, kitaláltam, hogy csinálok egy archivum fület a sablon fájlomban. Ami azt csinálja, hogy mindig beírja az aktuálisan generált excelt adatait, amiből ha visszaugrok egy cellát akkor automatikusan tudni fogom hogy hogyan hivatkozzak az előző excelre. Elméletben nagyon jól is hangzott!
Ezért azt csináltam, hogy a sablon excelem képleteket tartalmazó lapján összefűztem ezeket a függvényeket, mert igazából mindig csak a dátum tér el, pl. itt az I3:
Mert a makró megtudja határozni az archivumból a korábbi dátumot (nem mindig ugyanakkor készül az előző).
Ez amúgy tök jó is lett, de az istenért nem másolja be nekem függvényként, és itt vagyok meglőve:
ThisWorkbook.Worksheets("K").Range("I6").Value = elozoDatum
ThisWorkbook.Worksheets("K").Range("I8").Value = elozoDatum
ThisWorkbook.Worksheets("K").Range("I4").Copy
ujExcelDatum.Range("I3").PasteSpecial xlPasteValues
Próbáltam formulaként is beszúrni, de object hibát kaptam.
Ha F2-t nyomok, és kilépek belőle akkor tök jó, csak makróval nem tudtam megcsinálni, mert idézőjelekbe kell tennem az eredetit, de nem tudom előre definiálni, mert változik.
Akkor kitaláltam, hogy változóba olvasom, és azt használom fel, de mindig object errort kaptam vissza.
Aztán próbáltam ilyet is, de szintén object errort kaptam:
'Dim G1 As String
'Dim G2 As String
'Dim I3 As String
'Dim M3 As String
'Dim P3 As String
'G1 = "=HAHIBA(FKERES($A3,'\\win2012-adc\WORK\Termelés\SAP\2023\["
'G2 = "_Össze_kártyaLekérdezés.xlsx]"
'I3 = "'!$A$3:$S$400000,8,HAMIS),2)"
'M3 = "'!$A$3:$O$400000;15;HAMIS);""X"")"
'P3 = "'!$A$3:$B$400000;2;HAMIS);""X"")"
'Dim iKeplet As String
'iKeplet = G1 & elozoDatum & G2 & elozoDatum & I3
'Debug.Print iKeplet
'ujExcelDatum.Range("I3").Value = iKeplet
Igazából én már kezdek kifogyni az ötletekből, csak egy FKERES-re van szükségem. Plusz minden egyes hibánál végig futtattam a Chat GPT-n a kódokat, de csomó esetben azt írta vissza hogy működnie kéne.
Ja igen, ez magyar nyelvű 2307-es verziójú office365.
Előre is köszönöm!
-
csferke
senior tag
Sziasztok!
Hogyan lehetne Windows 10, Angol Excel 2016-ba (64 bit) telepiteni a "Microsoft MonthView Control "-t?
Másik gépemen (régebbi Windows és Excel) használok egy Pop-up Calendar for Excel Date Picker-t. Bármely mezőn jobb-klikk és a legördülő menüből "Insert Date"-ra megjenik egy dátumválasztó.
Sajnos az Excel 2016-ban nincs "Microsoft MonthView Control ".
Esetleg valami ehhez hasonló.köszi
-
Reinhardt
őstag
Hello,
Van egy datum oszlop a tablamon, hogyan tudom megoldani, hogy a cella zold szinu legyen ha meg van 6 het a datumig es piros ha mar nincs?
Angol Excel.
Elore is koszi. -
lappy
őstag
-
Dolphine
addikt
Sziasztok guruk!
A következő projektre keresek Excel megoldást, már hogyha egyáltalán kivitelezhető
A szitu a következő:
Tanár vagyok, aki jó pár osztályban tanít. A tanítási hetek száma és a heti óraszám fix. Egy olyan táblázat kellene, amiben látom, hogy az adott osztályban tanév végéig hány óra van még hátra és mindezt automatikusan. Pl. Február 15-én látom, hogy június 15-ig mennyi óra van még a 12/B osztályban.
Az már csak hab a tortán, hogyha évközben bele tudok nyúlni óraelmaradás (pl. osztálykirándulás) miatt és ezzel automatikusan változna a hátralévő óraszám.
Van ötlet ennek kivitelezésére? -
-
Sziasztok Szakik!
Zala vagy Somogy megyében keresnék egy olyan szakembert akit "felbérelhetnénk" egy projekt keretében Excel makró programozási feladatokra.
Létezne ilyen személy itt vagy esetleg ajánlás?Köszi,
Jocee -
Delila_1
veterán
-
takos
tag
Sziasztok!
Olyan ban kérném a segítségetek, hogy a célom egy olyan excel elkészítése, amely alkalmas arra, hogy két oszlopban szereplő települések közötti távolság kiírja kilóméterben. Nekem elég lenne település szinten is, de természetesen van pontos címem is ha kell.
A legegyszerűbbenek egy távolságmátrixból gondolnám fkeres függvénnyel, de sajnos olyat még nem találtam, ami minden magyar települést tartalmazna.
Láttam van bonyolultabb megoldés gmaps használatával, de azt hiszem az már túlmutat a tudásomon.Esetleg van valakinek hasonló működő táblázata? Vagy ötlete?
Köszi:
takos -
lappy
őstag
válasz
nonihorvath #51202 üzenetére
szumhatöbb függvénnyel
Új hozzászólás Aktív témák
Hirdetés
- Xbox tulajok OFF topicja
- Fortnite - Battle Royale & Save the World (PC, XO, PS4, Switch, Mobil)
- Fűnyíró topik
- Teljes szoftveres megújulás vár az Apple iPhone-okra és Macekre
- Egyre kevésbé érdekli az okostelefon Európát
- A pornóóriások ellen indít vizsgálatot az EU
- Motoros topic
- Nintendo Switch
- Nintendo Switch 2
- Vezeték nélküli fülhallgatók
- További aktív témák...
- Adobe Előfizetések - Adobe Creative Cloud All Apps - 12 Hónap
- Új, bontatlan World of Warcraft gyűjtői kiadások
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Vírusirtó, Antivirus, VPN kulcsok
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 16/32/64GB RAM RTX 4060Ti 8GB GAMER PC termékbeszámítással
- Bomba ár! Dell Latitude 7320 - i5-11GEN I 8GB I 256SSD I HDMI I 13,3" FHD I Cam I W11 I Garancia!
- ÁRGARANCIA! Épített KomPhone Intel i7 14700KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7700X 32/64GB RAM RTX 4070Ti Super GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone Ryzen 5 5600X 16/32/64GB RAM RTX 4060 8GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest