Keisti tekstą langeliuose - „Excel“ patarimai

Turinys

Jeanas uždavė šios savaitės „Excel“ klausimą:

Bandau konvertuoti tiekėjų kainų knygą „Excel“, kad jų UPC kodai atitiktų mūsų UPC kodų sistemą. Jų kainų knygoje yra „Excel“ stulpelis su skaičių serija, pvz. 000004560007 ARBA cel000612004. Tai, ką turiu padaryti, yra du kartus. Man reikia pašalinti pirmuosius tris nulius, neištrinant jokių kitų 0 langelyje. Tada turiu pridėti 3 skaitmenų kodą „upc“ prieš pirmąjį skaitmeninį langelio langelį. Tai bus nuolatinis poreikis. Turėsiu išmokyti kelis žmones naudotis „Excel“ sistema.

Panašu, kad Jeanas jau svarstė galimybę naudoti „Edit-Replace“, kad atsikratytų trijų nulių. Tai neveikia, nes atlikus „000004560007“ pakeitimo pakeitimą abu 000 000 atvejai išnyks.

Pirmiausia noriu pasiūlyti Jeanui įterpti laikiną stulpelį šalia dabartinių kainų kodų, parašyti formulę, kad atliktumėte transformaciją, tada naudokite „Edit-Copy“, „Edit-PasteSpecial-Values“, kad nukopijuotumėte formulę atgal per pradinius kainų kodus.

Prastai dokumentuota funkcija REPLACE () šiuo atveju padės apgauti. Nusivyliau įgyvendindama REPLACE (). Aš būčiau pagalvojęs, kad paprašys pakeisti konkretų tekstą, tačiau prašo vartotojo išsiaiškinti, kokias simbolių pozicijas pakeisti. REPLACE pakeis dalį teksto eilutės nauja. Keturi argumentai, kuriuos perduodate funkcijai, yra langelis, kuriame yra senas tekstas, simbolio padėtis senajame tekste, kurį norite pakeisti, simbolių skaičius, kurį norite pakeisti, ir naujas naudojamas tekstas.

Mano supaprastinta prielaida yra ta, kad trys nuliai reiškia UPC kodo pradžią eilutėje. Taigi langelyje nereikia ieškoti pirmojo skaitinio simbolio. Kai formulė suranda tris nulius, ji gali pakeisti tuos tris nulius eilute „upc“.

Norėdami rasti pirmojo „000“ atsiradimo tekste vietą, naudokite šią formulę:

=FIND(A2,"000")

Formulė, kurią Jeanui reikės įvesti į B2 langelį, būtų tokia:

=REPLACE(A2,FIND("000",A2),3,"upc")

Manau, kad kainodaros analitikai paryškintų langelių diapazoną ir tada pasinaudotų šia makrokomanda. Makrokomanda naudos kilpą, kurios pradžioje bus „Kiekvienam pasirinkimo langeliui“. Su šia kilpa „ląstelė“ tampa specialiu diapazono kintamuoju. Galite naudoti cell.address arba cell.value arba cell.row, norėdami rasti kilpos dabartinės ląstelės adresą, vertę ar eilutę. Štai makrokomanda:

Public Sub Jean() ' This macro will replace the first occurrence of "000" ' in each selected cell with the string "upc" ' copyright 1999 www.MrExcel.com For Each cell In Selection cell.Value = Replace(cell.Value, "000", "upc", 1, 1, vbTextCompare) Next cell End Sub

Atkreipkite dėmesį, kad tai yra destruktyvaus tipo makrokomanda. Kai vartotojas paryškina langelių diapazoną ir paleidžia makrokomandą, šios ląstelės bus pakeistos. Savaime suprantama, kad norite kruopščiai išbandyti savo makrokomandą prieš bandymo duomenis, prieš atmesdami realius gamybos duomenis. Kai susiduriate su tokia situacija kaip Jeanas, kai jums nuolat reikės pertvarkyti stulpelį naudojant sudėtingą formulę, paprastos makrokomandos, tokios kaip iliustruota, parašymas gali būti efektyvus ir laiko taupantis įrankis.

Įdomios straipsniai...