12. februar 2021 - 10:53
Der er
4 kommentarer
Formel til at tilføje værdi men overskrive hvis værdien allerede er i cellen
Hej experter og kloge hoveder
Jeg har en masse data, hvor jeg skal have tilføjet nye værdier i cellerne. Men hvis den værdi, jeg tilføjer, allerede er i cellen, skal værdien ikke tilføjes igen.
Eksisterende værdi Værdier der skal tilføjes Ønsket resultat
A B C
1 #11#134 #28#199 #11#134#28#199
2 #55#134#28 #28#199 #55#134#28#199
Hvis der allerede står #28 i celle A2 og bliver tilføjet "igen" i B2 skal værdien #28 ikke fremgå 2 gange i C2 (#55#134#28#28#199)
Hvordan laver jeg en formel hvor jeg samler værdier fra A og B i kolonne C, men overskriver en værdi hvis den optræder to gange?
(Office 365, Excel, dansk, version 2101)
På forhånd tak :-)
Mvh
Nynne
12. februar 2021 - 17:00
#2
Nu ved jeg ikke hvor mange Hashtags med numre du kan have i de enkelte celler, men jeg har lavet en makro, der kan klare op til 100 - det kan let rettes, hvis tallet er større. Hvis der ikke er behov for at sætte tallene i rækkefølge kan sorteringsdelen udelades.
Sub String_To_Array1()
Dim LastRow, x, y As Long
Dim StringValue, SingleValue() As String
LastRow = Cells(65356, 1).End(xlUp).Row
For y = 2 To LastRow
StringValue = Cells(y, 1)
Range("A1040000:a1040100").ClearContents
On Error Resume Next
SingleValue = Split(StringValue, "#")
Dim k As Long
For k = 1040000 To 1040100
Cells(k, 1).Value = SingleValue(k - 1040000)
Next k
x = WorksheetFunction.Count(Range("A1040000:a1040100"))
k = 40 + x
StringValue = Cells(y, 2)
SingleValue = Split(StringValue, "#")
For k = 1040000 + x To 1041000 + x
Cells(k + 1, 1).Value = SingleValue(k - 1040000 - x)
Next k
Range("A1040000:a1040100").Select
Application.CutCopyMode = False
ActiveSheet.Range("$A$1040000:$A$1040100").RemoveDuplicates Columns:=1, Header:=xlNo
'Sortering
Range("A1040000:a1040100").Select
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add2 Key:=Range("A1040000:a1040100" _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A1040000:a1040100")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'Sortering slut
Cells(y, 3) = "#" & WorksheetFunction.TextJoin("#", True, Range("A1040000:a1040100"))
Cells(1, 1).Select
Next y
End Sub
16. februar 2021 - 10:02
#3
Tak for svar begge 2.
Xl-Enthusiast - din løsning kan jeg få til at fungere, når jeg bruger mit eget eksempel, men når jeg bruger formelen i mit data ark, så kan jeg ikke få det til at fungere ...
jens48 - wow.... jeg havde håbet at der var en mere simpel løsning. Jeg må alliere mig med en anden excel kyndig for helt at forstå dit forslag.
Tak for jeres tid :-)