В листе Excel у меня есть ячейки с несколькими значениями, разделенными запятыми. Я хочу объединить соответствующие значения двух ячеек. Пример:
Cell_A1 (A,B,C,D) and Cell_B1 (E,F,G,H)
Then in Cell_C1 it should be (AE,BF,CG,DH).
В листе Excel у меня есть ячейки с несколькими значениями, разделенными запятыми. Я хочу объединить соответствующие значения двух ячеек. Пример:
Cell_A1 (A,B,C,D) and Cell_B1 (E,F,G,H)
Then in Cell_C1 it should be (AE,BF,CG,DH).
Это делает это
Option Explicit
Sub DoTheThing()
Dim row As Integer
row = 1 ' WHAT IS THE STARTING ROW
'Let's clear the answers
Range("D:F").Cells.Clear
Do While (Range("A" & row).Value <> "")
Dim lookUpValue As String
lookUpValue = Range("A" & row).Value
Dim vals() As String
vals = Split(Range("B" & row).Value, ",")
Dim result As String
result = ""
Dim i As Integer
For i = 0 To UBound(vals)
If CSng(lookUpValue) >= CSng(vals(i)) Then
result = result & "Yes, "
Else
result = result & "No, "
End If
Next i
result = Trim(result)
result = Left(result, Len(result) - 1)
Range("D" & row).Value = result
result = "" ' reset it
Dim valD() As String
valD = Split(Range("C" & row).Value, ",")
For i = 0 To UBound(valD)
If CSng(lookUpValue) <= CSng(valD(i)) Then
result = result & "Yes, "
Else
result = result & "No, "
End If
Next i
result = Trim(result)
result = Left(result, Len(result) - 1)
Range("E" & row).Value = result
'finally
Dim splitD() As String
splitD = Split(Range("D" & row).Value, ",")
Dim splitE() As String
splitE = Split(Range("E" & row).Value, ",")
result = ""
Dim length As Integer
length = UBound(splitD)
For i = 0 To length 'both should have the same values according to @Raw
If (i = length) Then
Range("F" & row).Value = Range("F" & row).Value & splitD(i) & splitE(i)
Else
Range("F" & row).Value = Range("F" & row).Value & splitD(i) & splitE(i) & ","
End If
Next i
row = row + 1
Loop
End Sub
До
После
Хороший вопрос Пожалуйста, найдите изображение ниже для вашего ответа.
Примечание-1: Добавьте запятую в качестве последнего символа в ваши ячейки, которые вы хотите разделить - в противном случае вы получите ошибку #value
в последнем ряду.
Теперь вы должны сделать то же самое с другой клеткой и получить аналогичный результат.
В качестве последней части используйте функцию concatenate
для объединения пар из двух столбцов и получения конечного результата.
Конкатенация будет выглядеть примерно так (предположим, что ячейка A2 содержит запятую)
=concatenate(C3,$A$2,E3)
Также предполагается, что E3 содержит результат, который должен быть объединен с C3.
Если у вас есть какие-либо вопросы, не стесняйтесь комментировать.