Сложить несколько столбцов с разными заголовками в два столбца? - PullRequest
0 голосов
/ 10 июля 2020

У меня есть несколько листов csv с данными в следующем формате:

AB C D 1 xyz 2 jkl 3 fgh

et c.

Мне нужно, чтобы он выглядел так:

AB 1 x 1 y 1 z 2 j 2 k 2 l 3 f 3 g 3 h et c.

У меня это на многих csv, и каждый лист имеет разные заголовки и разное количество столбцов. Любые советы были бы НАСТОЛЬКО полезными, так как я полностью застрял! Спасибо!

1 Ответ

0 голосов
/ 10 июля 2020

Если вы имеете дело с Excel и хотите манипулировать этими данными, то, вероятно, нет лучшего варианта, чем использовать VBA. Он встроенный и очень прочный. При необходимости вы можете вызвать Windows библиотечных функций, а также множество других. Экспорт любых c программных манипуляций был бы тривиальным.

Вы можете записать код в файл * .bas и импортировать его в каждую книгу. Или, если все это в одной книге, вы можете просто создать модуль, на который будут ссылаться все листы. Вы даже можете программно пройтись по всем листам. поля (столбцы) в один, вы можете просто вставить столбец («B», я полагаю) и ввести = CONCAT (C1: Z1) (просто пример), чтобы сложить все значения вместе. После этого вы можете скопировать этот столбец и вставить значения в новый столбец, а затем удалить все, что вам не нужно.

Вы даже можете сделать все вышеперечисленное в VBA. Простой VBA для иллюстрации идеи. Обратите внимание, что в приведенной ниже строке формулы формула будет помещена во ВСЕ ячейки столбца B. Вероятно, это не то, что вам нужно, но я оставлю это вам, чтобы Google нашел конец ваших данных.

Public Sub ConcatColumns()
    Dim wb As Workbook
    Set wb = ThisWorkbook
    
    Dim ws As Worksheet
    Set ws = wb.Sheets("Sheet1")
    For Each ws In wb.Worksheets
        ws.Columns(2).Insert
        ws.Columns(2).Formula = "=CONCAT(C1:Z1)"
    Next ws
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...