У меня есть две таблицы, содержащие список транзакций на двух отдельных счетах (сберегательный счет и кредитная карта). Я хочу получить каждую строку из первых двух таблиц в третью, чтобы я мог построить сводную таблицу из консолидированных данных. Как я могу этого достичь?

То есть у меня есть 10 строк на листе A и 10 строк на листе B, я хочу получить все 20 строк на другом листе C. Для меня не важно, в каком порядке они находятся. Оба исходных листа имеют одинаковый формат.

Я попробовал несколько вещей:

  • Функция "Консолидация" в Excel, похоже, не позволяет этого достичь (хотя, возможно, я что-то упустил).
  • Функции сводных таблиц для ссылок на несколько диапазонов имеют возможность логики, подобной "соединению", но это не то, чего я хочу.
  • Функции сводной таблицы для нескольких диапазонов консолидации звучат хорошо, но я не могу заставить эту функцию делать то, что мне нужно.

Я использую Excel 2013.

Существует значительное количество очень похожих вопросов, но я не нашел вопроса, который хотел бы сделать именно это.

Мои данные выглядят именно так:

Лист А

Date        Value       Description
21/01/2016  -$43.11     Pay credit card
18/01/2016  -$180.00    Movie tickets

Лист Б

Date        Value       Description
17/01/2016  -$21.00     Video games
18/01/2016  -$18.00     Beer

Лист C (желаемый результат)

Date        Value       Description
21/01/2016  -$43.11     Pay credit card
18/01/2016  -$180.00    Movie tickets
17/01/2016  -$21.00     Video games
18/01/2016  -$18.00     Beer

1 ответ1

1

Пожалуйста, попробуйте приведенный ниже пример кода.

Sub test()
'change the sheet name and range name as yours

Set Rng = Sheets("Sheet1").Range("A1:A10")
Set Rng1 = Sheets("Sheet2").Range("A1:A10")

i = 1
j = 0

For Each cell In Rng
Sheets("Sheet3").Range("A" & i).Value = cell.Value
Sheets("Sheet3").Range("A" & i).Offset(0, 1).Value = cell.Offset(0, 1).Value
Sheets("Sheet3").Range("A" & i).Offset(0, 2).Value = cell.Offset(0, 2).Value
i = i + 1
Next cell
j = i

For Each cel In Rng1
Sheets("Sheet3").Range("A" & j).Value = cel.Value
Sheets("Sheet3").Range("A" & j).Offset(0, 1).Value = cel.Offset(0, 1).Value
Sheets("Sheet3").Range("A" & j).Offset(0, 2).Value = cel.Offset(0, 2).Value

j = j + 1
Next cel

End Sub

Надеюсь, что это поможет вам

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .