-
Fototrend
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
-
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.
-
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?
-
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 pivotTableDim PCache As PivotCacheDim PRange As RangeDim PSheet As WorksheetDim DSheet As WorksheetDim LR As LongSet PSheet = ujWb.Worksheets(1)Set DSheet = ujWb.Worksheets(2)LR = DSheet.Cells(Rows.Count, 1).End(xlUp).RowSet PRange = DSheet.Range("A2:S" & LR)Set PCache = ujWb.PivotCaches.Create _(xlDatabase, SourceData:=PRange)On Error Resume NextSet PTable = PCache.CreatePivotTable(TableDestination:=PSheet.Cells(1, 1), TableName:="PIVOT")On Error GoTo 0If PTable Is Nothing ThenMsgBox "Nem sikerült létrehozni a pivot táblát. Ellenőrizd a célcellát és az adatokat.", vbExclamationElse' Pivot tábla létrehozva sikeresen, folytasd a kód futtatásátWith PSheet.PivotTables("PIVOT").PivotFields("Design_no").Orientation = xlRowField.Position = 1End WithWith PSheet.PivotTables("PIVOT").PivotFields("Code").Orientation = xlColumnField.Position = 1End WithWith PSheet.PivotTables("PIVOT").PivotFields("Kártya gyári szám").Orientation = xlDataField.Position = 1End WithWith PSheet.PivotTables("PIVOT").PivotFields("CH").Orientation = xlPageField.Position = 1End WithWith PSheet.PivotTables("PIVOT").PivotFields("változás").Orientation = xlPageField.Position = 2End WithWith PSheet.PivotTables("PIVOT").PivotFields("Elérhető").Orientation = xlPageField.Position = 3End WithEnd IfEnd SubItt töltöm ki az AH-t:
Sub pivotAtalakitas(ByRef ujWb As Workbook)Dim LR As LongDim ws As WorksheetDim LastRowCell As RangeSet 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 ThenLR = LastRowCell.RowDebug.Print LRDim i As LongFor i = 6 To LRws.Cells(i, "AH").Value = ws.Cells(i, "A")Next iElseDebug.Print "A oszlop üres"End IfThisWorkbook.Worksheets("Fejléc").Range("A4:J5").CopyujWb.Worksheets(1).Range("AI4").PasteSpecialApplication.CutCopyMode = FalseEnd Sub -
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. -
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!

-
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
elozoDatumvá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 megnyitottWbset = elozoDatum &excelMaradekNev
És innentől kezdve tudunk könnyen hivatkozni erre a füzetre vagy a másikra.Vagy nagyon félreértettelek?
-
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_valami2023_07_22_valamistb.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 = elozoDatumThisWorkbook.Worksheets("K").Range("I8").Value = elozoDatumThisWorkbook.Worksheets("K").Range("I4").CopyujExcelDatum.Range("I3").PasteSpecial xlPasteValuesPró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 = iKepletIgazá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!
Új hozzászólás Aktív témák
- MEGA AKCIÓ! - Jogtiszta Windows - Office & Autodesk & CorelDRAW - Azonnal - Számlával - Garanciával
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Játékkulcsok ! : PC Steam, EA App, Ubisoft, Windows és egyéb játékok
- Game Pass Ultimate előfizetések 1 - 36 hónapig azonnali kézbesítéssel a LEGOLCSÓBBAN! AKCIÓ!
- 18 éve! Billentyűzet magyarítás magyarosítás. Festés vagy lézerezés és egyebek! 3 lehetőség is van.
- Lenovo ThinkCentre/ Dell OptiPlex/ Hp EliteDesk mini, micro PC/ 8.-9.-10.gen/ Számla/garancia
- 165 - Lenovo Legion Pro 7 (16IRX9H) - Intel Core i9-14900HX, RTX 4080 (ELKELT)
- LG 27GR95UM - 27" MiniLED - UHD 4K - 160Hz 1ms - NVIDIA G-Sync - FreeSync Premium PRO - HDR 1000
- Endgame Gear & Xtrfy gamer egerek /MZ1/OP1 8K/XM2we/XM1R/XM1 RGB (fehér/fekete/lila)/
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
De ez a "tudás" már az enyém!
De ez engem minősít és nem a képletet.


