Just nu i M3-nätverket
Jump to content

Slå ihop fält i excel..


-HA-

Recommended Posts

 

Excelfråga:

 

Önskar från blad 1 slå ihop två fält, fält 1: Förnamn & fält2: Efternamn, till ett gemensamt fält på blad2. Detta så jag för förnamn och efternamn i ett gemensamt fält. Ngn som kan vägleda?

 

Link to comment
Share on other sites

Följande formel i blad 2 i cellen där du önskar resultatet:

 

=Blad1!A1& " " & Blad1!B1

 

A1 och B1 är cellerna som skall slås ihop.

& -tecknet konkatinerar

" " placerar ett mellan slag mellan fälten

 

BI

 

Link to comment
Share on other sites

Kopiera formeln nedåt antalet rader som slås ihop från blad1.

Till exempel enligt följande:

 

Gå till cellen med formeln.

Ta i cell hörnet nere till höger, muspekaren blir ett + -tecken.

Håll ned vänstra mustantgenten och dra nedåt.

 

BI

 

Link to comment
Share on other sites

Fungerar finemang... Dock så är det ett hundratal rader som kommer utökas oregelbundet. Ifall jag utökar med en rad eller två, antar jag att jag behöver utöka radantalet genom att dra i pluset osv... eller kan man på ngt sätt sätta så den känner av hur många rader som finns i kolumnen? Att det sker på automatik dvs..

 

Link to comment
Share on other sites

Jepp, du måste utöka raderna manullt.

 

Om du vill ha automatik måste du koda lite i VBA.

Till exempel följande kodsnutt sammanslår dina celler till blad 2 från celll a2 framåt (observera att denna måste också köras om radantalet ändras):

 

Sub SlaIhop()

Dim strNamn As String, i As Long, rngBlad2 As Range

i = 1

Set rngBlad2 = Worksheets("blad2").Range("a1")

Do While ActiveCell <> ""

strNamn = ActiveCell.Value & " " & ActiveCell.Offset(0, 1).Value

rngBlad2.Offset(i, 0) = strNamn

i = i + 1

ActiveCell.Offset(1, 0).Select

Loop

End Sub

 

Kopiera koden till en modul (Alt+F11).

Har du ingen modul måste du infoga en. Kopera därefter koden till modulen.

Gå tillbaka till Excel - blad1, placera markören i den första cellen där din lista börjar med namnen.

Makrot körs ända tills den stöter på en tom cell i ifrågavarnade kolumn.

 

Starta makrot från verktyg/makron/Makron.

Välj makrot SlaIhop

Klicka på Kör.

 

Makrot rensar inte upp innan körningen så om det finns gammal data där så skriver det över eller om raderna är färre den här gången lämnas de kvar.

 

BI

 

Link to comment
Share on other sites

eller ett annat quick&dirty makro:

Sub SlaIhop()

With Sheets("Blad2")
   .Range(.Cells(1, 1), .Cells(ActiveCell.End(xlDown).Row, 1)).Formula = "=blad1!A1" & " " & "blad1!b1"
End With
End Sub

 

 

Att tilldela hela området data med ett kommando går ungefär lika snabbt som att tilldela en cell ett värde...

 

Ed:

(snyggade till lite, ännu mindre kod)

 

Ed2:

en snyggare version (nja) där Activecell inte nyttjas. Både källa och destination är hårdkodade i koden:

[log]

Sub SlaIhop()
Dim target As Range
Dim rwIndex As Integer
rwIndex = Sheets("Blad1").Cells(1, 1).End(xlDown).Row
With Sheets("Blad2")
   .Range(.Cells(1, 1), .Cells(rwIndex, 1)).Formula = "=blad1!A1" & " " & "blad1!b1"
End With
End Sub

[/log]

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

 

[inlägget ändrat 2004-10-07 14:19:11 av Monshi]

 

 

 

Ed:fel i koden. Som moderator i detta forum kunde jag fixa det. Missat några ".

 

 

[inlägget ändrat 2004-10-07 15:24:12 av Monshi]

Link to comment
Share on other sites

Visst är det fiffigt, men framförallt mycket snabbare...

Trevligt att kunna lära dig något nytt :)

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...