- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- sh4d0w: Netflix? Ugyan, VW előfizetés!
- LordAthis: Ismét egy "Idióta" A.I. Projekt, hogy meglovagolja az aktuális trendeket...
- gban: Ingyen kellene, de tegnapra
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- Geri Bátyó: Megint tahó voltam – SZEMÉLYISÉGFEJLŐDÉS
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Brogyi: CTEK akkumulátor töltő és másolatai
- LordAthis: AI (és másra is használt) Cluster építése - Második Cikk
-
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
-
lappy
őstag
válasz
Nagyzoli27 #41594 üzenetére
saját függvénnyel
Function RemoveDupes2(txt As String, Optional delim As String = " ") As String
Dim x
'Updateby20140924
With CreateObject("Scripting.Dictionary")
.CompareMode = vbTextCompare
For Each x In Split(txt, delim)
If Trim(x) <> "" And Not .exists(Trim(x)) Then .Add Trim(x), Nothing
Next
If .Count > 0 Then Remove= Join(.keys, delim)
End With
End Function -
Nagyzoli27
kezdő
Üdv!
Azt szeretném kérdezni, hogy egy cellán belül hogy lehet az ismétlődő értékeket kivenni?
Az alábbi példában a kijelölt részt például:NYCY 5X 2,5 RE/2,5 NYCY 5X 2,5 RE/2,5 mm2 kábel 0,6/1kV
Köszönöm
-
Polllen
félisten
Sziasztok!
Egy kis segítségre lenne szükségem.
BI-ból töltünk le adatokat, ahol a a dátumok "16.08.2019" formátumban jönnek le, az angol excel viszont (gondolom a magyar régiós beállítások miatt) nem ismeri fel dátumként. Pl. ha ebből az értékből kivonom a today() függvényt, hibára fut.
Az isdate() viszont simán elfogadja dátumnak...
Hogyan tudnék ezekkel a dátumokkal a legegyszerűbben dolgozni? Most azt csinálom, hogy Date()-tel kicserélem "2019.08.16" formátumra, de ez így elég macera. Ráadásul a csavar az, hogy ha én töltöm le az adatokat, nálam a dátum jól jelenik meg. Viszont ha broadcastelem, a szerver már így küldi ki...
-
Fferi50
Topikgazda
válasz
bozsozso #41591 üzenetére
Szia!
Csak ötletek:
- a függvénnyel csinálsz segédcellákat, minden tétel összesen sorára, amire szükséged van és ezeket a cellákat használod a továbbiakban.
- Hol.Van függvénnyel megkeresed a Végösszesen sort és az Index függvény visszaadja a teljes sort neked.=SZORZATÖSSZEG(INDEX(B1:X5000;Hol.Van("Végösszesen";A1:A5000;0);0);TRANSZPONÁLÁS(Y1:Y23)
A kimutatásod az A oszlopban kezdődik és az X oszlopig tarthat, max 5000 sorral. Az oszlopszám és a sorok száma is növelhető. Az Index függvény azt a sort fogja használni, amelyikben a HOL.VAN függvény megtalálja a Végösszesen szót az A oszlopban. A másik tényező az Y oszlopban van, természetesen a saját feltételeidnek megfelelően állítod be.
Üdv. -
bobsys
veterán
Sziasztok, hogyan lehet egy formulaban hivatkozni egy cella ertekere?
Konkretabban van egy ilyenem, hogy =countif(A1:A20,"*akarmi) es ezt szeretnem ugy megcsinalni, hogy a *akarmi helyett egy masik cellaban levo erteket rakjon be. Van vagy 100 sorom ahol meg kell kulonbozo "akarmit" szamolni es nem szeretnem egyesevel modositgatni a formulat. -
bozsozso
őstag
Sziasztok,
Nem nagyon tudok szabadulni innen.
Azt meg lehet határozni egy kimutatásnál, hogy a végösszesen sor ne a legvégén hanem az elején legyen? Fontos lenne, mert ezzekkel az értékekkel még tovább szeretnék számolni, de így hogy mindig ha több sor kerül be frissítéskor akkor ennek a helye is változik.
-
EmberXY
veterán
Sziasztok!
Diagrammal kapcsolatos kérdésem lenne.
Egy táblázatban termékek fogyása fel feltüntetve, a beszerzési ár és a mennyiség szorzata alapján szeretném csoportosítani ezeket egy diagram segítségével. Mivel a táblázat termékcsoportonként mutatja az egyes tételeket, nincs sorba rendezve, emiatt a diagramon is "össze-vissza" látszanak az értékek.
A kérdésem az lenne, hogy diagramon belül van-e lehetőség az adatok sorbarendezésére, vagy mindenképp olyan sorrendben fognak látszódni mint ahogy a kijelölt tartományban vannak?
Válaszokat előre is köszönöm. -
bozsozso
őstag
-
Mutt
senior tag
válasz
bozsozso #41577 üzenetére
Hali,
Ha 100 terméked van a termék lapodon, akkor a rendelt munkalapodon mindegyik terméknek kell egy oszlop (vagyis ott 100 oszlop kellene hogy legyen).
A képernyőmentés szerint van 38 terméked (3-40 sorig), de a rendelt munkalapon csak 28 oszlopot jelöltél ki a B3:AC3 tartománnyal. Ez hibához vezet. 38 sorhoz, 38 oszlop kell (azonos sorrendben kell lenniük itt és ott is a termékeknek hogy helyes eredmény legyen).
üdv
-
bozsozso
őstag
Az első szorzatösszeg példa azért nem jó, mert nem egyeznek meg a sorok és az oszlopok száma.kb.100 termék és kb 20 anyag. Eddig ezt a megoldást használtam csak bővültek a termékek és az anyagok így mindig változtatnom kell rajta.
A második nem akar működni.
Nekem valahogy ebben a cellák nem állnak össze. Az INDEX függvénynél a tömb az oké, hogy csak az értékekre vonatkozik, de miért van fixen a 0.sor megadva?A b3 cellában nem a B$1-et kellene keresni a HOL.VAN függvénnyel?
-
Mutt
senior tag
válasz
Aladaar #41574 üzenetére
Szia,
Ha A2-ben van az eredeti szöveged, akkor ez visszaadja az első számig a karaktereket.
=KIMETSZ(BAL(A2;HAHIBA(HOL.VAN(IGAZ;SZÁM(KÖZÉP(A2;SOR(INDIREKT("$A$1:$A"&HOSSZ(A2)));1)*1);0)-1;HOSSZ(A2))))
Ctrl+Shift+Enter-t kell majd nyomod bemásolás után, mert tömb-függvény.
üdv
-
Mutt
senior tag
válasz
bozsozso #41573 üzenetére
Szia,
SZORZATÖSSZEG függvény fog segíteni a szorzásban és az összeadásban.
Csak 2 plusz feladat van:
1. a rendelések lapon a rendelt mennyiségek vízszintesen vannak megadva termékenként, miközben a termékek lapon függőlegesen. Itt a TRANSZPONÁLÁS függvényt kell segítségül hívni.
2. a képletet nem simán Enter-el, hanem Ctrl+Shift+Enter-el kell bevinni.A példádra a képlet csak ennyi lenne (feltételezve hogy 22 terméked van, ha több akkor mindkét hivatkozást egységesen bővíteni kell - fontos hogy az sorok száma és az oszlopok száma azonos legyen).
=SZORZATÖSSZEG(Termekek!B2:B23;TRANSZPONÁLÁS(Rendelesek!$B2:$W2))
Ez a képlet másolás során el fog csúszni, ezért kell az iNDEX - HOL.VAN-al javítani rajta.
=SZORZATÖSSZEG(INDEX(Termekek!$B$2:$G$23;0;HOL.VAN(Felhasznalas!E$1;Termekek!$B$1:$G$1;0));TRANSZPONÁLÁS(Rendelesek!$B9:$W9))
üdv
-
Aladaar
tag
Adott egy lista, nevekkel, de sok név után változó mennyiségű szóközzel, és a végén 1-3 darab számmal. Hogyan tudnám a nevek utáni felesleges szóközt és számokat eltüntetni? A "kimetsz" törli a felesleges szóközöket, de a számokra nem találtam megoldást.
előre is köszönöm,
A. -
bozsozso
őstag
válasz
Fferi50 #41569 üzenetére
Hát nem nagyon boldogulok.a Termék munkalapról az index-hol.van fügvényekkel megtalálom a megfelelő értéket, de arra nem találok megoldást, hogy hogyan lehetne összeadni az eredményeket.
Tehát van egy termékek adatlap amin megvan, hogy a termékekhez milyen anyagmennyiség tartozik(T01,T02, T03 stb.-termékek ,A01, A02,A03 stb - anyagok) pár cellát elrejtettem mert azok nem fontosak.
Van egy rendelt munkalap aminek első sorában csak a termékek(T01,T02, T03 stb.) vannak az A oszlopban pedig a dátum. A rendelt mennyiség kézzel kerül kitöltésre minden nap minden termékre.
Amelyik munkalapon pedig számolni szeretnék az a felhasználás adatlap Első sorban az anyagok A01, A02,A03 stb) A oszlopban dátum.
Itt szeretném pl.: a B3 cellába ha összeszorozná a rendelt munkalapon található mennyiségek
anyagfelhasználását.A termékekhez tartózó külön anyagfelhasználást azt ki tudom íratni ezzel a 2 függvénnyel, de azt nem sikerül megoldanom, hogy az A01 anyagnál adja össze a T01,T02, T03 stb. termékek A01 anyagfelhasználást megszorozva a termékből rendelt mennyiséggel.
A minta képeken több tizedes jeggyel szerepelnek anyag felhasználások ezért más számokkal itt leírnám.
Ha T01-nek A01 anyagtartalma 1
T02-nek A01 anyagtartalma 2
T01-ből rendeltek 10-et 2015.01.01-én
T02-ből pedig rendeltek 20-at 2015.01.01-énAkkor A01 anyagfelhasználás (10*1)+(20*2)=50 Ennek kellene a B3 cellába kerülni és így sorba a napokon anyagokon.
Ami még fontos, hogy nem minden terméknél van minden anyag felhasználva.
Lehet kicsit túlmagyarázom.
-
lappy
őstag
-
Sziasztok!
Magyar Office 2013
Egy karaktersorozatból pl. (01)123(02)456 szeretném kivágni a zárójeleket.
Ezt jelenleg két lépésben tudtam megoldani, a (01)-et lecserélem 01-re, majd egy másik cellában a (02)-t 02-re. (A (01) és (02) mindig fix amúgy.)
pl. B1-ben
=CSERE(A1;1;4;"01")
majd erre
=CSERE(B1;6;4;"02")Hogyan lehetne ezt elegánsabban, egy függvénnyel megoldani?
Tehát pl. mindkét cserét egy függvényben hajtsa végre?Köszi!
-
bozsozso
őstag
Sziasztok,
Azt hogy tudnám elérni, hogy A oszlopban 2. sortól van kb.100 termék,B-C-D stb. oszlopok első soraiban kb 20 anyag. A termék és anyag metszéspontjában van, hogy az adott termék milyen mennyiségben tartalmazza az anyagot. Másik munkalapon fel vannak sorolva a termékek rendelt mennyisége. Ennek a rendelt mennyiségnek szeretném az anyagfelhasználását kiszámolni egy harmadik munkalapra ahol az anyagok vannak felsorolva. Végső megoldásként azt szeretném ha tudnám bővíteni a termékeket és az anyagokat is.
Vagy szívesen veszek javaslatokat is ki hogyan csinálná meg akár teljesen más elrendezéssel, felvitellel. Annyi a lényeg, hogy a rendelt mennyiség mindig termékenként és napra van megadva, amiből naponta kell számolni az anyag szükségletet.
szerk.
kicsit más: meg lehet valahogy adni egy cellában úgy cella tartalom kiolvasást, hogy megadom benne az oszlopot a sor számát pedig cella tartalomból veszem ki
Pl.:
A1 = alma
b1 = 1
c1 cellába pedig valami ilyesmit szeretnék megadni ="A"&b1Ez tudom, hogy azt adja vissza, hogy A1, de én azt szeretném, hogy kiírja alma
-
Delila_1
veterán
Lehet, hogy lépésenként futtattad, és kiléptél az Application.EnableEvents = True sor végrehajtása előtt. A futás tiltása (False) maradt érvényben.
A VBE felületen Ctrl+g-re megjelenik az Immediate ablak, oda írd be az engedélyező sort, és enterezd le.Átírtam a makrót. A megadott G2:G350 tartomány módosulását figyeli, és az A:C tartományt másolja a 2. lapra, majd a G-t a D-be. Ez utóbbinak nem sok értelme van, ha nullás bevitel esetén másol. Bármilyen G oszlopbeli érték megadásakor történő másoláshoz vedd ki a belső If - End If feltételt. Csakis az If és End If-es sort, a magot ne!
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ide As Long
If Not Intersect(Target, [G2:G350]) Is Nothing Then
If Target = 0 Then
Application.EnableEvents = False
ide = Sheets("Munka2").Range("A" & Rows.Count).End(xlUp).Row + 1
Range("A" & Target.Row & ":C" & Target.Row).Copy Sheets("Munka2").Range("A" & ide)
Range("G" & Target.Row).Copy Sheets("Munka2").Range("D" & ide)
Application.EnableEvents = True
End If
End If
End Sub -
g4b3n
tag
válasz
Delila_1 #41564 üzenetére
Köszönöm a gyors választ.
Laphoz rendeltem, de semmi sem történik a munkalap2-n.
Majd csináltam egy teszt excelt 2 db munkalappal, az elsőbe bemásoltam a táblázatot, és hozzárendeltem makrót, viszont így sem történt semmi.
Makró barátként mentettem el mind a két doksit.
Nem értek még az excel makróhoz viszont, valamennyire értek a programozáshoz (C nyelv).
If Target.Column = 7 Then
ide = Sheets("Munka2").Range("A" & Rows.Count).End(xlUp).Row + 1A G oszlopot 7-es szám jelöli a kódban a Munka2 pedig a 2. munkalapot, ezeket akár egy másik projekthez már tudom változtatni.
Szóval mi lehet a gond, miért nem működhet a makró?
Újabban felmerült olyan, hogy csak az A B C és G oszlopokat kell átmásolni egymás melletti cellákba a 2. sortól kezdően (az 1. sort figyelmen kívül kell hagyni), másrészt a vizsgálandó sorok számát lehessen változtatni, pl. 350-ig. Azaz 2-350-ig kell megvizsgálni a G oszlopot.
-
dm1970
aktív tag
válasz
Delila_1 #41547 üzenetére
Szia!
Kicsit elhúzódott a hosszú hétvége.
Köszi, így már tökéletes, az igazzal próbálkoztam én is, több variációban, de mivel teljesen sötét, hogy mi mit miért csinál a képletben, nem jutottam előrébb.
Viszont hogy el ne feledkezzek a CSE-ről, a Mutt féle képletnél maradtam.Mutt
Köszi Neked is, mivel a 3. volt a legrövidebb, először azzal próbálkoztam, s mivel ment a többit nem teszteltem.
-
Delila_1
veterán
Az első munkalapodhoz kell rendelned a makrót (a Téma összefoglalóban megtalálod a leírást)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ide As Long
If Target.Column = 7 Then
If Target = 0 Then
Application.EnableEvents = False
ide = Sheets("Munka2").Range("A" & Rows.Count).End(xlUp).Row + 1
Rows(Target.Row).Copy Sheets("Munka2").Range("A" & ide)
Application.EnableEvents = True
End If
End If
End Sub -
g4b3n
tag
Sziasztok!
Adott egy 2010-es excel, amiben van egy munkalap. A-M oszlopig vannak benne adatok több száz sorral pedig az egyes tételek felsorolva.
A G oszlopban vannak a mennyiség adatok.
Azt szeretném elérni, hogyha a G oszlop adott cella értéke nem 0, akkor azt másolja át erről a munkalapról egy új munkalapra az egész sor tartalmát (A-M-ig), úgy hogy a tételek között nincs üres sor.pl.
Ha 1. munkalap 23. és 98. sorában a G oszlop értéke nem nulla, akkor az a 2. munkalap 2. és 3. sorába másolja át az előző két sor (A-M-ig) tartalmát.Köszönöm a segítséget.
-
Delila_1
veterán
-
Sutyi73
csendes tag
-
Delila_1
veterán
válasz
Sutyi73 #41559 üzenetére
Mivel a
Range("A2:E" & ActiveSheet.UsedRange.Rows.Count).Copy Destination = _ wb.Worksheets("Célmunkalap").Range("A" & wb.Worksheets("Célmunkalap").UsedRange.Rows.Count + 1)
sorral már megtörtént a másolás, nincs szükség a
Windows("Órák.xlsm").Activate
Range("A" & wb.Worksheets("Célmunkalap").UsedRange.Rows.Count + 1).Select
ActiveSheet.Pastesorokra. Nem programkódként másoltad ide a makrót, így nem látom, hogy a felső utasítás 1 sorban van-e. A "Destination =" után egy szóközzel alsó kötőjelet tettem be az eredeti mögé.
A mappából megnyitott füzet bezárását így add meg
Workbooks(fileName).Close False
akkor nem kérdez rá a mentésre.
-
Sutyi73
csendes tag
Üdv!
Eddig eljutottam, de nem jól működik. Mi lehet a hiba? A másolt adatokat szépen egymás alá kellene folyamatosan írnia, de nem úgy csinálja.Sub Munka1()
Dim wb As Workbook
Set wb = ActiveWorkbook
Dim directory As String, fileName As String, sheet As Worksheet
directory = "D:\2019.08\"
fileName = Dir(directory & "*.xlsx")
Do While fileName <> ""
Workbooks.Open fileName:=directory & fileName, ReadOnly:=True
Range("A2:E" & ActiveSheet.UsedRange.Rows.Count).Copy
Destination = wb.Worksheets("Célmunkalap").Range("A" & wb.Worksheets("Célmunkalap").UsedRange.Rows.Count + 1)
Windows("Órák.xlsm").Activate
Range("A" & wb.Worksheets("Célmunkalap").UsedRange.Rows.Count + 1).Select
ActiveSheet.Paste
Workbooks(fileName).Close
fileName = Dir()
Loop
End Sub -
Sutyi73
csendes tag
Üdv! Segítséget szeretnék kérni.
Adott egy könyvtár, amiben xlsx fileok vannak. Egy táblázatban kellene összesíteni ezeknek a fileoknak adatait. Ezt hogyan lehet kivitelezni. Az A oszlopban levő számok egy egy embert jelentenek, a G oszlopban levők pedig munkaórákat. A cél, hogy egy táblázatban ezeket összesítsük. A könyvtárban az xlsx állományok 2019.08.04 N, 2019.08.04 É, 2019.08.05 N stb. elnevezésűek. Kérlek ha tudtok segítsetek.Bocsi nem akartam még egyszer kirakni.
-
Sutyi73
csendes tag
Illetve a destination sornál syntax errort ír.
Illetve még egy kérdés. Ha két ugyanolyan szám szerepel az A oszlopban, akkor azt össze kell vonni úgy, hogy az E oszlop értékeit össze kell adni. Az A oszlop marad.
Tehát: A B C D E A B C D E
38 12.5 38 16,5
25 8 ==> 25 8
38 4Köszi a segítséget.
-
bozsozso
őstag
Sziasztok,
Egyszerűen nem tudom mi lehet a probléma. Egy cellába idő formátumból a perceket akarom kiíratni a PERCEK fügvénnyel. Ezzel nincs is gond. Formátumnak beállítottam, hogy "pp", mert 2 karakteren szretném mindenképpen még a "00"-át is megjeleníteni. Ez működik is addig amig el nem mentem. Kilépek újraindítom a táblázatot és akkor már minden esetben "01"-et ír a cellába, megnézem a formátum beállítást és nem a pp van az adott cellára hanem "hh". Ha nem is ezzel a módszerrel, de hogyan tudom megvalósítani, hogy a perceket 2 karakteren jelenítse meg? Bár nem értem mi a gond.
2010-es és 2016-os excelben is ezt csinálja.
-
Mutt
senior tag
válasz
dm1970 #41543 üzenetére
Szia,
Jöttek már tömbfüggvényes változatok, de itt van pár változat sima függvénnyel:
=SZORZATÖSSZEG((HOSSZ(A1:G1)>0)*($A$8:$G$8))
=HAHIBA(HOL.VAN(SOKSZOR("Z";255);A1:G1);HOL.VAN(2^99;A1:G1))
=KERES(2;1/(A1:G1<>"");$A$8:$G$8)
Az elsőnél hibás lesz az eredmény, ha egy soron belül több találat is lehetséges.
A másik kettőnél pedig nem a legelső találatot adja vissza, hanem a legutolsót így megint hibás lehet az eredmény ha egy soron belül több találat van.üdv
-
dm1970
aktív tag
Először a vkeres. Igen az utolsó sorban levő számok alapján adta meg az oszlop sorszámát, a H oszlop is segéd volt, ami a képlet másolás miatt kellett, az első képletnél még a 8. volt a segédsor, az utolsónál a 2. Igen, ha beírtam a szokásos "hamis"-t a képletbe, akkor "hiányzik" lett a vége, de mivel működött, nem foglalkoztam vele. Pont az a gondom, hogy kitalálok valamit, aztán még valamit, s a végére kijön egy elég összevissza képlet. S egyszer eljutok odáig, hogy ha bele kell módosítani, már nem tudok mert nem értem, nem tudom mit miért írtam bele.
A képlet viszont OK, köszönöm, remélem tudom alkalmazni az eredeti táblázatban, mert a csatolt csak egy egyszerűsített verzió.Kipróbáltam, sajna nem megy. Kevés volt az egyszerűsített tábla.
Két kérdés még:
Gondolom nem gond, hogy nem A1:H1 hanem pl A20:A50?
Akkor is megtalálja, hogy hányadik oszlop, ha azok képlet alapján töltődnek?
Hogy érthetőbb legyek, az előző táblázatban A1:G7-ben végig képletek vannak, s csak bizonyos feltételek teljesülésekor kerül a cellákba valami. -
Louro
őstag
válasz
dm1970 #41543 üzenetére
Szia,
lehet tömbfüggvénnyel oldanám meg.
A képlet így nézne ki:
=MATCH(FALSE;ISBLANK(A1:H1);0)
Majd nem Enter, hanem CTRL+Shift+Enter. Ezt a képletet pedig lefelé tudod másolniHa magyarul kell, akkor
=HOL.VAN(HAMIS;ÜRES(A1:H1);0)Tök mindegy mivel van feltöltve, visszadja, hogy hol van az első feltöltött cella a sorban.
A VKERES-sel szerintem az volt a baj, hogy eleve megadtál neki egy segédoszlopot a 8. sorban. Na meg a H oszlopban nem tudom mi az a szám, de ahhoz közelítő értéket keres. Mivel nem adtad meg az utolsó paramétert, megközelítő számot keres. Mivel betű van ott, ezért kaptál hibát. A korábbi megoldás elég nyakatekert megoldás volt (számomra).
-
dm1970
aktív tag
Üdv Uraim!
Valamikor régen sikerült megszülnöm egy képletet, ami így néz ki:
VKERES(H1;A1:$G$8;H1), amely másolva van I1-I7-ig.
Mint látszik a táblázaton, annyit csinál, hogy megadja, melyik sor hányadik oszlopába került szám. Most próbálom újra megfejteni a működését, mert felmerült egy olyan gondom, hogy nem csak szám kerülne a sorba, viszont ebben az esetben "hiányzik" hibát ad. Természetesen minden sorba csak egyszer kerülne valami. Miért csak akkor működik a képlet, ha számot
írok be? Valami okosság, hogy hogyan oldjam meg?
A B C D E F G H IKöszi dm
-
Louro
őstag
válasz
TheSaint #41541 üzenetére
A vezérhangya nem hagyott békén, így lett egy kicsit igényesebbnek tűnő megoldás.
Jelöld ki azt a tartományt, amit színezni szeretnél az első sort kihagyva. Az marad fehér.
Feltételes formázás (conditional formatting), majd a legalsó és New Rule és legalsót válaszd.A képlet: =OR(AND($E1=$E2;CELL("color";$E1)=1);AND($E1<>$E2);CELL("color";$E1)=0))
Majd válasz egy színt a Format alatt lévő Fill fül alatt. Végén maradnak az Ok-Ok.
Mit is csinál a képlet:
Amennyiben megegyezik a két azonosító és az első formázott (színezett), akkor beszínezi. Ha nem egyezik meg az előtte lévővel és az előtte lévő nincs színezve, beszínezi.Így segédoszlop nélkül megúszható
Kipróbáltam is.
-
TheSaint
aktív tag
Köszi, hasonlóval próbálkoztam, de mint a példán is látható egy "/" jellel kezdődik minden érték (ami a valóságban hipertitkos vállalati kódolást takar, ami így néz ki: pl.: BZ19/0473 , stb...) tehát nem tudtam egy ilyen egyszerűbb képletre redukálni a tartalmat, amit könnyebb már kezelni.
Azért várok minden ötletet. -
Louro
őstag
válasz
TheSaint #41535 üzenetére
Lehet gagyi lesz, de 10 másodperc alatt azt mondanám, hogy F oszlopba egy sorszám, ami így nézne ki:
F1: 1
F2 és alatta: =IF(E2=E1;F1;F1+1)Majd erre dobnék egy feltételes formázást úgy, hogy a sorokat színezze aszerint, hogy páros vagy páratlan szám van az F oszlopban.
A feltételes formázásnál saját képletet használnék: =MOD(F1;2)=0, a formátumnál meg a színt kiválasztanám.
-
Louro
őstag
válasz
Sutyi73 #41533 üzenetére
Nem teszteltem, de valahogy így
A célmunkalapra a fejlécet azért átmásolnám első körben és utána futtatnám.Sub GetInfo()
Dim wb As Workbook
Set wb = Activeworkbook
Path = "C:\Temp\"
Filename = Dir(Path & "*.xlsx")
Do While Filename <> ""
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
Range("A2:G"&Activesheet.Usedrange.Rows.Count).Copy _
Destination:=wb.Worksheets("Célmunkalap").Range("A" & wb.Worksheets("Célmunkalap").Usedrange.Rows.Count + 1)
Workbooks(Filename).Close
Filename = Dir()
Loop
End Sub -
Sutyi73
csendes tag
Üdv! Segítséget szeretnék kérni.
Adott egy könyvtár, amiben xlsx fileok vannak. Egy táblázatban kellene összesíteni ezeknek a fileoknak adatait. Ezt hogyan lehet kivitelezni. Az A oszlopban levő számok egy egy embert jelentenek, a G oszlopban levők pedig munkaórákat. A cél, hogy egy táblázatban ezeket összesítsük. A könyvtárban az xlsx állományok 2019.08.04 N, 2019.08.04 É, 2019.08.05 N stb. elnevezésűek. Kérlek ha tudtok segítsetek. -
Fferi50
Topikgazda
válasz
Triathlete #41529 üzenetére
Szia!
Mi az ATL_exp ?
Üdv. -
Triathlete
senior tag
Sziasztok!
Van egy excel fájlom ami az asztali számítógépeken tökéletesen működik, de ha használni szeretném ugyanezt a fájlt android rendszeren vagy feltöltöm google drive-ba a kitevő függvény nem működik benne, ami a lelke az egésznek számomra.
pl:
=$D957*(1-ATL_exp)+E956*ATL_exp
Létezik valami beállítás amellyel működésre tudom bírni más platoformon is? Köszönöm előre is a választ!
-
bozsozso
őstag
Sziasztok,
Létezik arra valami fügvény, hogy a cella tartalma egész szám-e? Feltételes formázással szeretném azt megoldni, hogy ha tizedesre végződik a tartalma csak akkor használjon tizedes kimutatást.
Pl.: 6,5-öt írja ki viszont a 2-őt csak így simán és ne 2,0-nak.
Alapból egy tizedes van beállítva, hogy annyi látható.
-
ace05
senior tag
Üdv!
Olyat lehet csinálni, hogy keressen meg bizonyos szöveget és írja be egy cellába, hogy mennyiszer találta meg ?
-
Fferi50
Topikgazda
Szia!
Ez nem hekkelés, ez normális automatizálási lehetőség!
Első körben egyszer beírod a képleteket a cellákba. Megjegyzed, hogy mit kell kicserélni. Aztán kiderül, hogy mire. Ez 1 azaz egy db makró sor!!!
Szóval semmi esetre sem kell kicseréltetni az elérési utat kézzel.
Nem tudom, hogyan derül ki, melyik fájlból kell az adatokat beszívni, de arra is vannak jó módszerek.
Üdv.
(Privi is ment.) -
spe88
senior tag
válasz
Fferi50 #41520 üzenetére
Hogy nekem mindig valami olyan funkció kell, amit nem tud az Excel csak valami irgalmatlan hekkeléssel.
Szerintem akkor hagyjuk. Megpróbálom elmagyarázni nekik, hogy hogy kell kicserélni heti rendszerességgel az elérési utat aztán, majd lehúzzák maguknak a képletet.
Beírni egy makróba több 100, de később több 1000 sort csak egy ilyen miatt, hát nem tudom...
-
Fferi50
Topikgazda
Szia!
"Esély nincs arra, hogy ezt-azt ne kelljen futtatgatni manuálisan, amikor változik a cella?"
Erre való az eseménykezelés:Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("K1")) Is Nothing then
Application.EnableEvents = False
Range("A1").Formula="='c:\abc\def\[termeles" & Range("K1").Value & ".xls]" & Range("K1").Value & "'!A10"
Application.EnableEvents = True
End If
End Sub
Ezt annak a munkalapnak a kódlapjára kell bemásolni, ahol változtatni szeretnéd az adatokat.
Természetesen a többi cellára is meg kell ezt csinálni.
Ha felteszel valahova egy mintát, akkor megnézem, hogyan lehetne egyszerűbben, mert ha ugyanazok a fájlok változnak, akkor egy Csere - képletben makróval is meg lehet tenni a változtatást, ha előtte már megvannak a képletek normálisan. Csak azt kell tudni, hogy mit - mire kell változtatni.Üdv.
-
spe88
senior tag
válasz
Fferi50 #41518 üzenetére
No ez az, hogy ezeket én még tudnám változtatgatni, de teljesen automatizáltan kéne megoldanom. Az itt lévő kollégák nálam is jóval topábbak az Excelhez. Esély nincs arra, hogy ezt-azt ne kelljen futtatgatni manuálisan, amikor változik a cella?
Kb. 15 kül. fájlból vesz adatokat -- egyelőre -- és több 100 cellába másolja.
-
Fferi50
Topikgazda
Szia!
Makróval direktbe beleírod a képletet abba a cellába, ahol szükséges:
pl.Range("A1").Formula="='c:\abc\def\[termeles" & Range("K1").Value & ".xls]" & Range("K1").Value & "'!A10"
Amikor a K1 cella értéke változik, akkor megismétled a képlet beírást - pl. a Worksheet_Change eseménykezelő segítségével.
Üdv. -
spe88
senior tag
utóbbi a helyzet!
A fájlnévben is benne van az adott évszám és a munkalapnévben is.
Évente egyszer elég lenne megcsinálni azt amit írsz, de lesznek más fájlok is, amik hetente, havonta változnak. Meg sok fájlból húzza így is a dolgokat.
Szóval akkor ezek szerint erre makró kéne. Arra van valami ötlet?
-
Louro
őstag
Szia,
ha jól értem itt annyiról lenne szó, hogy adott egy "fájlom.xlsx" állomány, aminek van egy "2019" nevű munkalapja és onnan az egyik - példa kedvéért A1 - cella tartalmát akarod behivatkozni.
Erre vagy azt szokták csinálni, hogy megnyitják a két állományt és a célfájlban kiválasztják a célcellát, majd = és utána átmennek a forrásállományba, ahol rákattintanak a forráscellára.
Ha pötyögős vagy, mint én, akkor =[fájlom.xlsx]2019!A1
Ha változóval akarod megoldani a hivatkozott munkalapot, akkor szerintem(!) a makró elkerülhetetlen.
-
spe88
senior tag
válasz
Fferi50 #41513 üzenetére
Köszönöm ezzel már működik!
Még annyi kérdés -- hasonlót már kérdeztem --, hogy ha van egy másik fájlba mutató elérési utam egy cellában, azt hogy tudnám megcsinálni, hogy ennek az értékét kiírja egy adott cellába?
INDIREKTTEL és ÉRTÉKKEL próbáltam.
pl.
ez az A1 cellaképletem
="'c:\abc\def\[termeles"&K1&".xls]"&K1&"'!A10"
A K1-ben az adott év szerepel
A1 cella értéke
'c:\abc\def\[termeles2019.xls]2019'!A10
Meg lehet valahogy oldani, hogy kiírja ezen elérési úton található A10-es cella értékét?
Köszönöm
-
urobee
tag
Szia!
@Pakliman első kódja kicsit átalakítva szerintem megoldás lehet:
Ez ugye a thisworkbook-ba kerül:
Private Sub Workbook_Open()
'A munkafüzet megnyitásakor elmentjük az éppen aktuális munkalapot:
Set ASH = ActiveSheet
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
On Error Resume Next
'Munkalap aktiválásakor mengnézzük, hogy az új munkalap a védendő-e:
If Sh Is Worksheets("rejtett") Then
'Ha a védendő, akkor jelszót kérünk:
If InputBox("Jelszó:") = "jelszo" Then
'Ha jó a jelszó, engedjük az aktívvá tételt,
'és elmentjük új aktívként
Set ASH = ActiveSheet
'elrejti az összes oszlopot és sort
Columns.EntireColumn.Hidden = False
Rows.EntireRow.Hidden = False
Else
'Ha rossz, akkor:
MsgBox "Ehhez a laphoz Neked semmi közöd!!"
'Visszaállítjuk az előző munkalapot aktívnak:
ASH.Activate
End If
End If
End SubEz pedig az elrejteni kívánt lapra:
Private Sub Worksheet_Activate()
'megjeleníti az összes oszlopot és sort
Columns.EntireColumn.Hidden = True
Rows.EntireRow.Hidden = True
End SubEz csak akkor lehet problémás, ha vannak rejtett sorok/oszlopok a munkalapon.
-
Fferi50
Topikgazda
Szia!
Akkor próbáld meg ezt:Private Sub Workbook_SheetActivate(ByVal Sh As Object)
'Munkalap aktiválásakor mengnézzük, hogy az új munkalap a védendő-e:
If Sh Is Worksheets("Output") Then
'Ha a védendő, akkor jelszót kérünk:
Sh.Visible = xlSheetHidden 'elrejtjük
If InputBox("Jelszó:") = "blbla" Then
'Ha jó a jelszó, engedjük az aktívvá tételt,
'és elmentjük új aktívként
Sh.Visible = xlSheetVisible ' láthatóvá tesszük
Application.EnableEvents = False 'letiltjuk az eseménykezelést
Sh.Activate 'aktíváljuk
Set ASH = ActiveSheet
Application.EnableEvents = True 'visszaállítjuk az eseménykezelést
Else
'Ha rossz, akkor:
MsgBox "Ehhez a laphoz Neked semmi közöd!!"
'Visszaállítjuk az előző munkalapot aktívnak:
ThisWorkbook.ASH.Activate
Sheets("Output").Visible = xlSheetVisible 'láthatóvá tesszük, hogy kiválasztható legyen a lapfül
End If
End If
End Sub
-
Fferi50
Topikgazda
Szia!
Egy icipici módosítás kell (amire én sem gondoltam először).Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If Sh.Name <> "Output" Then Set ThisWorkbook.ASH = ActiveSheet
End Sub
helyett:Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If Sh.Name <> "Output" Then Set ThisWorkbook.ASH =sh
End Sub
-
spe88
senior tag
válasz
Fferi50 #41503 üzenetére
Megcsináltam, most már hibát nem dob viszont most is az a helyzet, hogy ráugrok a lapra, amit védeni szeretnék és minden adat látszik a lapon. Miután nem ütök be semmit a jelszóhoz, kiírja a szokásos üzenetet: "semmi közöd...", leokézom és szabadon nézhetem az adatokat.
Mit tegyek?
Köszönöm
-
alikov
csendes tag
Sziasztok!
Szeretném a segítségeteket kérni! Időt szeretnék átváltani másodpercre és azzal tovább számolni.
Pélául: 00:05:33 átváltani másodpercre.
A1: ez látszik: 00:05:33
A1: óó:pp:mmA2 cellában legyen másodperc, vagyis 00:05:33 az 333 másodperc
A2: milyen képlet kell?A3 cellába egy szám legyen pl. 15 723 liter
A3: # ##0" liter"
A4 cellába kiszámolni 1 másodperc alatt hány liter akármi van.
A4: =A3/A2” liter/1s”
A4 cella eredménye: 47,21 liter/1s -
Fferi50
Topikgazda
válasz
Richard #41504 üzenetére
Szia!
Az a kérdés, hogy utána dátumként szeretnél vele számolni tovább, vagy sem.
Ha igen, akkor a cellaformátumot állítsd "éééé.hh" -ra az egyéni formátumban.
Ha nem, akkor a képlet:=ÉV(KALK.DÁTUM(MA();-1)) &"." & SZÖVEG(HÓNAP( KALK.DÁTUM(MA();-1));"0#")
Bár az sem kizárt, hogy a képlettel létrejött értéket is tudja dátumként kezelni.
Üdv. -
Sziasztok!
Jelenleg 2019.08 hónap van.
Hogy bírom képlettel megoldani, hogy az aktuális hónap -1 hónapot írjon ki a cellába?
Jelenleg eddig jutottam:
=KALK.DÁTUM(MA();-1)
Ezzel az a probléma, hogy a kapott érték:
2019.07.05
Nekem pedig csak annyi kell, hogy2019.07
Ezt hogy tudom kivitelezni egy cellán belül?
Köszönöm
-
spe88
senior tag
válasz
Fferi50 #41497 üzenetére
Köszi a segítséget. Átalakítottam. Valamit nem jó helyre írtam szerintem.
Private Sub Workbook_Open()
Public ASH As Worksheet
Set ThisWorkbook.ASH = ActiveSheet
Sheets("HELP_DATA").Select
Columns("E:E").Select
ActiveWorkbook.Worksheets("HELP_DATA").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("HELP_DATA").Sort.SortFields.Add Key:=Range("E1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("HELP_DATA").Sort
.SetRange Range("E2:E601")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Sheets("HELP_DATA").Select
Columns("G:G").Select
Range("G2").Activate
ActiveWorkbook.Worksheets("HELP_DATA").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("HELP_DATA").Sort.SortFields.Add Key:=Range("G2"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("HELP_DATA").Sort
.SetRange Range("G2:H601")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
End With
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
'Munkalap aktiválásakor mengnézzük, hogy az új munkalap a védendő-e:
If Sh Is Worksheets("Output") Then
'Ha a védendő, akkor jelszót kérünk:
If InputBox("Jelszó:") = "blbla" Then
'Ha jó a jelszó, engedjük az aktívvá tételt,
'és elmentjük új aktívként
Set ASH = ActiveSheet
Else
'Ha rossz, akkor:
MsgBox "Ehhez a laphoz Neked semmi közöd!!"
'Visszaállítjuk az előző munkalapot aktívnak:
ThisWorkbook.ASH.Activate
End If
End If
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If Sh.Name <> "Output" Then Set ThisWorkbook.ASH = ActiveSheet
End SubA 2. sornál megakad:
Compile Error:
Invalid attribute in Sub or Function
Mit tegyek? Köszönöm
Új hozzászólás Aktív témák
Hirdetés
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Eladó Steam kulcsok kedvező áron!
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem, Most kedvező áron!
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Jogtiszta Windows - Office & Vírusirtó licencek- Azonnal - Számlával - Garanciával - Nint.hu
- AKCIÓ! ASRock Z370 i5 8500 16GB DDR4 512GB SSD 2060 Super 8GB Zalman Z9 Plus Enermax 750W
- ÁRGARANCIA! Épített KomPhone i5 13400F 16/32/64GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
- DELL Precision 5560 i7-11850H 16GB 512GB T1200 FHD+ 1 év garancia
- DELL Precision 7540 i7-9850H Quadro T2000 16GB 512GB 1 év garancia
- Xiaomi Redmi Note 14 5G 256GB Kártyafüggetlen 1 év Garanciával
Állásajánlatok
Cég: FOTC
Város: Budapest