- Karaktere biztos lesz az első Nothing fejhallgatónak
- Samsung Galaxy A56 - megbízható középszerűség
- One mobilszolgáltatások
- Milyen okostelefont vegyek?
- Magisk
- Google Pixel 9 Pro XL - hét szűk esztendő
- Realme GT Master Edition - mestermunka
- Ilyen lesz a Fairphone 6
- Keretmentesít a Galaxy S25 FE
- Nem lett arányos a fogyókúra
-
Mobilarena
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
-
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.
-
sztanozs
veterán
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
Hirdetés
- Hp Prodesk 600 G3/ G5/ G6 SFF-MT / i5 8-9-10 gen, Hp EliteDesk 800 G4 / Win11- Számla, garancia
- ÁRGARANCIA!Épített KomPhone i5 12400F 16/32/64GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
- DELL, HP gyári töltők, sok db. 7,4x5mm - 4,5x3mm + USB-C/Type-C 65W
- ASUS TUF Gaming F16
- AKCIÓ! Acer Predator Triton Neo 16 15 notebook - Ultra 9 185H 32GB RAM 2TB SSD RTX 4070 WIN11
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest