- Viber: ingyen telefonálás a mobilodon
- Magga: PLEX: multimédia az egész lakásban
- VoidXs: Tényleg minden játék optimalizálatlan?
- sziku69: Fűzzük össze a szavakat :)
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- gban: Ingyen kellene, de tegnapra
- Luck Dragon: Asszociációs játék. :)
- Gurulunk, WAZE?!
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
-
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
-
Pakliman
tag
-
Fferi50
Topikgazda
válasz
BEndre34 #48194 üzenetére
Szia!
Próbáld meg a következő tömbképletet az A2 cellába:=SZUM(($B2:$R2=1)*($C2:$S2=""))
A képlet záró oszlopát módosítsd a számodra megfelelő módon (pl. $BH2 és $BI2), fontos, hogy a második rész egy oszloppal legyen eltolva az elsőhöz képest.
A tömbképletet Shift + Ctrl + Enter kombóval kell lezárni, az Excel kapcsos zárójelbe teszi.
Ez a képlet húzható lefelé.
Üdv. -
BEndre34
tag
Szia! Próbáltam (az elsők között), de sajnos van ahol 2, van ahol már 5 "1"-es szerepel egymás mellett és nem tudom megadni neki, hogy "n" darabig (az első egyezés utáni első üres celláig) ellenőrizze. Illetve azt se, hogy hol kezdje újra az ellenőrzést az első találat után. Ez szerintem egy összetett Excel képletnek is túl sok.
-
BEndre34
tag
válasz
Pakliman #48190 üzenetére
Nem értem, de működik (holnap utánanézek, mert így tanul az ember)
Annyi, hogy ahol közvetlenül egymás után(mellett) szerepel 1, azokat is csak simán 1-nek vegye, ahogy nálad a 3 egymás melletti 1-es esetében, ami az én szempontomból nem hiba, hanem a cél.Tehát ahol önmagában 1-van azt is, és ahol közvetlenül egymás mellett bármennyi 1-es szerepel, azt is csak 1-nek vegye. Azaz a Te példádban nem 2 kell, hogy megjelenjen, hanem 5 (van 2 különálló 1-es és 3 közvetlen egymás melletti 1-es).
Mindenesetre ez számomra fény az alagút végén.
-
Pakliman
tag
válasz
BEndre34 #48188 üzenetére
Szia!
Public Function xDB(r As Range) As Long
Dim c As Range
Dim s As String
For Each c In r.Cells
s = s & IIf(s = "", "", ";") & IIf(IsEmpty(c), Chr(1), c.Value)
Next c
s = Replace(s, "1;1", "")
xDB = Len(s) - Len(Replace(s, "1", ""))
End FunctionCsak azokat az 1-eseket számolja, amelyik mellett nincs 1-es
(hiba: 3 egymás mellettit viszont már 1-nek számol!!).Ha jól értelmeztem a feladatot...
-
BEndre34
tag
Sziasztok!
Adott egy Excel tábla. Az elképzelésem az lenne, hogy meg szeretném számolni, soronként külön-külön, mennyi olyan nap van, ahol "1" szerepel. A probléma, amit nem tudok megugrani az, hogy az egymást követő egyeseket "1"-nek kellene számolnom. Azaz A2-ben 2-nek, A3-ban szintén 2-nek, A4-ben 3-nak, A6-ban 2-nek és így tovább kellene szerepelnie. Külön probléma, hogy jelenleg a BH oszlopnál van a táblázat "vége", de ez még bővülni fog további oszlopokkal. Képletekkel próbáltam (egymásba ágyazottal is), de sehogy sem lesz jó.
Feltételezem, a makró lenne a megoldás, de abban sajnos láma vagyok, illetve nem találtam rá megoldást (pedig az hittem a Google és én jóban vagyunk).
Ha tudtok segíteni, előre is köszönöm!!
Endre(természetesen holnap tiszta fejjel, próbálom tovább mindentől függetlenül, de jelenleg nem látom, mi lenne a megoldás)
-
moma
őstag
Ez valami nagyon basic lehet, de nem értem
két szöveges cellát hasonltanék össze. beírom: =EXACT(G2,M2) és nem csinálja, hanem csak ott van a cellában ez a szöveg. ha átrakom a cella formátumát másra akkor is ez van és Formulas/CAlculation options automaticon van, de ha Calculate now-ra nyomok sem csinálja.
Mit csinálok rosszul? -
Pakliman
tag
válasz
Dilikutya #48180 üzenetére
Szia!
ez a megoldás Nálad is használható lehet kis átalakítással (feltéve, ha nem több 10E-nyi sorral dolgozol, mert akkor egy pöttyet "belassul"
).
-
Delila_1
veterán
válasz
zsoci0914 #48179 üzenetére
Szóval érvényesítést alkalmazol, és az adott sor valamelyik cellájába kell beírni a dátumot.
A makrót a laphoz kell rendelned, és majd makróbarátként kell mentened a füzetet.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Application.EnableEvents = False
Select Case Target.Value
Case "Beérkezve": Cells(Target.Row, "M") = Format(Now, "yyyy.mm.dd hh:mm:ss")
Case "Gyártás alatt": Cells(Target.Row, "N") = Format(Now, "yyyy.mm.dd hh:mm:ss")
Case "Kész": Cells(Target.Row, "O") = Format(Now, "yyyy.mm.dd hh:mm:ss")
Case "Kiszállítva": Cells(Target.Row, "P") = Format(Now, "yyyy.mm.dd hh:mm:ss")
End Select
Application.EnableEvents = True
End If
End Sub
-
Dilikutya
félisten
Hello!
Van egy tábla, névsor, a nevek egységekbe rendezve, minden név mellett értékek. Olyan átlagolás kellene (ha megoldható), hogy szűrővel kiválasztok egy egységet, és egy mezőben hozza az egységhez tartozó nevek melletti értékek átlagát.
-
zsoci0914
csendes tag
válasz
Delila_1 #48177 üzenetére
Erről lenne szó.
Az A oszlop legördülő menü, kiválasztok egy "státuszt" beérkezve például és akkor az M oszlopban megjelenik a dátum. Aztán megváltoztatom "gyartas alatt"-ra akkor pedig az N oszlopban a változtatás dátuma, ugyanígy "kész" az O, "kiszallitva" a P oszlopban, és persze az előző maradjon meg. -
spe88
senior tag
válasz
sztanozs #48165 üzenetére
Szia!
Ha jól értettem akkor a transpose-os kódot tömbképletként kell használnom.
A baj, hogy így mindig csak az első előfordulásnál levágja. Kb. mintha egy BAL fv.-t használnék.Kb egy a képen látható dolgot szeretnék elérni, hogy az az A1 cella értékei jelenjenek meg egymás alatt a C oszlopban.
Ha erre jó amit írtál, akkor valahol elcseszem.
Köszi
-
Delila_1
veterán
válasz
zsoci0914 #48176 üzenetére
Nem írtad, hogy mi adja a lehetőségeket. Érvényesítés, ComboBox a munkalapon, esetleg ComboBox Userformon. Azt sem írtad, melyik sorba kéred a dátumot és időt.
Találomra vettem azt az esetet, mikor a munkalapon van egy ComboBox, és az A oszlopban folyamatosan vannak adatok.
A laphoz rendeltem egy makrót, ami az első üres sorba írja ki a választásnak megfelelően a B, C, D, ill. az E oszlopba. A választási lehetőségek "B oszlopba dátum", "C oszlopba dátum", ...
Megeshet, hogy egészen másról van szó, akkor írd meg pontosan, mit szeretnél.Private Sub ComboBox1_Change()
Dim usor As Long
usor = Range("A" & Rows.Count).End(xlUp).Row + 1
Select Case Left(ComboBox1, 1)
Case "B": Cells(usor, 2) = Format(Now, "yyy.mm.dd hh:mm:ss")
Case "C": Cells(usor, 3) = Format(Now, "yyy.mm.dd hh:mm:ss")
Case "D": Cells(usor, 4) = Format(Now, "yyy.mm.dd hh:mm:ss")
Case "E": Cells(usor, 5) = Format(Now, "yyy.mm.dd hh:mm:ss")
End Select
End Sub
-
zsoci0914
csendes tag
Először is boldog új évet mindenkinek!
Másodsorban, én is ilyen dátum kérdéssel érkeztem, csak szeretném kicsit tovább bonyolítani.
Tavaly a segítségetekkel megoldódott a legördülő menüben választás során a sor színezés.
Amit köszönök szépen ismét!
Megoldható-e esetleg az, hogy mikor kiválasztok egy opciót, akkor egy meghatározott oszlopban megjelenjen az aznapi dátum (esetleg pontos idő is?) ami ott is marad?
Majd ha egy másik opciót választok a legördülő menüből akkor ismét megjelenjen a dátum egy másik meghatározott oszlopban és az szintén megmaradjon?
Tehát: legördülő menüben van 4 féle lehetőségem.
Kiválasztom az elsőt és a sor végén megjelenik a dátum,
Módosítom a "státuszt" a következőre és a következő oszlopban megjelenik a dátum szintén és így tovább.
Köszönöm -
kipser
tag
válasz
Fferi50 #48170 üzenetére
Szia!
Tudsz segíteni a macroban?
Van egy kész sablonom. Legyen a neve sablon.
Van egy adattáblám. Legyen a neve adatok.Így kellene megoldanom, hogy:
Adatok F oszlop elemei kerüljenek a sablon B10 mezőjébe
Adatok X oszlop elemei kerüljenek a sablon B6 mezőjébe
Adatok Y oszlop elemei kerüljenek a sablon B7 mezőjébe
Adatok Z oszlop elemei kerüljenek a sablon B5 mezőjébeMinden más adat maradjon a sablonban és mindegyikből készüljön új excel file.
Köszönöm szépen!
-
kipser
tag
Sziasztok!
Egy excel táblán, amiben soronként vannak autók(70db) Oszloponként az autó tulajdonságai.
Meg kellene oldanom valahogyan hogy minden sorból egy külön excel fájl generálódjon az oszlopokban lévő adatokkal egy sablonnak megfelelően.
van erre ötletetek, hogy hogyan lehetne megodani a legegyszerűbben?
köszi -
sztanozs
veterán
VBA-val kell egy Split makró, ami megcsinálja:
Public Function SPLITTEXT(Text, Optional Separator = "") As Variant
If Separator <> "" Then
SPLITTEXT = Split(Text, Separator)
Else
SPLITTEXT = Split(Text)
End If
End FunctionUtána a következő worksheet függvénnyel lehet sorokba szétszedni:
=TRANSPOSE(SPLIT(A1, ","))
Office 365-ben nem is kell Array (CTRL+ENTER) forma a beíráshoz, megcsinálja magától a kiterjesztést. -
spe88
senior tag
Létezik olyasmi (tömb)függvény ami egy cellában lévő adatból az adott karaktereket megtalálva szétbontja különböző soroknak a celláiba.
Úgy mint ahogyan a Word teszi a ^p paranccsal a csere funkcióban.
Excelben nincs ilyen ^p funkció, de amúgy is a képlet lenne az igazi.Létezik ilyen?
Valami kerülő megoldás is érdekel, mert gondolom olyan egyszerűen nem lehet ahogy a Wordben.
Keressem esetleg ki az 1. ... n előfordulásukat és közép fv-nyel a következő előfordulásig?
Köszi
-
sztanozs
veterán
Meg lehet valahogy oldani, hogy Táblázat-ot használva lefixáljunk egy mezőt (mintha sima range lenne)? Ha elhúzom a függvényt, akkor "odéb húzza" a táblázat mezőjét is:
B1: = XLOOKUP($A1, Table1[col1], Table1[col2])
ez eggyel jobbra húzva ez lesz:C1: = XLOOKUP($A1, Table1[col2], Table1[col3])
-
lumpy92
aktív tag
Sziasztok!
Excel makrózást (VBA programozást) hol érdemes elkezdeni tanulni?
Van néhany könyvem, illetbe nyilván Udemy, youtube, stb. rengeteg az anyag.
Mégis van valami ajánlott, amin tematikusan ha végigrágja magat az ember, akkor kap egy jó, átfogó tudást?
Újévi lendület.... -
-
tgumis
tag
Sziasztok!
Csinálok egy raktár nyilvántartó táblázatot. Az adatok a bevitel munkalapról kerülnek át az anyagmozgás munkalapra. Mindkét munkalapon táblázatként van formázva az érintett tartomány.
A problémám az, hogy a legelső adatáttöltés alkalmávan bentmarad a fejrész alatt egy üres sor.
Nem tudom azt megoldani, hogy az kikerüljön onna, mert csak az első áttöltés alkalmával gond ha manuálisan kitörlöm akkor nem gond de minden negyedév vagy amikor újra kezdjük feltölteni az adatokat előjön.
Van valami megoldás vajon?
Innen másolok:és ez a makró ami áttölti ( a kommentelés nem minden esetben valós csak ott maradt)
Sub SzurMasolBeill()
Dim WSBev As Worksheet
Dim WSAnyagM As Worksheet
Dim Bsor As Long
Dim Usor As Long
Application.ScreenUpdating = False
'értékadások
Set WSBev = Sheets("BEVITEL") ' a BEVITEL munkalap makróban elnevezett neve
Set WSAnyagM = Sheets("ANYAGMOZGÁSOK") ' az összesít munkalap makróban elnevezett neve
Bsor = WSAnyagM.Range("A" & Rows.Count).End(xlUp).Row + 1 ' AZ IDÉZŐJEL KÖZÖTT LÉVŐ BETŰ azt jelenti hogy aZ ADOTT Oszlopba utolsó sor
' plusz egy fogom illeszteni az adatokat
' ITT CSAK AZT ADOM MEG HOGY HOVA ILLESZTEK BE
' A BSOR LEHETNE BÁRMI EZ CSAK ELNEVEZÉS
Usor = WSBev.Range("A12").End(xlDown).Row
WSBev.ListObjects("Bevitel").Range.AutoFilter Field:=12, Criteria1:="<>0", Operator:=xlAnd 'NULLÁTÓL KISSEBB ILLETVE NAGYOBB ÉRTÉKEKRE SZŰRÉS
WSBev.Range("A12:N" & Usor).SpecialCells(xlCellTypeVisible).Copy 'csak a látható, nem rejtett sorokat másolja
WSAnyagM.Range("A" & Bsor).PasteSpecial xlPasteValues 'ITT ADOM MEG HOGY BEIELLESZTSE A MÁSOLT ADATOKAT AZ
'IDÉZŐJELEK KÖZT MEGADOTT OSZLOP PLUSZ A BSOR BAN
'MEGHATÁROZOTT UTOLSÓ PLUSZ EGY SORBa
Dim Csor As Long
Csor = WSAnyagM.Range("A" & Rows.Count).End(xlUp).Row 'tartomány átméretezéséhez kell ey új változó itt megadom, neki, hogy melyik az utolsó adarot tartalmazó sor az A oszlopban
WSAnyagM.ListObjects("Anyagmozgások").Resize Range("$A$3:$N$" & Csor) ' itt pedig átméretezem a táblázatot
WSBev.ListObjects("Bevitel").Range.AutoFilter Field:=12
Application.ScreenUpdating = True
End Sub -
Delila_1
veterán
válasz
KaliJoe #48152 üzenetére
Még mindig nem teljes. Mi van akkor, ha nincs 0-nál nagyobb értékű 5 oszlopod?
Átalakítottam úgy, hogy soronként jó eredményt kapj.A Z2 cella képlete
=HAHIBA(MAX(HA(HOL.VAN(0;A2:X2;0)<6;INDIREKT("A" & SOR()&":" & CÍM(SOR();HOL.VAN(0;A2:X2;0)-1;4;1)); INDIREKT(CÍM(SOR();HOL.VAN(0;A2:X2;0)-1;4;1) & ":" & CÍM(SOR();HOL.VAN(0;A2:X2;0)-5;4;1))));MAX(A2:X2))
ezt másolhatod lefelé.
Akkor is működik, mikor csakis nulla értékek vannak egy-egy sorban.
Zöld hátteret adtam a sorokban a MAX aktuális tartományának. -
Pakliman
tag
válasz
andreas49 #48151 üzenetére
Szia!
Egy lehetőség:
=HA(DARABTELI($A$1:A1;A1)=1;SZUMHA(A:A;A1;B:B)/DARABTELI(A:A;A1);"")
Az első DARABTELI-nél FONTOS a $A$1:A1! Ez adja meg a dátum első előfordulását és csak ennél lesz átlag számolva. Természetesen működik e nélkül is.A sorazonosítót nem tudom igazítani. Egy megoldás van, ha az A oszlopban "lehúzod" az =SOR() függvényt majd az A oszlopra beállítod a függőlegesen középre igazítást.
-
KaliJoe
tag
válasz
Fferi50 #48150 üzenetére
Sziasztok,
Köszönet mindenkinek,
aki hozzászólt. Meglett az eredmény és helyesen működik. Ha másnak is kellene ilyen ideírom a megoldást:
Megoldás: =MAX(INDIREKT(HAHIBA(CÍM(4;HOL.VAN(0;A4:X4;0)-5;4;1) & ":" & CÍM(4;HOL.VAN(0;A4:X4;0)-1;4;1);"T4:X4")))
Megjegyzés: a CÍM(?... utáni első szám a sor száma, ahol keresni kell, tehát változtatandó. A példában én a 4-es sort illesztettem be! A HAHIBA függvénnyel kiegészítve még hibamentesre is lehet fejleszteni, akkor ha eléri a tábla jobb szélét (adat kerül már a viszgált utolsó napra is), nem hullik szét!
Még egyszer köszönöm. Megoldódott! -
andreas49
senior tag
Sziasztok, BÚÉK Mindenkinek,
Átlagot kellene számoltatnom egyazon naphoz tartozó értékekre. jó lenne, ha ez lehúzható is lenne. Napon belüli értékek száma eltérhet (nekem ez okozta a problémát).
Másik kérdésem a sorazonosítón belüli igazítás, hogyan lehet a számokat (sorazonosító) függőlegesen középre igazítani (sormagasságok nem azonos értékűek)
Segítséget előre is köszönöm. -
KaliJoe
tag
válasz
Fferi50 #48144 üzenetére
Szia Fferi50,
Sajnos nem működik a megoldásod. #ÉRTÉK hibát jelez, ha beírom. Sőt, képlet kiértékelésekor már az INDIREKT függvénynél megjelenik az #ÉRTÉK hiba. Mint mondtam az E9, F9 cellákban azok a CÍM-mel kezdődő függvények vannak, amelyeket az eredeti kérdésben odaírtam.
Lehet, hogy a problémám redukálható arra, hogy hogyan lehet a MAX függvénynek tartományt átadni, ha az maga is függvényekből áll össze.Más:
Kipróbáltam Lappy megoldását. Igazából csak félsiker. Valójában működik a dátumokkal, mivel a nap folyamán folyamatosan töltöm az oszlopot, attól függ hány óra van (vagyis melyik sorban van már 0.0-tól eltérő adat, attól függően kéne - soronként - a MAX függvénynek figyelembe vennia a mai napot, vagy tegnaptól nkeresni az értékeket. Ahogy Lappy megadta működik egész napra, de nem attól függően, h a mai napi ellában már megjelent az adat vagy sem. Szóval ez csak félig jó nekem.Fáradozásaitk előre is köszönöm.
-
KaliJoe
tag
Szia Lappy,
Nem értettél meg. Nem dátumok közötti MAX-MIN értékek érdekelnek. Naponta 7 új adatom keletkezik (nem dátum típusú - sima szám), ezeket rendezem naponta egy oszlopba (7 sorba). Ezek közül kell kiválasztani az utolsó 5 oszlopot, amely már adatokkal feltöltött. Én arra gondoltam, h megkeresem az első nulla értéket (az lesz a még nem töltött nap) és az eggyel előtti és a hattal előtti oszlopok tartományát adom át a MAX függvény számára.
Tehát NEM időpontok között kell választanom, illetve MAX-MIN értékeket keresnem.
-
KaliJoe
tag
Sziasztok, Boldog Új Évet kívánok!
A problémám egy hivatkozás megszerkesztésével van. Tartományt kellene átadni a MAX függvény számára.
Kicsit bővebben: Van egy - folyamatosan töltött - 7 soros, 24 oszlopos táblázatom. Az elején már vannak adataim, a végefelé még 0.0-s értékek vannak. Azt szeretném, elérni, hogy a MAX és MIN függvényeim mindig csak az utolsó 5 (nap) adataiból válasszanak MAX és MIN értékeket (tehát ne az összes 24 oszlopból). HOL.VAN függvénnyel megkerestem, hogy melyik az az első oszlop, ahol még 0.0 az érték, vagyis e nap előtt és még vissza 5 nappal kellene az oszlopokat átadni a MAX-MIN számára. Odáig meg is vagyok, hogy pl. meg tudom adni, hogy az egészből a P2:U2 tartományt figyelje.
Így az E9-ben: =CÍM(2;HOL.VAN(0;A2:X2;0)-1;4;1) és
így az F9-ben: =CÍM(2;HOL.VAN(0;A2:X2;0)-6;4;1)
G9-be meg összefűzöm őket: =F9 & ":" & E9; de ez így még csak karaktersor, nem pedig tartományhivatkozás!
Ott mondok csődöt, hogy ezt hogyan tudom úgy átadni a MAX és MIN függvények számára, hogy az - továbbra is - tartományhivatkozás legyen?!
Az INDEX és INDIREKT függvényekkel próbálkozom, de mindig hibához jutok, és a MAX nem eszi meg.Tud valaki segíteni?
Előre is köszönöm.
-
sztanozs
veterán
válasz
dreizwanzig #48138 üzenetére
1) Filter
2) Cellák kijelölése
3) Find & Search > GoTo Special...
4) Visible cells only
5) Conditional formatting ... -
dreizwanzig
tag
Sziasztok!
Olyan kérdésem lenne, hogy hogyan tudom azt megoldani, hogy feltételes formázást akarok elég sok sorra, de nem az összesre, ami a táblázatban van. Azt, hogy melyik sorokat akarom feltételesen formázni, úgy tudnám kijelölni, hogy leszűröm, viszont ha leszűröm, kijelölöm az összes sort, akkor azokra a sorokra is alkalmazni fogja a feltételes formázást, amikre nincs szűrve.
Tehát mondjuk az 1-es meg a 100-as sorra akarok ilyen feltételes formázást, leszűröm a táblázatot ezekre a sorokra, beállítom a feltételes formázást, de akkor a 2-től 99-ig is alkalmazni fogja a feltételes formázást. -
whitezo88
nagyúr
Sziasztok, fg. kérdés lenne, ezer éve nem használtam. Adott egy lista (táblázatba szedve), kéne az hogy egyes elemek hányszor vannak benne. Darabteli-re gondoltam, egyenként szedve, de van 20 db fajta, van egyszerűbb is?
-
-
dugynok
senior tag
Sziasztok!
Segìtséget szeretnék kérni :)
Àtlagàrat szeretnék szàmoltatni, de olyan formàban, hogy első nap veszek 1db terméket 10Ft-ért, màsodik nap 3 terméket összesen 80Ft-ért, harmadik nap 5 terméket összesen 40Ft-ért. Csak úgy tudom képletezni, hogy először külön minden napi vàsàrlàsnak csinàlok egy egységàras szàmìtàst (pl. 80/3) majd az ìgy kapott egységàrakat àtlagolom vagy van egy egyszerűbb módja?Köszönöm
-
Fferi50
Topikgazda
válasz
karlkani #48128 üzenetére
Szia!
A figyelmetlenség netovábbja részemről...
Fussunk neki ismét:Sub modosit()
Dim a As String, cl As Range
For Each cl In ActiveSheet.UsedRange.Columns("A").Cells 'az A helyére írd az adataid oszlopát
If InStr(cl.Value, "/") > 0 Then
a = cl.Text
a = Left(a, InStrRev(a, "/")) & "valami1" & Mid(a, InStrRev(a, "/")) ' a valami1 legyen idézőjelek között
a = Left(a, InStrRev(a, ".") - 1) & "_valami2" & Mid(a, InStrRev(a, "."))
cl.Value = a
End If
Next
End Sub
Üdv. -
karlkani
aktív tag
válasz
Fferi50 #48127 üzenetére
Ha jól látom, az előzőhöz képest annyi történt, hogy lemaradt a +1, a végeredmény ugyan az...
Eddig én is eljutottam a régivel, csak a végére, a kiterjesztés elé nem sikerül a _valami2-t beilleszteni. Csere funkcióval azt is megoldottam .m3u8 => _valami2.m3u8. Jó lenne, ha egy kattintásra meg lehetne oldani a makró segítségével (egy gombhoz van hozzárendelve).A linkekben elöl is van egy PONT, a _valami2 bekerül a .com elé is...
1*file*https://abcdefg_valami2.com/abc/123456789/valami1/123456789_valami2.m3u8
Erre lenne szükség
1*file*https://abcdefg.com/abc/123456789/valami1/123456789_valami2.m3u8
#48126 Fire/SOUL/CD
Köszönöm!Elrakom ezt is...
-
Fferi50
Topikgazda
válasz
karlkani #48124 üzenetére
Szia!
Igen, ilyen az amikor próba nélkül a régiből kiindulva alakítok át valamit.
Ez elvileg már jó lehet:Sub modosit()
Dim a As String, cl As Range
For Each cl In ActiveSheet.UsedRange.Columns("A").Cells 'az A helyére írd az adataid oszlopát
If InStr(cl.Value, "/") > 0 Then
a = cl.Text
a = Left(a, InStrRev(a, "/")) & "valami1" & Mid(a, InStrRev(a, "/")) ' a valami1 legyen idézőjelek között
a = Replace(a, ".", "_valami2.")
cl.Value = a
End If
Next
End Sub
Ismételten bocs.
Üdv. -
válasz
karlkani #48125 üzenetére
Ok, akkor amennyire lehet "bolondbiztossá" tettem a kódot...(ne vedd magadra)
Az elején a 2 konstanst kell csak módosítani, nem kell bele se alulvonás, se pont se semmi, csak tiszta szöveg legyen.'Fire/SOUL/CD - 2021
Option Explicit
Public Function Fire_Replace(ByVal SourceURL As String) As String
Const SLASH = "/"
Const DOT = "."
Const UNDERSCORE = "_"
'Itt add meg a VALAMI1 és VALAMI2 értékét... :))
'(nem kell alulvonás, se pont, se más, csak szöveg)
Const SOMETHING_1 = "VALAMI1 SZÖVEGE"
Const SOMETHING_2 = "VALAMI2 SZÖVEGE"
Dim MyStrArray() As String
MyStrArray = Split(SourceURL, SLASH)
If WorksheetFunction.CountA(MyStrArray) > 1 Then
Fire_Replace = MyStrArray(0) & SLASH & _
MyStrArray(1) & SLASH & _
MyStrArray(2) & SLASH & _
MyStrArray(3) & SLASH & _
MyStrArray(4) & SLASH & _
SOMETHING_1 & SLASH & _
Replace(MyStrArray(5), DOT, UNDERSCORE + SOMETHING_2 + DOT)
Else: Fire_Replace = MyStrArray(0)
End If
End Function -
karlkani
aktív tag
válasz
Fire/SOUL/CD #48123 üzenetére
Vegyél lottószelvényt!
Valóban lehagytam a szöveg végéről a pontot... -
karlkani
aktív tag
válasz
Fferi50 #48121 üzenetére
Sajnos nem jó, ezt kapom...
1*file*https://abcdefg_valami2.com/abc/123456789/valami_123456789_valami2.m3u8
1*title*1. lista címe
2*file*https://abcdefg_valami2.com/abc/23456789/valami_23456789_valami2.m3u8
2*title*2. lista címe
3*file*https://abcdefg_valami2.com/abc/234567890/valami_234567890_valami2.m3u8
3*title*3. lista címe
Erre lenne szükség
1*file*https://abcdefg.com/abc/123456789/valami1/123456789_valami2.m3u8
1*title*1. lista címe
2*file*https://abcdefg.com/abc/23456789/valami1/23456789_valami2.m3u8
2*title*2. lista címe
3*file*https://abcdefg.com/abc/234567890/valami1/234567890_valami2.m3u8
3*title*3. lista címe
-
-
karlkani
aktív tag
válasz
Fire/SOUL/CD #48120 üzenetére
Köszönöm!
Az eredetire adatokra nincs szükség, azt kellene módosítani a makrónak. Megcsináltam, lehúztam a képletet végéig (több száz sor), megcsinálta. Aztán visszamentem a modulba, átírtam, amit kell, erre úgy szarrá fagyott az egész gép, hogy öröm volt nézni. Szerencsére bezáródott az excel néhány perccel később. Megnyitottam a füzetet, majd a modult, erre megint 100% a processzorhasználat, a modul fejléce meg villódzik, hogy rohadjon meg...
-
Fferi50
Topikgazda
válasz
karlkani #48119 üzenetére
Szia!
A módosított makró:Sub modosit()
Dim a As String, cl As Range
For Each cl In ActiveSheet.UsedRange.Columns("A").Cells 'az A helyére írd az adataid oszlopát
If InStr(cl.Value, "/") > 0 Then
a = cl.Text
a = Left(a, InStrRev(a, "/")) & "valami_" & Mid(a, InStrRev(a, "/") + 1) ' a valami_ legyen idézőjelek között
a=replace(a,".","_valami2.")
cl.Value = a
End If
Next
End Sub
Üdv.
-
válasz
karlkani #48119 üzenetére
Ha jól értelmeztem, akkor
ebből:1*file*https://abcdefg.com/abc/123456789/123456789.m3u8
legyen ez
1*file*https://abcdefg.com/abc/123456789/valami1/123456789_valami2.m3u8
Ezen sorokat meg hagyja békén
1*title*1. lista címe
Ha igen, jól értettem, akkor Module1-be
'Fire/SOUL/CD - 2021
Option Explicit
Public Function Fire_Replace(ByVal SourceURL As String) As String
Const SLASH = "/"
Const DOT = "."
Dim MyStrArray() As String
MyStrArray = Split(SourceURL, SLASH)
If WorksheetFunction.CountA(MyStrArray) > 1 Then
Fire_Replace = MyStrArray(0) & SLASH & _
MyStrArray(1) & SLASH & _
MyStrArray(2) & SLASH & _
MyStrArray(3) & SLASH & _
MyStrArray(4) & SLASH & _
"valami1" & SLASH & _
Replace(MyStrArray(5), DOT, "_valami2.")
Else: Fire_Replace = MyStrArray(0)
End If
End Function -
karlkani
aktív tag
Sziasztok!
Adott a következő lejátszási lista, amit módosítani kellene ismét. Itt az eddig használt makró, ezt kellene úgy átírni, hogy ez legyen a végeredmény.
1*file*https://abcdefg.com/abc/123456789/valami1/123456789_valami2.m3u8
1*title*1. lista címe
2*file*https://abcdefg.com/abc/23456789/valami1/23456789_valami2.m3u8
2*title*2. lista címe
3*file*https://abcdefg.com/abc/234567890/valami1/234567890_valami2.m3u8
3*title*3. lista címeA számokat elválasztó / után kerüljön be a valami1 és egy /, a második szám után pedig a _valami2"
* A valami1 és _valami2 minden lista esetén megegyezik,
Előre is köszönöm!
-
Fferi50
Topikgazda
-
morgusz
csendes tag
Sziasztok!
Beérkező hibás adatok cseréjével harcolok.
Egy A:H oszlopokból álló tartomány D oszlopában vannak hibás adatok, amit az O1:P20 (valószínű hogy ez lista bővülni fog) tartomány adatai alapján, (O a hibás, P a jó adat) kellene javítani. Találtam itt egy makrót, amit alkalmazva a D oszlopban a rosszat kicseréli ugyan, de a jók helyett és az üres cellákban meg "#hiányzik" eredményt produkál.
Sub csere()
Dim cv As Object
For Each cv In Range("A1:H10000")
Range(cv.Address) = Application.VLookup(cv, Range("O1:P20"), 2, 0)
Next
End Sub
Ha valaki tud, és ráér, kérem segítsen!
Köszönöm! -
Delila_1
veterán
válasz
phanfantom #48113 üzenetére
Feltöltöttem egy fájlt ide .
Akkor kell módosítani a makrón, ha a tartományod nem azA:F
tartományban van, vagy nem az F oszlop tartalmazza a lejárati dátumokat. -
phanfantom
senior tag
válasz
Delila_1 #48112 üzenetére
Tulajdonképpen most még csak kérdés illetve a specifikáció fázisában vagyok. Egyébként semmilyen különbség nincs az aktív és nem aktív bejegyzés között. Csak a lejárat dátuma. És most, hogy írok, egyre jobban meg tudom fogalmazni. Az aktívak kétfélék lehetnek. Lejárat nélküliek és lejárattal rendelkezők. A lejárat nélkülieket manuálisan kell módosítani, hogy inaktívvá váljanak. Ennek a címsornak lehet az a neve, hogy státusz. Ezt lehet soronként manuálisan módosítani. A címsor egy másik cellája a sok közül a lejárat dátuma. És ha van érték megadva egy adott bejegyzés lejáratához, akkor amint azt a dátumot elérjük, a státusz kapcsolóját magától módosítja az excel és így kikerül az aktívak közül. Azt hiszem ez lenne a feladat:)
-
Delila_1
veterán
válasz
phanfantom #48111 üzenetére
És még 2 sort. Az egyikben lejárt tétel legyen, a másikban nem.
Pl. a képmetszővel készíthetsz egy fotót róla, és azt illeszted be ide. A képen az oszlopazonosítóknak (A, B, stb.) is látszaniuk kell. -
Delila_1
veterán
válasz
phanfantom #48109 üzenetére
[link] Add meg ...
-
phanfantom
senior tag
Köszönöm nektek
Én nem értek az excelhez sajnos. Eddig ezeket a feljegyzéseket papír alapon vezettem füzetben. Aminek persze van előnye, hiszen a füzet mindig kéznél van, nem romlik el. De nem modern a mai világban:)) Hatalmas adatmennyiség sincs, de keresni benne, csak szemmel lehet, ami nem előnyös. És ugye ami 2 lappal korábban volt, nincs szem előtt. Szóval ezért gondoltam az excelre, hogy ezen kellene változtatni.
Vagyis időrendben követik egymást a sorok, de amik lejárnak, azokat ki kellene venni és csak az aktívaknak kellene maradniuk. Akkor is, ha az egy fél évvel korábbi feljegyzés. Kb. így tudnám ezt az egészet leírni. -
lappy
őstag
válasz
phanfantom #48106 üzenetére
https://www.extendoffice.com/documents/excel/4133-excel-protect-cells-based-on-date.html
Ezt nézd meg -
Delila_1
veterán
válasz
phanfantom #48106 üzenetére
Tegyél fel egy képet, ami tartalmazza a címsort, és még 2 sort, amik közül az egyik lejárt, a másik nem. Ezek nélkül csak találgatni lehet, és utólag át kellene írnod egy halom értéket a makróban.
-
phanfantom
senior tag
Sziasztok,
Alkalmas lehet arra az excel, hogy a soronként vezetett naplószerű bejegyzések státusza aktív és inaktív között automatikusan változzon? Mondjuk egy cellában lehet olyan olyan bejegyzés, amiben dátum van(lejárat), ami alkalmas lehet "kapcsolónak". Tehát arra lenne szükség, hogy mindig csak az aktív sorok legyenek elől és ne legyen egy 3 hónappal ezelőtti bejegyzés 200 sorral lejjebb, miközben az még mindig nyitott tétel. A korábbi bejegyzések pedig archiválva, akár egy másik munkalapra is kerülhetnek. Mit gondoltok? Köszi a válaszokat:)
-
Delila_1
veterán
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Application.EnableEvents = False
If Application.WorksheetFunction.CountA(Range(Target.Address)) = Target.Count Then
Range(Target.Address).Offset(, 1) = Date
Else
Range(Target.Address).Offset(, 1) = ""
End If
Application.EnableEvents = True
End If
End Sub
Ha nem az első oszlopba írsz adatot, akkor az
If Target.Column = 1 Then
sorban kell az 1-et átírnod az oszlop számára. Ha pedig a dátumot nem a következő oszlopba íratnád, akkor aRange(Target.Address).Offset(, 1) = ""
sorban kell az 1-et annyira átírni, ahány oszloppal jobbra szeretnéd megkapni. -
Jonie
csendes tag
válasz
Delila_1 #48100 üzenetére
Nem csak A1 - B1 ről van szó, hanem a teljes tábla adott oszlopának minden cellájáról, még nem tudom pontosan melyik lesz az, mert a táblát ezután fogom elkészíteni, de addig nem fogtam hozzá míg ezt a dátum kitöltést nem tudtam megoldani.
Sor és oszlop beszúrás nem lesz, lapvédelmet teszek rá.
Sőt, nem is A és B oszlopokban lesz alkalmazva, de Delila_1 megoldását tudtam úgy módosítani, hogy a szükséges oszlopba történő íráskor a meghatározott oszlop (még nem tudom melyik lesz az) celláiba írodjon a dátum.
Nekem így jó, talán csak annyi, hogy ha több sort törlök egyszerre, akkor nem törlődik a már beírt dátum csak egyesével, ha erre lenne egy egyszerű megoldás, akkor már több lenne mint tökéletes.Köszönöm!
-
Új hozzászólás Aktív témák
- Bambu Lab 3D nyomtatók
- Mobilinternet
- Linux kezdőknek
- Autóápolás, karbantartás, fényezés
- Formula-1
- Melyik tápegységet vegyem?
- Félreértések az FSR 4 és a PlayStation 5 Pro körül
- Villanyszerelés
- Viber: ingyen telefonálás a mobilodon
- Android alkalmazások - szoftver kibeszélő topik
- További aktív témák...
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 16/32/64GB RAM RX 7700XT 12GB GAMER PC termékbeszámítással
- FÉL ÁR ALATT! Lian Li UNI FAN SL120 RGB 1db-os és 3db-os ventilátor szett garanciával
- ROBUX ÁRON ALUL - VÁSÁROLJ ROBLOX ROBUXOT MÉG MA, ELKÉPESZTŐ KEDVEZMÉNNYEL (Bármilyen platformra)
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával
- LG 27CN650N-6A - Felhő Monitor - 1920x1080 FHD - 75Hz 5ms - USB Type-C - Quad Core - BT + WiFi
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest