Kezdőlap › Fórumok › Excel témák › Gyors szöveg csere
- This topic has 11 hozzászólás, 2 résztvevő, and was last updated 8 years, 1 month telt el by madpapa.
-
SzerzőBejegyzés
-
2016-09-26-16:09 #3020
Sziasztok!
A következő lenne a bajom. Szeretnék bizonyos egy cellában levő karaktersorozatot módosítani anélkül, hogy túlzottan sokat kelljen gépelnem, mivel az adott bizonyos mértékben változó karaktersorozatból sok van. No nézzük hogy mire is gondolok:
D4 2400 16GB C16 Corsair Ven K4 : ez van egy cellában
DDR4 / 2400 16GB CL16 Corsair Vengeance Kit4 : ezt szeretnémVagy a másik:
D4 2800 32GB C14 Corsair Dom K2 : ez van a cellában
DDR4 / 2800 32GB CL14 Corsair Dominator Kit2 : ezt szeretnémÉs ugye még több verzióban is előfordulhat értelemszerűen. Ez csak 2 példa.
Nyilván cserékkel megoldható, de az macerás. Valamilyen makróban gondolkoznék ami gyorsan megcsinálja az átalakítást. Vagy szövegfüggvényekkel oldható meg talán.
Azért teszem fel, mert hátha találkozott már valaki hasonlóval és ránézésre van egy egyszerű ötlete.Köszi!
- A témakör módosításra került: 8 years, 1 month telt el-madpapa.
2016-09-27-10:11 #3022Szia!
ha össze tudsz rakni egy két oszlopos megfeleltetési táblát, hogy mit mire kell cserélni, akkor abból már lehetne dolgozni.
Összedobtam neked egy UDF-et.
Egy külön munkafüzetben tedd egy modulba, majd mentsd el.
A munkafüzet legyen nyitva, úgy tudod használni.Function subst_multiple(originalstring As String, findstrings As Range, subststrings As Range) As String Dim f As String Dim r As String Dim i As Long If findstrings.Rows.Count = subststrings.Rows.Count Then For i = 1 To findstrings.Rows.Count f = findstrings.Cells(i) r = subststrings.Cells(i) If InStr(originalstring, f) <> 0 Then originalstring = Replace(originalstring, f, r) End If Next subst_multiple = originalstring Else subst_multiple = "#Find and replace arrays must have the same size!" End If End Function
Majd szólj, hogy milyen…
Imre
- A hozzászólás módosításra került: 8 years, 1 month telt el-horvimi.
2016-09-27-22:10 #3032Nagyon szépen köszönöm a segítséget, de még nem tudtam elindítani. 🙂
A képen látszik hogy hová tettem be. Hogy tudom működésre bírni?Attachments:
You must be logged in to view attached files.2016-09-28-08:02 #3035Jó helyre tetted 🙂
Úgy működik, mint egy Excel munkalap függvény, tehát egy üres cellába állsz, és utána
Egyik lehetőség, hogy:
1. megnyomod az fx gombot a függvény beillesztéséhez
2. kategória: felhesználói
3. Ott kiválasztod ezt a függvényt
4. kattintgatással megadod a paramétereket úgy, ahogy a fenti képen csatoltam.Másik, gyorsabb lehetőség
1. Beírod, hogy: =subst_multiple(
2. fx vagy Ctrl+A
3. Megadod a paramétereketha megvan egy cella, akkor lehúzhatod az oszlopban, ha a módosítandó szövegeid oszlopban vannak.
FONTOS Info: A cserélendő listának egyedinek kell lennie. Ha lenne két vagy több olyan, amik ugyanúgy kezdődnek, vagy részben tartalmazzák egymást, akkor nem biztos, hogy jó cserét csinál.
Ha ilyenbe ütköznél, akkor kicsit módosítani kell a függvényt, hogy az első cserénél ugorjon ki a ciklusból, illetve a cserélendőket hosszuk szerint növekvőbe kell rendezni.
Meg még lehet vele egyéb gond is, ez a használat során fog kiderülni.
Kezdetnek biztos jó lesz.???
Imre
2016-09-28-09:23 #3038Én is így gondoltam hogy működnie kellene. Így is gépeltem be. Gondolom ilyenkor fel kellene dobnia azt az ablakot amit bemásoltál. Nekem nem dob fel semmit. 🙁
2016-09-28-09:25 #3039Aha, most már rendben van 😀
2016-09-28-13:07 #3040Azt kérdezném, hogy ugye ez szóközzel tagolt stringekre igaz? Miben változna, ha pl. a string egyben van, azaz nincsen szóközzel tagolva?
2016-09-28-18:35 #3041Nem értem pontosan mit kérdezel, de a megtalált szövegrészt kicseréli arra, ami a párja a segédtáblában. Szóközökkel nem foglalkozik.
Legegyszerűbb,ha kipróbálsz mindenféle esetet, és ha kérdés merül fel, akkor szólj.
Legyen minta munkafüzet, amiben próbálkozol.Imre
2016-09-28-18:43 #3042Kipróbáltam és működik szünet nélküli stringnél is.
2016-09-28-18:51 #3043bár így nem tökéletes
2016-09-28-18:54 #3044Ennél pl. a végén a CL16 után még bejön a GB. CMK16GX4M2A2400C16 —> Corsair Vengeance 16GB DDR4 kit 2400MHz CL16 GB
Attachments:
You must be logged in to view attached files.2016-09-29-11:09 #3046De aztán egy kis átcsoportosítással megoldottam.
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.