Excel, göra om ett ord till en "sträng" eller vad det heter

Permalänk
Medlem

Excel, göra om ett ord till en "sträng" eller vad det heter

Ok, jag skriver en bok i Excel, med massa referenser till saker, t ex Grönland.

Sedan efter många 1000 ord i flera olika celler och på flera olika sidor, lång och kort text, så kom jag på att jag ville byta ordet Grönland till Finland, sedan ännu senare kom jag på att jag ville döpa om detta igen.

Jag vill av olika anledningar inte använda sök & ersätt hela tiden, så går det att på något vänster definiera t ex LAND1=grönland på någon sida, så att jag senare kan bara göra LAND1=Norge och då byter den i hela dokumentet? Det funkar ju att länka celler med information hit och dit, men kanske inte bara ett ord sådär?

Visa signatur

gotta go fast

Permalänk
Avstängd

Du menar som find/replace fukntionen i Notepad++?
Finns inte den i office också?

Permalänk
Medlem

Lättast är absolut att göra Sök&Ersätt, eller Find&Replace om du har engelskt Excel. Tryck Ctrl-F för att börja, välj fliken Ersätt/Replace och fäll ut alla alternativ så löser du det snart.

Att göra vad du vill gå iofs, men är lite feppligt. Om du skriver ordet du vill mata in i cell C1, så kan du i alla andra celler där du vill läsa från den cellen skriva

="text1 "&C1&" text2"

, där text1 och text2 är det som skall visas före respektive efter innehållet i cell C1.

Visa signatur

5900X | 6700XT

Permalänk
Medlem

Nej, men alltså, jag vill ju definiera ett ord som en klass eller något och när jag ändrar den ändras det överallt, UTAN att behöva göra "find and replace". Det senare är för jobbigt att göra och inte särskilt dynamiskt alls.

Eftersom jag inte riktigt vet vad termerna är för detta så är det lite svårt att förklara med kanske.

Visa signatur

gotta go fast

Permalänk
Medlem
Skrivet av mpat:

Lättast är absolut att göra Sök&Ersätt, eller Find&Replace om du har engelskt Excel. Tryck Ctrl-F för att börja, välj fliken Ersätt/Replace och fäll ut alla alternativ så löser du det snart.

Att göra vad du vill gå iofs, men är lite feppligt. Om du skriver ordet du vill mata in i cell C1, så kan du i alla andra celler där du vill läsa från den cellen skriva

="text1 "&C1&" text2"

, där text1 och text2 är det som skall visas före respektive efter innehållet i cell C1.

Du skrev medans jag skrev, det du visade var ju intressant så klart.

Visa signatur

gotta go fast

Permalänk
Medlem

Det var ju riktigt nice, felet är att om man flyttar om cellerna så funkar det så klart inte. Dvs, om jag gör en sjysst keywordsida där jag bara listar länder och aldrig ändrar ordningen så kan hela dokumentet referera till denna sida.
Men om jag får för mig att ändra ordningen där senare, t ex sortera i bokstavsordning då kommer jag förstöra allt. Men men

Visa signatur

gotta go fast

Permalänk
Medlem
Skrivet av Hipshot:

Nej, men alltså, jag vill ju definiera ett ord som en klass eller något och när jag ändrar den ändras det överallt, UTAN att behöva göra "find and replace". Det senare är för jobbigt att göra och inte särskilt dynamiskt alls.

Eftersom jag inte riktigt vet vad termerna är för detta så är det lite svårt att förklara med kanske.

Ursäkta om jag låter otrevlig, men hur sjutton tycker du att det är bökigare att dra en Search & Replace än att krångla med att lägga in nyckelord i celler som du hänvisar till?
Jag menar, om du vill byta ut allt vad Grönland heter mot t.ex. Finland så är Search & Replace förmodligen det smidigaste verktyget du kan använda i detta fallet.

Sen är jag nyfiken på varför du skriver en bok, i Excel?

Visa signatur

:: Fractal Design Define 7 :: ASUS Prime Z490-A :: Intel i9 10900K @ 5 GHz :: Corsair 32GB RAM @ 3600Mhz CL18 :: Kingston A2000 1TB M2 :: MSI RTX 3080 Gaming X Trio... :: Seasonic Focus PX 750W 80+ Platinum :: Noctua NH-D15 chromax.black ::

Permalänk
Avstängd

Experimentera med Conditional Formatting, där kan du göra det du vill.

Permalänk
Medlem

Det finns ett lättare sätt, tycker jag, än ovan föreslagna. Om du nu verkligen vill skippa sök&ersätt, så testa med substitute(). Enda problemet är att du får en extra kolumn där resultatet visas, skilt från där du skriver.

Ex, skriv det du vill skriva i cell A1, istället för land så skriver du en kod, t ex KODFÖRLAND. I cell A2 skriver du bara "=SUBSTITUTE(A1,"KODFÖRLAND",C1)"

C1 är såklart cellen där du anger vilket land som gäller för stunden, det kan ju lämpligen vara på ett annat blad etc. Även substitute kan ligga på ett eget blad, så skriv allt i Sheet1, sen läser du det du Sheet2. Det är ganska lätt att ersätta flera order, men då måste du nestla flera substitute tyvärr, ex:

"=SUBSTITUTE(SUBSTITUTE(A1,"KODFÖRLAND",C1);"KODFÖRNAMN";C2)"

Visa signatur

Intel i5 4670K + Hyper 212 EVO
Gigabyte GA-Z87-HD3
Fractal Design Define S
Asus GTX1070 Dual

Permalänk
Medlem
Skrivet av Bazzie:

Det finns ett lättare sätt, tycker jag, än ovan föreslagna. Om du nu verkligen vill skippa sök&ersätt, så testa med substitute(). Enda problemet är att du får en extra kolumn där resultatet visas, skilt från där du skriver.

Ex, skriv det du vill skriva i cell A1, istället för land så skriver du en kod, t ex KODFÖRLAND. I cell A2 skriver du bara "=SUBSTITUTE(A1,"KODFÖRLAND",C1)"

C1 är såklart cellen där du anger vilket land som gäller för stunden, det kan ju lämpligen vara på ett annat blad etc. Även substitute kan ligga på ett eget blad, så skriv allt i Sheet1, sen läser du det du Sheet2. Det är ganska lätt att ersätta flera order, men då måste du nestla flera substitute tyvärr, ex:

"=SUBSTITUTE(SUBSTITUTE(A1,"KODFÖRLAND",C1);"KODFÖRNAMN";C2)"

Hittade detta på nätet nyss och tyckte det lät bra, problemet är att den inte vill ta koden... jag har kopierat exakt det du skrev, samma sak hittade jag på andra sidor. Kör ju ett äldre excel, 2007, men det borde inte spela någon roll, verkar som att funktionen har funnits sjukt länge.

@Brunbeck, nja, det är ju för jobbet, det är inte liksom en roman direkt.

Visa signatur

gotta go fast

Permalänk
Medlem
Skrivet av Hipshot:

Det var ju riktigt nice, felet är att om man flyttar om cellerna så funkar det så klart inte. Dvs, om jag gör en sjysst keywordsida där jag bara listar länder och aldrig ändrar ordningen så kan hela dokumentet referera till denna sida.
Men om jag får för mig att ändra ordningen där senare, t ex sortera i bokstavsordning då kommer jag förstöra allt. Men men

Det låter som att det du vill uppnå kan åstadkommas med VLOOKUP/LETARAD.

Gör ett separat arbetsblad (vi kallar detta "ordbok" för exemplets skull) där du i kolumn A skriver en lista på koder - exempelvis LAND1, LAND2 och så vidare, som du nämnde tidigare. Vi antar att du har 30 länder att fylla i, med start på rad 2 (rad 1 för kolumnetiketter). I kolumn B skriver du sedan vad du för närvarande vill att respektive kod skall representera, exempelvis Grönland på raden för LAND1.

Istället för Grönland skriver du då i ditt andra blad "=VLOOKUP("LAND1";Ordbok!$A$2:$B$31;2;FALSE)". Detta returnerar "Grönland". Ändrar du Grönland till Island i din ordboks-flik returnerar det istället Island. Om du har excel på svenska ändrar du VLOOKUP till LETARAD, och FALSE till FALSKT.

Permalänk
Medlem

Det du är ute efter är att definiera konstanter och sedan skapa referenser till dessa, som fungerar som ett traditionsenligt key=>val, där du åberopar key och value visas.

LAND1 = Finland

LAND1 är en (definierad) konstant som du sen refererar till genom att skriva LAND1 och det visas som Finland.

I Excel heter funktionen Names (Namn?). Du döper en cell till LAND1 och skriver Finland i den, och skapar en referens till den genom att skriva "=LAND1", utan citat, i valfri cell. Du namnger en cell till vänster om där du skriver din text, där det står cellens "namn", ex A1, J7, osv.

Du kan även namnge ett intervall av celler, bra för redovisningar osv, så funktionen är riktigt händig att känna till för alla som åtminstone då och då använder Excel.

Referens:
https://support.office.com/en-us/article/define-and-use-names...

Edit:
Med det sagt, sök&ersätt är lättaste alternativet. Och Word/Wordpad/Notepad är ett bättre alternativ för en bok.

Permalänk
Medlem

Laddade upp ett blad här om ni känner er på humör för att testa
http://www.zfight.com/swec.xlsx

På sidan ett står det SKO som ett keyword på lite ställen och på sidan 2 står det Tomat Man vill ju ersätta SKO med Tomat liksom.

Skrivet av Genomresa:

Det låter som att det du vill uppnå kan åstadkommas med VLOOKUP/LETARAD.

Gör ett separat arbetsblad (vi kallar detta "ordbok" för exemplets skull) där du i kolumn A skriver en lista på koder - exempelvis LAND1, LAND2 och så vidare, som du nämnde tidigare. Vi antar att du har 30 länder att fylla i, med start på rad 2 (rad 1 för kolumnetiketter). I kolumn B skriver du sedan vad du för närvarande vill att respektive kod skall representera, exempelvis Grönland på raden för LAND1.

Istället för Grönland skriver du då i ditt andra blad "=VLOOKUP("LAND1";Ordbok!$A$2:$B$31;2;FALSE)". Detta returnerar "Grönland". Ändrar du Grönland till Island i din ordboks-flik returnerar det istället Island. Om du har excel på svenska ändrar du VLOOKUP till LETARAD, och FALSE till FALSKT.

Kan inte göra detta mitt i en text väl dock, alltså, "text text text LAND1 text text"?

Visa signatur

gotta go fast

Permalänk
Medlem
Skrivet av Hipshot:

Kan inte göra detta mitt i en text väl dock, alltså, "text text text LAND1 text text"?

Som tidigare nämnt i tråden kan du bryta en sträng, ex:

="Jag har åkt till "&LAND1&"!"

blir:

Jag har åkt till Finland!

Permalänk
Medlem
Skrivet av Raphaei:

Som tidigare nämnt i tråden kan du bryta en sträng, ex:

="Jag har åkt till "&LAND1&"!"

blir:

Jag har åkt till Finland!

Helt rätt, glömde det. Men det var ju den lilla detaljen om man flyttar om cellerna där referensen finns. Jag är helt game om detta inte går att göra, för det kanske helt enkelt inte går.

Visa signatur

gotta go fast

Permalänk
Medlem
Skrivet av Hipshot:

Helt rätt, glömde det. Men det var ju den lilla detaljen om man flyttar om cellerna där referensen finns. Jag är helt game om detta inte går att göra, för det kanske helt enkelt inte går.

Det funkar jättebra med cut and paste (ctrl + x, ctrl + v). När du "cuttar" följer all formatering med och Excel auto-uppdaterar alla cellreferenser till celler som flyttas automatiskt. Ex:

A1 = 12
B1 = =A1

B1 visar 12.

Du flyttar (cut+paste) A1 till A2, B1 visar fortfarande 12, med referens till A2.

Permalänk
Medlem
Skrivet av Raphaei:

Det funkar jättebra med cut and paste (ctrl + x, ctrl + v). När du "cuttar" följer all formatering med och Excel auto-uppdaterar alla cellreferenser till celler som flyttas automatiskt. Ex:

A1 = 12
B1 = =A1

B1 visar 12.

Du flyttar (cut+paste) A1 till A2, B1 visar fortfarande 12, med referens till A2.

Tänkte med auto sort, alltså A-Z(Ö), för jag testade då tappade den referensen helt. Första cellen hade fortfarande samma namn, men innehållet ändrades.

Visa signatur

gotta go fast

Permalänk
Medlem
Skrivet av Hipshot:

Hittade detta på nätet nyss och tyckte det lät bra, problemet är att den inte vill ta koden... jag har kopierat exakt det du skrev, samma sak hittade jag på andra sidor. Kör ju ett äldre excel, 2007, men det borde inte spela någon roll, verkar som att funktionen har funnits sjukt länge.

En snabb googling säger att funktionen finns i Excel 2007 men inte äldre. Det innebär ibland att man måste ha en fil som är i Excel 2007-formatet, dvs slutar på .xslx istället för .xls, för att funktionen skall fungera. Prova att spara filen i det formatet och se om det fungerar.

Visa signatur

5900X | 6700XT

Permalänk
Medlem
Skrivet av Hipshot:

Helt rätt, glömde det. Men det var ju den lilla detaljen om man flyttar om cellerna där referensen finns. Jag är helt game om detta inte går att göra, för det kanske helt enkelt inte går.

Raphaeis lösning fungerar utmärkt att kombinera även med VLOOKUP, så det är inga problem att lägga in VLOOKUP mitt i en längre sträng. Jag brukar själv lägga in det i en =CONCATENATE(), vilket har samma effekt, men är lättare att hålla koll på i efterhand när man har glömt hur man byggde upp formeln och vill se vad den gör. VLOOKUP bryr sig heller inte om sorteringsordningen, så länge värdet du kollar upp är unikt i ordlistan - d.v.s. att LAND1 inte har flera definitioner.

Permalänk
Medlem

@Hipshot: Vad för språk kör du? Jag använder engelska men med svensk lokalitet och får då semikolon (;) som avdelare i formler, du kanske har komma (,)?

Strunta att kopiera formeln, hämta bara formeln från excels egen lista under Textformler, eller skriv "=subst" och tryck sen TAB. Den skall finnas i Excel 2007.

Jag har excel 2013 på jobbet så kan inte testa ordentligt, men jag tog hem din excel ovan och lade in formeln, fungerade fint:

Jag använde dina värden i Sheet4.

Visa signatur

Intel i5 4670K + Hyper 212 EVO
Gigabyte GA-Z87-HD3
Fractal Design Define S
Asus GTX1070 Dual

Permalänk
Medlem
Skrivet av Bazzie:

@Hipshot: Vad för språk kör du? Jag använder engelska men med svensk lokalitet och får då semikolon (;) som avdelare i formler, du kanske har komma (,)?

Strunta att kopiera formeln, hämta bara formeln från excels egen lista under Textformler, eller skriv "=subst" och tryck sen TAB. Den skall finnas i Excel 2007.

Jag har excel 2013 på jobbet så kan inte testa ordentligt, men jag tog hem din excel ovan och lade in formeln, fungerade fint:
https://i.imgur.com/x8DKTCn.jpg

Jag använde dina värden i Sheet4.

Ja, tack, det löste sig. Meckigt att dom inte använder samma, men men, så är det.

Märkte dock att jag kan ju inte dra in en hel sida här eller fler celler. Utan bara en cell typ, A1 liksom, inte hela Sheet1. Men det kanske går att kombinera detta med någon av dom andra sjyssta funktioner som presenterats här.

Visa signatur

gotta go fast

Permalänk
Medlem

@Hipshot: Jodå, det går utmärkt att dra in mer, men du får antingen skriva en större formel som hämtar från flera celler, eller helt enkelt förlänga formeln lika många celler som källan.

Om du t ex har lagt formeln i A1 i andra fliken, så är det bara att korrigera cellhänvisningarna som hämtar värdena så att de inte är relativa (alltså använd $), och sen förlänga formeln. Cell A1:A? i flik 2 kommer då att hämta från cell A1:A? i flik 1, inga konstigheter.

Visa signatur

Intel i5 4670K + Hyper 212 EVO
Gigabyte GA-Z87-HD3
Fractal Design Define S
Asus GTX1070 Dual