-
Fototrend
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
Szia,
Feri kódja nem nézi, hogy az ellenőrzés után van-e újabb timestamp. Nem tudom, hogy ez a valós adaton gondot okoz-e vagy sem. Ahhoz hogy helyben cserélhesd az adatokat másik makró kell, amit billentyűparanccsal vagy külön gombbal tudsz indítani. Vigyázz mert nem lehet visszavonni a makró módosításait!
Sub ellenor2()
Dim rngAdatok As Range
Dim adat As Range, adatSzoveg As String
Dim posEllenorzes As Long, posHatar As Long, posKovetkezoHatar As Long
Const ell = "ellenőrzés", hatar = "|"
Set rngAdatok = Selection.CurrentRegion 'kijelölt cellát tartalmazó tartomány használata
For Each adat In rngAdatok
posEllenorzes = InStr(1, adat, ell)
adatSzoveg = ""
'ha van benne "ellenőrzés" szöveg akkor nézzük át
If posEllenorzes > 0 Then
posHatar = InStrRev(adat, hatar, posEllenorzes) 'ellenőrzes előtti határjel helye
posKovetkezoHatar = InStr(posHatar + 1, adat, hatar) 'ellenőrzés utáni első határjel helye
If posKovetkezoHatar > posEllenorzes Then
adatSzoveg = Mid(adat, posHatar, posKovetkezoHatar - posHatar - 1)
End If
End If
adat = adatSzoveg
Next adat
End SubPower Query (PQ)-ben pedig több lépéses a dolog.
Az én mintám így néz ki:
Bal oldalt az adatsor, jobb oldalt pedig egy munkafázis ahol lehet módosítani hogy mire keressen.
1. Első lépésként mindkét táblát betöltöm PQ-be. A jobb oldalinak adtam egy ilyen nevet "tblMunkafazis".
2. Megkeressük hogy van-e "ellenőrzés" az adatsorban. Ehhez egy új oszlopot szúrunk be, neve nálam "Ellenorzes". A képlete pedig:
=Text.PositionOf([Adatok], tblMunkafazis[Munkafázis]{0})
3. Az ehhez tartozó pipe-ot is megkeressük. Az oszlop neve: "Határ", képlete:
=Text.PositionOf(Text.Start([Adatok],[Ellenorzes]),"|",Occurrence.Last)
4. Az ezutáni pipe helyének a képlete:
=Text.PositionOf(Text.Middle([Adatok],[Hatar]+1),"|")+[Hatar]
5. Minket csak azok érdekelnek ahol van ellenőrzés szöveg és ahol a két pipe eltér. Új oszlopba pedig kirakjuk az eredeti szöveg pipeok közötti részét. A képlet:
=if [Ellenorzes]>0 and [Kovetkezo hatar] > [Hatar] then Text.Middle([Adatok],[Hatar],[Kovetkezo hatar]-[Hatar]-1) else null
6. Azok a sorok ahol null van nem kellenek és a többi oszlopot is eltávolítjuk.
7. Eredményt Excel-be visszatöltjük.A teljes M-kód:
let
Forrás = Excel.CurrentWorkbook(){[Name="Táblázat1"]}[Content],
#"Típus módosítva" = Table.TransformColumnTypes(Forrás,{{"Adatok", type text}}),
#"Egyéni oszlop hozzáadva" = Table.AddColumn(#"Típus módosítva", "Ellenorzes", each Text.PositionOf([Adatok], tblMunkafazis[Munkafázis]{0}), Int64.Type),
#"Egyéni oszlop hozzáadva1" = Table.AddColumn(#"Egyéni oszlop hozzáadva", "Hatar", each Text.PositionOf(Text.Start([Adatok],[Ellenorzes]),"|",Occurrence.Last), Int64.Type
),
#"Egyéni oszlop hozzáadva2" = Table.AddColumn(#"Egyéni oszlop hozzáadva1", "Kovetkezo hatar", each Text.PositionOf(Text.Middle([Adatok],[Hatar]+1),"|")+[Hatar], Int64.Type),
#"Egyéni oszlop hozzáadva3" = Table.AddColumn(#"Egyéni oszlop hozzáadva2", "Eredmeny", each if [Ellenorzes]>0 and [Kovetkezo hatar] > [Hatar] then Text.Middle([Adatok],[Hatar],[Kovetkezo hatar]-[Hatar]-1) else null, type text),
#"Sorok szűrve" = Table.SelectRows(#"Egyéni oszlop hozzáadva3", each ([Eredmeny] <> null)),
#"Többi oszlop eltávolítva" = Table.SelectColumns(#"Sorok szűrve",{"Eredmeny"})
in
#"Többi oszlop eltávolítva"üdv
Új hozzászólás Aktív témák
- iRacing.com - a legélethűbb -online- autós szimulátor bajnokság
- Videó stream letöltése
- Parkside szerszám kibeszélő
- Milyen TV-t vegyek?
- Óra topik
- Eddigi legjobb DxOMark helyezésével zárta 2025-öt a Vivo
- Sweet.tv - internetes TV
- AliExpress tapasztalatok
- Apple iPhone 17 Pro Max – fennsík
- Genshin Impact (PC, PS4, Android, iOS)
- További aktív témák...
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Eladó Steam kulcsok kedvező áron!
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Windows 10/11 Home/Pro , Office 2024 kulcsok
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Bontatlan, Sony PS5 PRO Pro 2TB, lemez mentes verzió
- Készpénzes / Utalásos Számítógép felvásárlás! Személyesen vagy Postával!
- ÁRGARANCIA!Épített KomPhone i5 10400F 16/32/64GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
- Ezviz BC1 1 kamerás kamera szett / 12 hó jótállás
- magyar billentyűzet - 172 - Lenovo Legion Pro 7 (16IAX10H) - Intel Core U9 275HX, RTX 5080
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest
Fferi50
