Hirdetés
- Philips LCD és LED TV-k
- Amlogic S905, S912 processzoros készülékek
- PC-k milliói kerülhetnek veszélybe idén
- Milyen billentyűzetet vegyek?
- Házimozi belépő szinten
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- SSD kibeszélő
- Milyen széket vegyek?
- HiFi műszaki szemmel - sztereó hangrendszerek
- DUNE médialejátszók topicja
-
PROHARDVER!
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
- Game Pass Ultimate előfizetések 1 - 36 hónapig azonnali kézbesítéssel a LEGOLCSÓBBAN! AKCIÓ!
- MS SQL Server 2016, 2017, 2019
- MEGA AKCIÓ! - Jogtiszta Windows - Office & Autodesk & CorelDRAW - Azonnal - Számlával - Garanciával
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest
Fferi50

