- Telekom mobilszolgáltatások
- Milyen okostelefont vegyek?
- Huawei Watch 4 Pro - kívül-belül domborít
- One mobilszolgáltatások
- Milyen GPS-t vegyek?
- Fotók, videók mobillal
- Apple Watch
- Bemutatkozott a Poco X7 és X7 Pro
- Csak semmi szimmetria: flegma dizájnnal készül a Nothing Phone (3)
- Google Pixel 9a - a lapos munka
-
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
-
Delila_1
veterán
válasz
mimi_bacsi #3414 üzenetére
Tedd egy külön mappába az xls-eket, amiket össze akarsz fésülni
Vegyél egy új füzetet, az első sorba másold át a címsort. Másold be a scriptet, mentsd el a fájlt Gyűjtő néven, de másik könyvtárba.
Írd át az útvonalat, és a Range(Cells(2,1), Cells(usor,4)).Copy sorban írd át a 4-et annyira, ahány oszlopod van az összefésülendő fájlokban. A 4-es a D oszlopot jelenti.
A script egyenként behívja a mappában lévő fájlokat, az adatokat egymás alá beilleszti a Gyűjtő füzetbe, bezárja a behívott füzetet. Az összegyűjtött adatokat a végén kedved szerint rendezheted.Sub Fésü()
Const utvonal = "E:\Eadat\Új mappa\" 'Ezt írd át arra a mappára, ahol az xls-eid vannak
Dim FN As String, WB As Workbook
ChDir utvonal
FN = Dir(utvonal & "*.xls", vbNormal)
Do
If FN <> "." And FN <> ".." Then
Workbooks.Open Filename:=FN
usor = Range("A65536").End(xlUp).Row + 1 'Behívott füzet alsó sora
Windows("Gyűjtő.xls").Activate
gy_usor = Range("A65536").End(xlUp).Row + 1 'Gyűjtő füzet alsó sora
Windows(FN).Activate 'Behívott füzet
Range(Cells(2, 1), Cells(usor, 4)).Copy 'A:D oszlop (1:4)
Windows("Gyűjtő.xls").Activate 'Gyűjtő füzet
Cells(gy_usor, 1).Select
ActiveSheet.Paste
Windows(FN).Activate 'Behívott füzet
ActiveWorkbook.Save
ActiveWindow.Close
End If
FN = Dir()
Loop Until FN = ""
End Sub -
Delila_1
veterán
válasz
mimi_bacsi #3412 üzenetére
Vannak egyforma adatok?
Mert ha nincsenek, Ctrl+C, Ctrl+V.
Ha vannak, kicsit több részlet kellene. -
Delila_1
veterán
válasz
mimi_bacsi #3409 üzenetére
Ez meg megadja a mentett fájlnál az útvonalat, a füzet és a lap nevét.
A még nem mentettnél a két utolsó adatot.
Csak ennyit kell írni-> =fájlnév() – ha ezt a kis scriptet bővítményként mentetted, és a bővítménykezelőben bejelölted.Function fájlnév()
If ActiveWorkbook.Path > "" Then utvonal = ActiveWorkbook.Path & "\"
füzet = ActiveWorkbook.Name & "\"
lap = ActiveSheet.Name
fájlnév = utvonal & füzet & lap
End Function -
Delila_1
veterán
válasz
mimi_bacsi #3402 üzenetére
Szívesen. Részemről sokkal többre tartom az "ihlet" adását, mint a kész megoldást.
-
Delila_1
veterán
válasz
mimi_bacsi #3392 üzenetére
Nem biztos, hogy jó a válaszom. Be kellene tenned egy képet mutatóba, hogy milyen adatokról és feltételekről van szó, hogy helyezkednek el.
Figyelmesebben olvasva a kérdésedet, minden cellát összesítened kell, ahol IGAZ értéket kapsz. Az én példám azt jelzi, ha mind a 11 feltétel teljesül. -
Delila_1
veterán
válasz
mimi_bacsi #3387 üzenetére
A SZUMHA képlettel azt add össze, ahol az M oszlopban 1 van, mert ott feleltek meg mind a 11 kritériumnak az adataid. Természetesen szövegek is lehetnek az adatok között, és olyanok is, hogy pl. A1>=C1.
-
Delila_1
veterán
válasz
mimi_bacsi #3384 üzenetére
A második függvénnyel sikerül egy oszlopba összehoznod a 11 feltétel összesített eredményét, ezután a SZUMHA függvénnyel elvégezheted az összeadást.
-
Delila_1
veterán
válasz
mimi_bacsi #3384 üzenetére
Csakis GhOsT 3375-ös válasza szerint járhatsz el.
A HA és ÉS függvénnyel megvizsgálsz 6 feltételt.
A függvény oszlopába a kiértékelésnek megfelelően IGAZ vagy Hamis értéket íratsz (vagy 1-t és 0-t, vagy ami kedvedre való).
Ezt az oszlopot és a maradék 5 feltételt együtt vizsgálod. -
Delila_1
veterán
válasz
lacko81 #3377 üzenetére
Tegnap a D oszlopba került az utca és a házszám.
Van itt egy kis makró, ami az E oszlopba írja az utcát, az F-be a házszámot.Sub hazszam()
sor = 1
Do While Cells(sor, 4) <> ""
nev = Cells(sor, 4)
For b = Len(nev) To 1 Step -1
If Mid(nev, b, 1) = Chr(32) Then
Cells(sor, 5) = Left(nev, b - 1)
Cells(sor, 6) = Right(nev, Len(nev) - b)
Exit For
End If
Next
sor = sor + 1
Loop
End Sub -
Delila_1
veterán
válasz
lacko81 #3366 üzenetére
Adatok szétszedése:
Vegyük, hogy A1-ben van a címed.B1-> =bal(a1;4)
C1-> =közép(a1;5;szöveg.talál(" ";a1;6)-5)
D1-> =jobb(a1;hossz(a1)-szöveg.talál(" ";a1;6))Ezeket végigmásolod, utána érdemes a B
oszlopokat másolni, és ugyanoda irányítottan az értékeket beilleszteni.
Adatok összemásolása:
=A1&" "&B1&" "&C1... stb. -
Delila_1
veterán
válasz
lordring #3363 üzenetére
A makró egyenként behívja az "utvonal" változó szerinti könyvtárban lévő csv-ket, elvégzi a módosításokat, amiket adsz neki, majd xls kiterjesztéssel menti ugyanoda, bezárja mindkét tip. fájlt. Ha nem akarod bezáratni, töröld a zárás sorát. Azért írtam bele, mert 20-30 (-szor 2) fájl elég sok és zavaró egyszerre megnyitva.
Sub csv()
Const utvonal = "C:\Documents and Settings\KZoli.TIGER-TOOLS\Asztal\"
Dim FN As String, WB As Workbook
ChDir utvonal
FN = Dir(utvonal & "*.csv", vbNormal)
Do
If FN <> "." And FN <> ".." Then
Set WB = Workbooks.Add
Workbooks.Open Filename:=FN
nev = Left(FN, Len(FN) - 3) & "xls"
' Ide írd be, amit az xls-ben el akarsz végeztetni
ActiveWorkbook.SaveAs Filename:=utvonal & nev, FileFormat:=xlNormal
WB.Close False 'Ez azonnal be is zárja a változatlan csv-t.
ActiveWindow.Close 'Ez meg a csv-hez képest módosított xls-t
End If
FN = Dir()
Loop Until FN = ""
End Sub -
Delila_1
veterán
-
-
Delila_1
veterán
A feltételes formázással könnyen megoldható.
Felveszed pl. C1-be azt az összeget, aminek figyelteted a 10%-át.
A formázandó cellán állva behívod a Formátum menüből a feltételes formázást.
A feltételhez kiválasztod "A cella értéke" nevűt, a következő mezőben a "kisebb, mint", vagy a "kisebb vagy egyenlő" feltételt. A harmadik mezőbe beírod: =C1/10.
A formátumnál beállítod a font-, a háttér- és a szegélyek paramétereit.Ezt a formátumot másolhatod más cellákra is.
-
-
Delila_1
veterán
Nincs hozzá függvény, hát csináljunk.
Nyiss egy füzetet, és csak egy lapot hagyj benne. Alt+F11-re bejön a VBE. Nyitsd ki bal oldalon a füzetedet (+ jelnél). Insert/Module. Jobb oldalon kaptál egy üres modullapot. Oda másold be:Function KerekítésÖtre(szám As Long)
b = Right(szám, 1)
Select Case b
Case 1
szám = szám - 1
Case 2
szám = szám - 2
Case 3
szám = szám + 2
Case 4
szám = szám + 1
Case 6
szám = szám - 1
Case 7
szám = szám - 2
Case 8
szám = szám + 2
Case 9
szám = szám + 1
End Select
KerekítésÖtre = szám
End FunctionLépj vissza az Excelbe, mentés másként, KerekítésÖtre.xla (bővítmény).
Zárd be és nyitsd meg újra az Excelt. Az Eszközök/Bővítménykezelőben szerepelni fog a Kerekítésötre, jelöld be.
Ezután már a függvényeid között is megtalálod, a Felhasználói, és a Mind kategóriákban. -
Delila_1
veterán
válasz
cserepestm #3326 üzenetére
A C:\Program Files\Microsoft Office\Office\1038 könyvtárban találod a Funcs.xls fájlt, ami megadja a magyar függvények angol nevét.
Német és olasz nyelvterületre is küldtem már magyar Excelben írt, függvényeket, makrókat tartalmazó fájlokat, semmi gond nem volt velük, náluk az ő nyelvükön jelentek meg. -
Delila_1
veterán
válasz
student #3294 üzenetére
A # ##0 " eFt" formázás hatására a cellában lévő 1213256 így jelenek meg: 1 213 eFt. (1 db space a nyitó idézőjel előtt)
# ##0 " MFt" –> 1 MFt (2 db space)
# ##0,0 " MFt" –> 1,2 MFt (2 db space)Itt ugyan nem lártszik, de az első esetben a szám és a nyitó idézőjel között 1 db space van, a másodiknál és harmadiknál 2. Az idézőjelen belüli szóköz csupán arra szolgál, hogy ne legyen a szöveg egybeírva a számmal.
Az Excel továbbra is a teljes beírt számmal számol, de a szóközök hatására az ezresekre, ill. milliókra kerekített összeget mutatja. -
Delila_1
veterán
válasz
matekmatika #3257 üzenetére
Akkor áruld el, hogy más is tudja ezután!
-
Delila_1
veterán
Két lépésben teheted meg, mert ez nem számformátum, hanem szöveg.
Vegyük, hogy A oszlopban vannak az adataid.
B1–> =JOBB(A1;HOSSZ(A1)-1) ezzel levettük az elejéről a $ jelet.
C1–> =ÉRTÉK(B1) ez átalakítja számmá.A két képletet együtt végigmásolod az adataid mellett. Ha nincs szükséged az eredetire, a C oszlopot írányítottan, értékként ráilleszted az A oszlopra.
-
Delila_1
veterán
Formátumfestő ecset
Alapbeállítás szerint kint van az eszköztáron. -
Delila_1
veterán
Függvény nincs rá, itt van viszont egy kis makró, ami, ha a B2 háttere piros, a D2-be beírja a B2 és C2 összegét.
A Cells(x,y) kifejezésben az x a sor, az y az oszlop.Sub Piros()
If Cells(2, 2).Interior.ColorIndex = 3 Then
Cells(2, 4) = Cells(2, 2) + Cells(2, 3)
End If
End SubA PC World folyóirat egyik számában Weisz Tamás írt egy xla-t. Két függvényt tartalmaz. Az egyik megszámolja, hogy a kijelölt tartományban hány darab adott színű cella van, a másik pedig összeadja az ezekben található értékeket.
Function CountColor(Mintacella As Range, Tartomany As Range)
Dim rngCell As Range
nColor = Mintacella.Interior.Color
nResult = 0
For Each rngCell In Tartomany
If rngCell.Interior.Color = nColor Then
nResult = nResult + 1
End If
Next rngCell
CountColor = nResult
End FunctionFunction SumColor(Mintacella As Range, Tartomany As Range)
Dim rngCell As Range
nColor = Mintacella.Interior.Color
nResult = 0
For Each rngCell In Tartomany
If rngCell.Interior.Color = nColor Then
nResult = nResult + WorksheetFunction.Sum(rngCell)
End If
Next rngCell
SumColor = nResult
End FunctionKözreadom, hátha valakit érdekel.
-
Delila_1
veterán
Feltételes formázással.
Vegyük, hogy az értékeid I1 : K10 cellákban vannak. Kijelölöd az első (i) oszlopot 1-től 10-ig.
Formátum/Feltételes formázás/A cella értéke egyenlő
Az üres beviteli mezőbe beírod =MIN(I$1:I$10)
Figyelj a $ jelekre. Ezután megadod a formátumot. Ez a legkisebb elemet formázza.Rákkatintasz a Bővítés>>-re, ott a képlet =KICSI(I$1:I$10;2), ezt is megformázod.
Harmadik bővítésnél a képlet =KICSI(I$1:I$10;3). Ennek megformázása után OK.A többi oszlopra a formátumfestő ecsettel átmásolod.
-
Delila_1
veterán
válasz
LifestyleX77 #3225 üzenetére
Azon dolgozom, azóta nagyon kibővültek az igények. Rögtön megnézem, amit küldtél.
-
Delila_1
veterán
válasz
LifestyleX77 #3222 üzenetére
Kipróbáltam $ jelekkel és azok nélkül is. A Munka1 lapon a hivatkozás
=Munka2!A18, és Munka2!$A$18 formában is a megfelelő értéket mutatja akkor is, ha a Munka2 lapon beszúrok a A18 elé oszlopot, vagy sort, vagy törlöm azokat.
Sor-, és oszlop beszúrása és törlése esetén a hivatkozást átírja az Excel, a hivatkozott cella új pozíciójára.
Megpróbáltam azt is, hogy a Beállításoknál (Eszközök menü) a Számolás lapon nem az Automatikus, hanem a Csak kérésre gombot jelöltem be, de akkor is átírja a hivatkozást.
El sem tudom képzelni, nálad hogy működhet másként. -
Delila_1
veterán
Cselezni kell. Start menü/Programok/Kellékek/Rendszereszközök/Karaktertábla.
A Windsor BT betűtípusnál találsz egy felsőindexes kettest. Kijelölöd, másolod.
Excelben Cellaformátum/Egyéni, a kiválasztott vagy beírt # ##0,00 után közvetlenül idézőjel, majd Ctrl+C, idézőjel bezárva. Ezt a formátumot másolhatod is.
A szerkesztőlécen nem jelenik meg, mert ez formátum. Ha számot írsz ebbe a cellába, ott látszik, és számolni is lehet az értékkel. -
Delila_1
veterán
válasz
rebel56 #3182 üzenetére
Ez meg azt automatizálja, amit lúzer írt a #3185-ben, hogy ne kelljen kézzel beszúrni minden sor elé egy másikat, összevonni két-két cellát, és beírni a hivatkozást:
Sub Sorok_beszurasa()
usor = ActiveSheet.UsedRange.Rows.Count
For sor = 1 To usor * 2 Step 2
Cells(sor, 1).Select
Selection.EntireRow.Insert
Range(Cells(sor, 1), Cells(sor + 1, 1)).Select
Selection.Merge
Next
sor = 1
Do While sor < usor * 2
Cells(sor, 2).Select
Selection.Formula = "=A" & sor
Cells(sor + 1, 2).Select
Selection.Formula = "=A" & sor
sor = sor + 2
Loop
End SubEhhez is hozzáírható az a pár sor, ami az előző hozzászólásomban a Next után van.
-
Delila_1
veterán
válasz
rebel56 #3178 üzenetére
Van itt egy kis makró a problémádra:
Sub valami()
usor = ActiveSheet.UsedRange.Rows.Count
s = 2
For sor = 2 To 2 * usor - 1 Step 2
Cells(sor, 2).Select
ActiveCell.Formula = "=A" & s
Cells(sor + 1, 2).Select
ActiveCell.Formula = "=A" & s
s = s + 1
Next
Columns("B:B").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("A1").Select
Application.CutCopyMode = False
End SubA Next utáni sorok elhagyhatók, azok a beírt hivatkozásokat alakítják át értékekké.
lúzer!
A #3185-ös hozzászólásodban a mintát a saját gépedről tetted fel, így csak akkor látható, mikor te is "képben vagy". Pedig biztosan jó megoldást adtál. -
Delila_1
veterán
A #3170-esben =SZUM(B2 : U2), szóközök nélkül.
-
-
Delila_1
veterán
A lapfülön jobb klikk, Kód megjelenítése. A megjelenő Visual Basic szerkesztőn a jobb oldalon lévő nagy üres lapra bemásolod az alábbi makrót:
Sub Worksheet_Change(ByVal Target As Excel.Range)
If (Target.Column = 1) Then
Cells(Target.Row, 5) = Cells(Target.Row, 2) + Cells(Target.Row, 3) _
+ Cells(Target.Row, 4)
End If
End SubEz, ha az A oszlopba írsz valamit, az E oszlopba beírja az azonos sorban lévő B+C+D értéket.
Ha nem az E-be kell, a Cells(Target.Row,5)-nél írd át az 5-öt annyira, amennyi a kívánt oszlop sorszáma az angol ABC-ben (F-nél 6, G-nél 7, T-nél 20, stb).
Amennyiben másik lapnál is kell ez a funkció, ugyenezt a makrót a másik lap kódlapjára is másold be. -
Delila_1
veterán
A képleteket tartalmazó cellák formátumánál a Védelem fülön jelöld be a Zároltat (ez az alapértelmezés), a nem védetteknél meg vedd ki a pipát.
Ezután az Eszközök/Védelemnél védetté teszed a lapodat, vagy az egész füzetedet. Csak ekkor lép életbe a cellák védelme.
A lapvédelem zárolja felülírás ellen a képleteidet tartalmazó cellákat, a füzet védelme az egész füzetet. -
Delila_1
veterán
Ha kell, elküldöm a kört.
-
Delila_1
veterán
-
Delila_1
veterán
Valamilyen rajzoló programban csinálsz egy kört (jpg, bmp).
A táblázatodban egyik oszlopban a nevek vannak, másikban (mellette) a fizetések – legyen címsor is.
Kijelölöd a tartományt, és a DiagramVarázsló (ikon) segítségével csinálsz egy közönséges oszlopdiagramot.
Rákattintasz az egyik oszlopra, mire az összeset kijelöli.
Jobb gomb, Adatsorok formázása. A Feliratok fölün bejelölöd az Érték látszik jelölőt, majd átmész a Mintázat fülre.
A Kitöltés csoport alján megnyomod a Kitöltési effektusok gombot.
A Kép fülön a Képválasztás gomb segítségével előcsalod a szép körödet, bal oldalon pedig bejelölöd a Nyújtott jelölőt.
Néhány OKÉ után te vagy a nyerő.
Azért nézd meg azt is, mit csinál, ha a Nyújtott helyett a Halmozott, vagy a Halmozás, nyújtás jelölőt választod. -
Delila_1
veterán
válasz
Okoska2 #3141 üzenetére
Próbáld már egy kicsit pontosabban meghatározni, mit is szeretnél. Egy oszlop adataiból akarsz grafikont létrehozni, azt hogy akarod két tengelyhez rendelni?
Az egyik a függőleges (y), a másik a vízszintes (x)? Mi az a 0.1?
Az y tengely skáláját alapban a bevitt adatok határozzák meg.
Ahhoz, hogy minden 17. adatból készüljön a grafikon, itt egy makró, ami a kívánt sorok T oszlopába betesz egy *-ot. A makró futása után egy autoszűrővel szűrheted a tartományodat a kellő sorokra.Sub tizenhet()
For sor = 2 To 9200 Step 17
Cells(sor, 20).Value = "*"
Next
End Sub -
Delila_1
veterán
válasz
Bandit21 #3130 üzenetére
Ezt nem itt, hanem egy Word-ös fórumon kérdezd meg.
Ott megmondják, hogy milyen mező beszúrásával lehet elérni, hogy ha az aktuális rekordban a név megegyezik az előző rekord nevével, akkor szúrja be a Hrsz-t, tulajdon hányadot, stb., ellenkező esetben hagyja üresen a mezőt. -
Delila_1
veterán
Jelöld ki a táblát, vagy annak azt a részét, ahol be akarod tömni a lyukakat.
Szerkesztés/Ugrás/Irányított ugrás/Üres cellák
Beírod-> =
nyomsz egy fel nyilat
Ctrl+Enter
Ez egyszerre az összes kijelölt celládba beviszi a fölötte lévő adatot hivatkozással. Ha fixen akarod (nem képlettel) látni ezután a most bevitt értékeket, ezután kijelölöd újra az összes adatot, Ctrl+C, Irányított beillesztés/Értéket. -
Delila_1
veterán
Itt egy kis makró, ami mindegyik sorba, ami DVD-t tartalmaz, beállítja az igen-nem legördülőt (adatérvényesítést). R1-be és R2-be írd be az igent és a nemet. Ha foglalt a két cellád, a maróban az új hely címére írd át a $R$1:$R$2-t.
Sub DVD()
Range("A1").Select
Selection.End(xlDown).Select
usor = Selection.Row
For sor = 2 To usor
If Cells(sor, 3) = "DVD" Then '***
Cells(sor, 4).Select '***
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=$R$1:$R$2" '***
.ShowInput = True
.ShowError = True
End With
End If
Next
End SubHárom sort "csillagoztam". Ez a makró azt feltételezi, hogy a 3. (C) oszlopban szerepel a DVD kifejezés. Az If kezdetű sorban javítsd ki a 3-at annyira, ahányadik oszlopban van a szöveged. A következő csillagos sorban a 4-et annyira, ahányadik oszlopba akarod tenni a legördülőt.
-
Delila_1
veterán
Szokásom szerint megint elkapkodtam a választ. A fenti arra vonatkozik, hogy a 2-t hogyan lehet felső indexbe tenni.
És most az igazi:
A cellaformázás Szám fülén válaszd az Egyéni kategóriát, a Formátumkódhoz írd be
# ##0" m2". Ez az ezres tagolást is megadja, és bár mértékegységgel együtt írja ki a számot, azért számként értelmezi, lehet vele számtani műveleteket végezni.
Ennél nem lehet beállítani a felső indexet. -
Delila_1
veterán
Kösz szépen a könyv címét.
A fenti makród most azokat a sorokat törli, amelyekben nem szerepel 0. Eddig nem fordítva akartad? Ha igen, akkor csak a feltételt kell módosítani, If nev <> 0-ra.
Az i=19 helyett elegánsabb az Exit For.
Minden feladatot több módon lehet végrehajtani, itt egy másik, ez a nullás sorokat törli.For x = 2 To 10
For i = 0 To 19
nev = Cells(x, i + 7)
If nev = "0" Then
Rows(x).Select
Selection.Delete Shift:=xlUp
x = x - 1
Exit For
End If
Next i
Next x
Új hozzászólás Aktív témák
Hirdetés
- Telekom mobilszolgáltatások
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Philips LCD és LED TV-k
- alza vélemények - tapasztalatok
- Vezeték nélküli fejhallgatók
- Nagyon erős ajánlattá kezd válni a SteamOS
- Milyen processzort vegyek?
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Energiaital topic
- Samsung LCD és LED TV-k
- További aktív témák...
- REFURBISHED - HP USB-C Universal Dock G1 docking station (DisplayLink)
- Új Apple iPhone 16 Pro Max 256GB, Kártyafüggetlen, 3 Év Garanciával
- Fém, összecsukható és kihúzható fotó állvány eladó
- Honor 200 , 8/256GB , Kártyafüggetlen
- Apple Macbook Pro 13 2020 - M1 - 8GB/256GB SSD - Touch Bar - 102 Ciklus - 99% Akku - Ezüst - MAGYAR
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged