Hirdetés
- Send to qBittorrent (with SavePaths): Egy apró Firefox kiegészítő qBittorrenthez
- Ikea PAX gardrób és a pokol logisztikája – egy Ikea-horror igaz története
- -TongFang- Medion Erazer Beast 16 X1 - induló teszt így kora délután..."CB R23"
- Pi-hole és a Telekom Sagemcom F@st 5670 DNS beállítása
- A Magyar Néphadsereg emlékére
- GoodSpeed: Márkaváltás sok-sok év után
- Luck Dragon: Asszociációs játék. :)
- Mr Dini: Mindent a StreamSharkról!
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- bb0t: Ikea PAX gardrób és a pokol logisztikája – egy Ikea-horror igaz története
- GoodSpeed: A RAM-válság és annak lehetséges hatásai
- Magga: PLEX: multimédia az egész lakásban
-
LOGOUT
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
-
Mutt
senior tag
válasz
Dr. Mózes
#54329
üzenetére
Szia,
Szokni kell a Power Pivot-ot. Ezek szerint csak az volt a gond, hogy a képlet nem volt teljes. Én többnyire el kezdem gépelni a függvény vagy tábla/mező nevet és kiválasztom a listából egy TAB-ot nyomva.
Amire figyelni kell, hogy Power Pivot-ban a függvények csak angol nyelven vannak.
Sok munkalap függvénynek megvan a DAX-os változata, de eltérően műkődnek.Nem tudom, hogy az UDEMY-s oktatás csak Power Pivotról (és DAX-ról) szól-e vagy más Power tool is említve van (főleg Power Query, esetleg Power Automate), de a DAX nehéz.
üdv
-
Dr. Mózes
aktív tag
válasz
Dr. Mózes
#54328
üzenetére
Szerk.:
MOST MEG JÓ! A függvényválasztóból elindítottam az IF függvényt, ott már ki tudtam választani az oszlopot. Próba képen visszavontam az egészet és kézzel beírva is simán működött a képletezés...Szerk2.:
Helyes metódus: Beírom a képletet majd zárójel. Ha botor módon egyből az oszlopra kattintok, akkor hiba, viszont ha előtte az egérrel oda kattintok a zárójel utáni részre, akkor minden rendben.
-
Mutt
senior tag
válasz
Dr. Mózes
#54320
üzenetére
Szia,
Power Query-ben nincs DATEDIFF, ott a Duration függvények használhatóak. Ezekben DateTime és Date adattípusok használhatóak. pl.
=Duration.Days([End]-[Start])A dátumok számként vannak tárolva, a regionális beállítás csak az év/hó/nap/óra/perc/másodperc helyes sorrendjének megadására szolgál. Ha sikeresen feldolgozta az értéket, akkor onnantól már számként műkődik.
Azt írtad, hogy amerikai dátumokat dolgoztatsz fel magyar Excelben ott meg kellene adnod az USA beállítást, hogy helyes értékek legyenek.
DATEDIFF (magyar Excelben DÁTUMTÓLIG) egy rejtett munkafüzet képlet, amelynél az első paraméter a kezdő, a második a végdátum. A harmadik pedig hogy milyen egységben (eltelt napok, hónapok, évek stb) jelenítse meg a két dátum különbségét. Itt annyi kavarás van, hogy magyar Excelben is az angol rövidítéseket ("d", "m", "y") kell használni.Power Pivot-ban a DATEDIFF már a DAX-ot használja. Ott a hibaüzeneted más hibára utal.
Tippre az lehet a gond, hogy van olyan dátumod ami 1900 előtti.Excel munkalapon az ilyen dátumok szövegek. Ha ezt közvetlenül töltöd be Power Pivotba, akkor nem minden sorod lesz dátum típus amire kiakad a DATEDIFF.
Egy ISNUMBER([dátum oszlopod]) megadja hol van hiba.Power Pivotba Power Query-vel célszerű adatokat betölteni, ilyenkor már nem él az 1 millió soros limit (ami egy munkalapon lehet). Dátumoknál több évszázadot is vissza lehet ott már menni gond nélkül. Power Pivot/Power Query Krisztus utáni 100. évtől felfelé műkődik (persze 1582 előtt sok értelme nincs).
A másik tippem az lehet, hogy a [YEAR] és a [Mai nap] közötti éveket akarod, csakhogy a YEAR nekem szövegnek tűnik (balra van rendezve) és mégha szám lenne akkor se lenne jó, több dolog miatt. Ha ez kell akkor a számított oszlop, csak ennyi
=YEAR([Mai nap])-[YEAR]üdv
-
Fferi50
Topikgazda
válasz
Dr. Mózes
#54324
üzenetére
Szia!
Bocsi, úgy látom 2 malomban őrölünk. A Power Qery nem azonos a Power Pivottal. Te a hibaüzenet szerint ez utóbbival dolgozol. Ebben valószínűleg nincs DateDiff függvény. Nem igazán ismerem, gondolom más szintaktikát használ ez is.
Egyébként mit szerettél volna a DateDiff függvénnyel kiszámítani?
Üdv. -
Fferi50
Topikgazda
válasz
Dr. Mózes
#53355
üzenetére
Szia!
Rájöttem a probléma okára.
A makró közepét így módosítsd légy szíves:For xx = 0 To UBound(alap)If Val(Replace(alap(xx), ",", ".")) <> 0 Then ' csak ez a sor módosul!!!If kiad(UBound(kiad)) = 0 Thenkiad(UBound(kiad)) = Val(Replace(alap(xx), ",", "."))ElseReDim Preserve kiad(UBound(kiad) + 1): kiad(UBound(kiad)) = Val(Replace(alap(xx), ",", ".")) 'szamkinyer = szamkinyer & ";" &End IfEnd IfNextÜdv.
-
Fferi50
Topikgazda
válasz
Dr. Mózes
#53349
üzenetére
Szia!
Ezt a makrót másold be egy modulba:
Function szamkinyer(rng As Range) As Variant
Dim alap, xx As Integer, kiad()ReDim kiad(0)alap = Split(rng, " ")For xx = 0 To UBound(alap)If Val(alap(xx)) <> 0 ThenIf kiad(UBound(kiad)) = 0 Thenkiad(UBound(kiad)) = Val(Replace(alap(xx), ",", "."))ElseReDim Preserve kiad(UBound(kiad) + 1): kiad(UBound(kiad)) = Val(Replace(alap(xx), ",", ".")) 'szamkinyer = szamkinyer & ";" &End IfEnd IfNextszamkinyer = kiad 'Split(Mid(szamkinyer, 2), ";")End Function
Úgy működik mint egy beépített függvény, tehát a használata:
=szamkinyer(A1)
Eredmény: egymás melletti két cellába kiírja az A1-ben található számokat.
FONTOS követelmény, hogy a számok szóközök között legyenek, úgy ahogyan a mintádban is írtad.
Mutatom az eredményt:
Üdv.
Ps. természetesen makróbarátként kell menteni.
Még valami: A függvény alkalmas arra is, hogy egy szövegből bármennyi - szóközök között levő - számot kiszedjen egymás melletti cellákba! -
Fferi50
Topikgazda
válasz
Dr. Mózes
#53343
üzenetére
Szia!
Lappy javaslatát egy picit módosítanám, mert még nem ad teljesen megfelelő eredményt az első számra:
Az első képletet próbáld így:=BAL(SZÖVEGÖSSZEFŰZÉS("";IGAZ;HAHIBA(ÉRTÉK(KÖZÉP(KÖZÉP(A1;SZÖVEG.KERES(" ";A1)+1;HOSSZ(A1));SOR(INDIREKT("1:"&HOSSZ(A1)));1));""));3)
Ezzel elkerülhető, hogy a megnevezésben levő számok bekerüljenek a MIN értékbe.
Feltétel, hogy a megnevezés után legyen mindig szóköz.
Ha van SZÖVEGFELOSZTÁS függvényed, akkor a következő képlet a számok hosszától függetlenül adja a két értéket:=SZÖVEGFELOSZTÁS(SZÖVEGÖSSZEFŰZÉS(";";IGAZ;HA((SZÁM(ÉRTÉK(SZÖVEGFELOSZTÁS(A1;" "))));SZÖVEGFELOSZTÁS(A1;" ");"");"");";")Üdv.
-
-
válasz
Dr. Mózes
#53221
üzenetére
Ha hibát kezelsz egy függvénnyel, akkor valami egyértelmű tájékoztató információt kell megjeleníteni a cellában, nem pedig üresen hagyni, hogy látható/olvasható legyen, hogy ott valami nem kerek...
Kg és Liter esetén meg -általában- nincs is szükség kerekítésre, hisz itt lehet 1,23 kg vagy 1,5 liter, amit a kilónkénti/literenkénti egységárral simán fel lehet szorozni (általában így is szokás)
Darabnál nem kerekítünk le (lehetni lehet, csak feleslegesen bonyolítja a képletet), fel meg nem szokás (ez adott esetben gondot is okozhat, mert pl. vagy 1 db csavarod van, vagy 2 db, másfél db csavarod nem lehet. Ha az 1,5-t meg felkerekíted 2-re és az egységárral még összeszorzod, akkor máris nem fog stimmelni a dolog( 1db helyett 2db-nak számoltad el az árát))
Feladata/felhasználása válogatja, de darabszámnál kerekítés függvény, az csak feleslegesen bonyolítja a képletet és adott esetben gondot is okozhat. -
-
Delila_1
veterán
válasz
Dr. Mózes
#52949
üzenetére
Makróval lehet megoldani. A makrót a lapodhoz rendeld (lásd a Téma összefoglalóban).
Úgy írtam meg, hogy a mértékegységek a 2. oszlopban vannak, a mennyiségeket a harmadikba írod. AzIf Target.Column = 3 Thensorban kell átírnod a 3-at annak az oszlopnak a számára, ahova az értékeket írod.Private Sub Worksheet_Change(ByVal Target As Range)Dim szoveg As StringIf Target.Column = 3 Thenszoveg = "#,##0" & " """ & Cells(Target.Row, Target.Column - 1).Value & """"Cells(Target.Row, Target.Column).NumberFormat = szovegEnd IfEnd Sub -
Fferi50
Topikgazda
válasz
Dr. Mózes
#51752
üzenetére
Szia!
"Illetve még egy olyan inkább matematikai jellegű kérdésem is lenne, hogy a maradék(19,5;0,1) az miért 0,1? A 19,5 az miért nem osztható 0,1-el maradék nékül?"
Az Excel lebegőpontos számábrázolása a ludas ebben. Pl. 0,3 -al való osztásra 0 maradékot ad...
Ezeket a korlátokat sajnos figyelembe kell venni.
Üdv. -
Fferi50
Topikgazda
válasz
Dr. Mózes
#47674
üzenetére
Szia!
Ha van a táblázatodban fejléc, akkor használható az Adatok - Speciális menüpont (leánykori nevén Irányított szűrés).
Ezzel lehet vagy feltétel alkalmazásával is szűrni - minden feltételt külön sorba kell írni.
A szűrés eredménye maradhat helyben és kerülhet máshova is. Ez utóbbi esetben a menüpontot arról a munkalapról kell indítani, ahová az eredményt szeretnéd kapni.
Ilyen párbeszéd ablakot kapsz:
Érdemes egy kicsit a súgóját tanulmányozni.
Üdv. -
Louro
őstag
válasz
Dr. Mózes
#26095
üzenetére
Lecsekkoltam és a Cut simán nem jó, hanem előbb "szelektálni" kell a mezőt és a szelektációt kivágni. Bár a kivágás nem akart működni, de lehet azért, mert itthon csak 2007-es van. Ha újabban se megy, akkor a topikguru lesz a kulcs

Kicsit kozmetikáztam. Komment, hibakezelés, képernyőfrissítés kikapcsolása és esetleg ami még mehetne, hogy a végén Range("A1").Activate (ez már tényleg csak "elegancia")
Sub Választó()
Dim LastRow As Integer
LastRow = ActiveSheet.UsedRange.Rows.Count
Range("K1") = "Első operandus"
Range("L1") = "Második operandus"
For i = 1 To LastRow - 1
For j = 1 To LastRow
If Cells(i, 1) + Cells(j, 1) = Range("C1") Then
Cells(i, 1).Select
Selection.Copy
Cells(ActiveSheet.Cells(Rows.Count, "K").End(xlUp).Row + 1, 11).PasteSpecial xlPasteValues
Cells(j, 1).Select
Selection.Copy
Cells(ActiveSheet.Cells(Rows.Count, "L").End(xlUp).Row + 1, 12).PasteSpecial xlPasteValues
End If
Next
Next
End Sub -
Louro
őstag
válasz
Dr. Mózes
#26090
üzenetére
Szia,
nem tudom elég -e a rávezetés vagy kód kell -e.
Ahogy én csinálnám: Adott egy oszlop, amiben számok vannak (legyen A oszlop). Először megfognám az A1-et és ciklussal és elágazással a következőt csinálnám.
Első operandusra ciklus
Második operandusra ciklus
Ha A1+Akövetkező = C1, akkor
A1.Cut
Kelső_üres_sor.Paste
Akövetkező.Cut
Kkövetkező_üres_sor.Paste
Ellenkező esetben következő
Ciklus vége.
Ciklus vége.Dim LastRow As Integer = ActiveSheet.UsedRange.Rows.Count
For i = 1 to LastRow-1 (azért minusz 1, mert az utolsó összeadás az utolsó előtti+utolsó)
For j = 1 to LastRow
If Cells(i,1)+Cells(j,1) = Range("C1") then
Cells(i,1).Cut
Cells(ActiveSheet.Cells(.Rows.Count, "K").End(xlUp).Row+1,11).Paste
Cells(j,1).Cut
Cells(ActiveSheet.Cells(.Rows.Count, "K").End(xlUp).Row+1,11).Paste
End if
Next
NextBár mostanában nem VBA-ztam, de asszem valahogy így nézne ki a kódom.
-
Delila_1
veterán
válasz
Dr. Mózes
#25431
üzenetére
A G oszlopba kigyűjtöd a C egyedi rekordjait (régebbi verziókban Adatok | Szűrő | Irányított, 2007-től Speciális szűrés).
A kép szerinti képleteket beírod az E, F, és I oszlopokba. Azokat a cellákat törölheted, ahol az I oszlopban HAMIS érték van. Kijelölöd az E2:I2 cellákat, Ctrl+ mínusz jel, cellák eltolása felfelé.
Ez utóbbira lehet írni egy makrót.
Új hozzászólás Aktív témák
- GoodSpeed: Márkaváltás sok-sok év után
- Gitáros topic
- Milyen billentyűzetet vegyek?
- Milyen okostelefont vegyek?
- Kivégezheti a kisebb VGA-gyártókat az NVIDIA döntése
- Luck Dragon: Asszociációs játék. :)
- exHWSW - Értünk mindenhez IS
- Revolut
- Miskolc és környéke adok-veszek-beszélgetek
- BestBuy topik
- További aktív témák...
- ÁRGARANCIA!Épített KomPhone Ryzen 5 5600X 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
- HIBÁTLAN iPhone 15 Pro 256GB Black Titanium -1 ÉV GARANCIA - Kártyafüggetlen, MS3503
- Alienware 17r4 olvass
- HIBÁTLAN iPhone 14 Plus 128GB Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS3659, 100% Akksi
- Jabra Speak2 75 MS Teams USB-bluetooth hangszóró
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: ATW Internet Kft.
Város: Budapest
Üdv.




7;"*K311*";C3


Fferi50
