-
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
-
Fferi50
Topikgazda
Szia!
Ha az éveket folyamatosan növekvőneAk alapul véve rendezzük az adatokat, akkor a
RENDEZÉS.ALAP.SZERINT függvény használata esetén a változó "hozam" érték is figyelembe vehető, minden érték a megfelelő évhez fog tartozni.
A képlet a korábbi képem alapján:=SZORZATÖSSZEG(RENDEZÉS.ALAP.SZERINT($E$5:E5;$E$3:E3;1);RENDEZÉS.ALAP.SZERINT($E$6:E6;$E$3:E3;-1))
Igazából még az évek szerinti növekvő rendezésre sincs szükség:=SZORZATÖSSZEG(RENDEZÉS.ALAP.SZERINT($E$5:E5;OSZLOP($E$5:E5);1);RENDEZÉS.ALAP.SZERINT($E$6:E6;OSZLOP($E$5:E5);-1))
Az a lényeg, hogy egymás után párban legyenek sorban az adatok. Így akkor is könnyű a képletet adaptálni, ha nem itt kezdődnek.
Üdv. -
Fferi50
Topikgazda
Szia!
Megmagyaráznád, hogy mik ezek a bejelölt ismétlődések a számolásban, miért kerültek ide és miért pont ezek ismétlődnek?
Ha ezektől eltekintünk és legalább 2024-es Exceled van, akkor a képlet az E= cellába:=SZORZATÖSSZEG(SORBA.RENDEZ($E$5:E5;;1;1);$E$6:E6)
Ez húzható jobbra. Ha az ismétlődések is kellenek, akkor azok szabályára is szükség van.
Üdv. -
Zola007
veterán
Köszönöm srácok

D5, Mutt, Fferi50egy újabb probléma merült fel, névszerint hogy a másik táblázatban több oszlopban vannak az adatok
Se az index, se az indirekt nem nagyon fogadja el, ha több oszlopot akarok beadni
Mindig jobbra haladva kellene egy adott oszlop adott tartományát átvizsgálni, ha ez tele, akkor ugorjon a következő megadott tartományra és ha az nincs tele, akkor az utolsó nem üres cella értékére lenne szükség.
Ha ez az tartomány is tele van, akkor megint a következőre, stb.Ez is meg lehet oldani még makró nélkül?
Másodsorban azt szeretném kérdezni, hogy valami jó anyagot tudnátok ajánlani a függvényhasználatok megtanulásához és makróíráshoz?
Egyrészt zavar, hogy nem értem hogyan is működik amit írtok megoldást.
Másrészt gyakran futok ilyen problémákba és a topikot nem akarnám mindig ezzel terhelni + nekem is jobb lenne, ha instant meg tudnám oldani. -
azopi74
addikt
Meert az excel lebegőpontos formában tárolja a számokat így pl ha 1.111111111112-ből kivonsz 1.111111111111 -et, akkor azt csinálja, hogy először konvertálja lebegőpontosra minkét decimal értéket, kivonja egymásból, és utána visszaalakítja decimal-ra. Így aztán nem 0.000000000001 - et fogsz kapni, hanem 0.00000000000100008890058234 -et. Ha ilyen pontosságú számításokat akarsz végezni, akkor nem az excel az eszközöd, inkább valami komolyabb adatbáziskezelőt használj, azok képesek sokkal nagyobb precízióval dolgozni (akár 128bites pontossággal).
-
Fferi50
Topikgazda
Szia!
Ez a jelenség az Excel számtárolási sajátosságaiból adódik, a lebegőpontos tárolás miatt a "sokadik" tizedesjegyekben eltérés lehetséges.
Bővebben is olvashatsz erről több helyen is (bocsi, de most nem tudok linket csatolni).
Egyébként gondolom tudod, hogy az Excel 15 értékes számjegyet tud tárolni, ha ezen túlnyúlik a szám, akkor a többi mind 0 lesz, függetlenül attól, hogy éppen mennyit írtál arra a helyre (természetesen szöveg formátummal ez nem így van).Üdv.
-
Fferi50
Topikgazda
Szia!
Le tudod tesztelni - ha legalább WIN7-ed van. Meg tudod nyitni többször is az Excel programot új és új ablakban, amibe behívhatod a közös használatú fájt.
A kérdésedre a válasz: Nem tud olyat az excel, hogy az A1 cella után az A2 cellába írjon a másik felhasználó., ha az A1 már "foglalt".
Ha mindhárom felhasználó ír az A1 cellába valamit, akkor az ütközés kezelési szabály dönti el, mi legyen az értékkel: lehet a saját értéket hagyni, lehet a másik felhasználó értékét és lehet egyenként felülbírálni, hogy melyik érték maradjon meg.
Az ütközés (konfliktus) kezelés szabályait pedig a közössé tétel során tudod meghatározni.Érdemes egy kicsit beleolvasni a helpbe is, bár nem túl bőbeszédű.
Üdv.
-
Fferi50
Topikgazda
Szia!
Nézd meg a sorszám függvényt. Ha azt beírod a B oszlopba, megmondja neked, hogy az A oszlopban levő szám hanyadik a sorrendben, növekvő vagy csökkenő sorrendet is választhatsz.
=sorszám(A1; $A$1:$A$100;0) növekvő sorrend szerinti helyet mutatja, ha az utolsó paraméter 1 akkor csökkenő sorrend szerinti helyet.
Figyelj rá, hogy a második paraméter dolláros legyen.Üdv.
-
Mutt
senior tag
Hello,
Ha nem megy felülről, akkor próbáld meg alulról.
A Sheets("Munka1").Range("A:A").End(xlDown).Offset(1, 0).Select rész helyett használd ezt
Sheets("Munka1").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).SelectSajnos egyszerú megoldás az utolsó használt cellára/sorra/oszlopra nincs Excelben, mivel be tudnak zavarni az üres sorok, a szűrők, a rejtett oszlopok. Ezen az oldalon van pár tipp azért.
üdv.
-
Mutt
senior tag
Hello,
...amikor a "next" második köre következik, akkor a kapott eredményeket A2-től D2-ig rakosgassa, majd a harmadik körben A3-tól D3-ig, és így tovább....
Használd a Cells(sor, oszlop) tulajdonságot.
pl. a lenti példa az elsö 15 sor első 4 oszlopába tesz egy véletlen számot.
For sor = 1 To 15
For i = 1 To 4
Cells(sor, i) = rnd()
Next i
Next sorMásik megoldás lehet ez:
For sor = 1 To 15
Range("A" & sor & ":" & "D" & sor) = Rnd()
Next sorA lényeg a "A" & sor, amely A1, A2 stb. hivatkozást állít elő.
üdv.
-
Miért kell Range(bevétel)? A bevétel-nek már magában is Range típusúnak kell legyen...
Hogy definiálod a bevétel változót?
Csináld inkább ezt:
Sheets("Alap").Range("G9").Copy
Dim bevétel as Range
Set bevétel = Sheets("Munka2").Range("E4")
bevétel.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=FalseVagy még egyszerűbben:
Sheets("Alap").Range("G9").Copy
Sheets("Munka2").Range("E4").Select
Selection.PasteSpecial Paste:=xlPasteValuesAmúgy nem árt leellenőrizni, hogy mi az aktív workbook, ha nem az, amire számítasz (nincsenek ilyen Worksheet-ek rajta), azon is simán elhasal - vagy mást csinál, mint amit szeretnél...
-
Mutt
senior tag
Hali,
Ez esetben a következő makró tud neked segíteni:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim vLastRow As Integer
Dim wSheet As Integer
If Target.Address = Range("Input").Address Then
'ha az utolsó lapon vagyunk akkor létrehozunk egyet
If ActiveSheet.Name = ThisWorkbook.Sheets(Sheets.Count).Name Then
wSheet = ActiveSheet.Index
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(wSheet).Activate
End If
'megnézzük az utolsó munkalapon az utolsó használt sort
vLastRow = Application.WorksheetFunction.CountA(ThisWorkbook.Sheets(Sheets.Count).Range("A:A")) + 1
'az utolsó sor alá A és B oszlopba beszúrjuk a kezdő és végértéket
ThisWorkbook.Sheets(Sheets.Count).Range("A" & vLastRow) = [input]
ThisWorkbook.Sheets(Sheets.Count).Range("B" & vLastRow) = [output]
End If
End SubA kódot a munkafüzetbe kell tenned, ahol van az adatsorod. A bemeneti (változó) cellád nevezd el "input"-nak, az eredményt pedig "output"-nak. Ezek után ha a bemeneti cellád módosítod, akkor a kód az utolsó munkafüzeten (és annak is az A-oszlop utolsó sorában) elkezdi gyűjteni a bemeneti és kimeneti adatokat.
A fájlt feltettem ide: http://www.filedropper.com/fuggvenytabla
Az Adatmentés fülön van ami neked kell.Az első fülön egy másik megoldás van, amellyel egy már létező táblázatból tudod kikeresni az értékeket.
Ez most nálad ne biztos, hogy műkődne, de hátha ebből is tudsz vmit hasznosítani.üdv.
-
Mutt
senior tag
Hello,
Ha jól értem akkor kvázi egy függvény táblát akarsz csinálni, amely megad egy adott értékhez egy másikat.
Ha létezik egyértelmű képlet amely segítségével számolható az eredmény, akkor 3 megoldás is van:
1. Az egyik oszlopban felsorolod a bemeneti értékeket (10%,20% stb), majd mellette a képlettel elvégzed a transzformációt.
2. Használod az Excel Adattábla opcióját (Adatok fül Adateszközök csoportjában van).
3. UDF (user defined function) létrehozása VBA-ban és annak használata.Ha nincs zárt képlet a transzformációra, akkor marad a Célértékkeresés, amely viszont egyszerre csak egy bementi és kimeneti adattal boldogul, így nem fogsz tudni vele igazán haladni.
Ha többet megosztasz velünk, akkor lehet hogy konkrét megoldásokat is tudunk adni.
Üdv.
Új hozzászólás Aktív témák
- exHWSW - Értünk mindenhez IS
- Motorola Edge 50 Ultra - szépen kifaragták
- Először beszélt bővebben az új Xbox konzolról a Microsoft
- Párduc a gépben: teszten az ASUS ExpertBook Ultra
- Idő előtt felbukkant a Galaxy A57 egy európai webshopban
- Konzolokról KULTURÁLT módon
- Xbox Series X|S
- Facebook és Messenger
- OpenMediaVault
- Fejhallgató erősítő és DAC topik
- További aktív témák...
- PC Game Pass előfizetés
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem.
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Game Pass Ultimate előfizetések 1 - 36 hónapig azonnali kézbesítéssel a LEGOLCSÓBBAN! AKCIÓ!
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- 210 - Lenovo IdeaPad 5 Pro (16ARH7) - AMD Ryzen 7 6800HS, RTX 3050Ti
- Beszámítás! MSI G27C4 E3 27 180Hz FHD VA 1ms gamer monitor garanciával hibátlan működéssel
- Samsung Galaxy S26 Ultra 512GB, Kártyafüggetlen, 1 Év Garanciàval
- Dell XPS 13 9333,13.3",FHD,i5-4210U,8GB RAM,256GB SSD,WIN10,TOUCH
- DELL PowerEdge R630 rack szerver - 2xE5-2650v3 (20 mag / 40 szál, 2.3/3.0GHz), 32GB RAM, 66921Ft+ÁFA
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Ha ezektől eltekintünk és legalább 2024-es Exceled van, akkor a képlet az E= cellába:





Fferi50