#excel
#excel
Вопрос:
Я ищу формулу Excel для приведенного ниже требования:
У меня есть два листа, в которых лист1 содержит следующие данные:
Столбец 1 содержит: R1, R1, R1, R2, R2, R3, R3, R4 Столбец 2 содержит: T1, T2, T3, T4, T5, T6, T7, T8
На втором листе содержатся следующие данные:
Столбец 1 содержит: R1, R2, R3, R4 Теперь в столбце 2 я ожидаю вывода в виде T1, T2, T3 для R1 T4, T5 для R2 T6, T7 для R3 T8 для R4
Примечание: мне нужно было бы поместить T1, T2, T3 в одну ячейку. Аналогично для других совпадающих значений.
В настоящее время я использую приведенную ниже формулу:
=INDEX(‘Sheet’!1A3:A100, MATCH(A3, ‘Sheet2’!A3:A100, 0)) Для приведенной выше формы я получаю вывод в виде:
Столбец 1: R1, R2 Столбец 2: T1, T2
Спасибо за поддержку!
Ответ №1:
Код VBA будет делать то, что вам требуется, вот пример, который даст нужные вам результаты. На что следует обратить внимание:
Столбцы не имеют заголовков
Листы называются Лист1 и Лист2
Данные в столбце A листа 1 должны быть в порядке возрастания или убывания, поскольку этот макрос не будет работать, если обрабатываемые значения не сгруппированы вместе.
Изменить по мере необходимости:
Sub ExampleMacro()
Dim LastRow As Integer
Dim CurrentRow As Integer
Dim i As Integer
Dim RefResult
With Sheets("Sheet1")
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
CurrentRow = 1
For i = 1 To LastRow
If Sheets("Sheet2").Range("A1").Value = Sheets("Sheet1").Range("A" amp; CurrentRow).Value Then
Sheets("Sheet2").Range("B1").Value = RefResult
Else
If Sheets("Sheet2").Range("A1").Value <> Sheets("Sheet1").Range("A" amp; CurrentRow).Value Then
RefResult = Sheets("Sheet1").Range("B" amp; CurrentRow).Value
Sheets("Sheet2").Rows("1:1").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Sheets("Sheet2").Range("A1").Value = Sheets("Sheet1").Range("A" amp; CurrentRow).Value
Sheets("Sheet2").Range("B1").Value = RefResult
Else
End If
End If
CurrentRow = CurrentRow 1
RefResult = RefResult amp; ", " amp; Sheets("Sheet1").Range("B" amp; CurrentRow).Value
Next I
End Sub
Комментарии:
1. Большое вам спасибо за решение. Но поскольку я не предполагаю использовать макросы, есть ли какой-либо другой способ, который может решить мою проблему? Спасибо за помощь 🙂