Как объединить несколько строк в столбец

вот моя ситуация. Мне нужно взять список учетных записей клиентов 38k и отсортировать информацию по определенному шаблону, который я могу импортировать на наш новый сайт. Однако способ представления данных затрудняет это...

все адреса сохранены для 1 клиента отдельной строкой. Так что если у вас другой биллинг и адрес доставки будет в 2 ряда. Иногда 3 ряда. Мне нужно переместить эти строки в столбец (Адрес 1, Адрес 2 и т. д.) в разделе 1 строку. Так если CustomerA имеет 3 сохраненный адрес, мне нужно взять эти 3 строки и переместить их в 3 столбца 1 строки. Надеюсь, в этом есть смысл.

Я понятия не имею, будет ли формула, сводная таблица или VBA(я знаю столько же, сколько Джон Сноу в этой области) лучшим маршрутом. Я пробовал сводные таблицы,но это не работает. Я думал, что Index / Match может быть лучшим решением - мне просто нужно будет дублировать формулу для каждого столбца адреса, но это сделает работу. Однако я не знаю, как я могу разместить несколько строк.

Ниже приведен пример данных, которые я получил. Строка 20-это шаблон, в который мне нужно переместить строки. Столбец g_user id уникален для каждого клиента, но с несколькими строками адресов для одного клиента это значение будет дублироваться в электронной таблице. То же самое с customer_no.

http://www.filedropper.com/excelhelp

Or view this image

пожалуйста, дайте мне знать, если вам нужна дополнительная информация и постараюсь объяснить дальше.

EDIT-из таблицы, которую я опубликовал, мне нужно взять строки 2 и 3 и переместить информацию об адресе в новые столбцы в строке 1. Так с Адрес 2 колонки, город 1, государство 1, индекс 1, и составляет 1 это делает всего 12 столбцов данных из этих 2 строк.

11
задан Ron Rosenfeld
03.12.2022 10:17 Количество просмотров материала 3499
Распечатать страницу

4 ответа

  1. выберите пустую ячейку для размещения объединенного содержимого, введите formula =CONCATENATE(TRANSPOSE(B2:B19)) в строку формул, затем выберите транспонировать (B2:B19) часть формулы, а затем нажмите клавишу F9. Вы можете видеть, что формула была изменена, как показано на скриншотах ниже.

enter image description here

  1. удалить фигурные скобки из формулы в строке формул и нажмите клавишу Enter.
0
отвечен Ron Rosenfeld 2022-12-04 18:05

Мне нравится использовать VBA для такой задачи. Предполагая, что у вас есть уникальный идентификатор пользователя, как вы показываете в вашей таблице образца, вы могли бы сделать что-то вроде этого:

Sub Addresses_To_Columns()

    Dim lastRow As Long
    Dim addressCount As Integer: addressCount = 0

    lastRow = Range("A" & Rows.Count).End(xlUp).Row

    For i = lastRow To 3 Step -1
        If Cells(i, 1).Value = Cells(i - 1, 1).Value Then
            addressCount = addressCount + 1
            Range(Cells(i - 1, 10), Cells(i - 1, (addressCount * 6) + 10)) = Range(Cells(i, 4), Cells(i, (addressCount * 6) + 4)).Value
            Rows(i).Delete
        Else
            addressCount = 0
        End If
    Next i

End Sub

это повернет это: enter image description here

в этом: enter image description here

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

0
отвечен Porcupine911 2022-12-04 20:22

спасибо всем за помощь и предложения. но я решил это другим способом.

Я просто конкатенировал '-1','-2','-3' на" уникальные " идентификаторы клиентов. Затем я сделал VLOOKUP для уникальных значений-1,-2,-3 для каждого нового столбца, который мне нужно было добавить.

давайте надеяться все это время, и работа стоила того, чтобы репутация, полученная от этого испытания.

0
отвечен Bschacht 2022-12-04 22:39

очень простое решение, если я правильно поняла ваш запрос. Убедитесь, что для резервного копирования таблицы в первую очередь очевидно.

1) добавить необходимое количество новых столбцов в правильном месте. Допустим, новый столбец-N.

2) я предполагаю, что идентификатор клиента находится в столбце A, и что строки с новым адресом для одного и того же клиента имеют одинаковый номер в столбце A в этой строке. И, наконец, предположим, что первая строка для каждого клиента имеет наиболее полные сведения, кроме адреса т. е. имя телефона и т. д. (Если нет, то используйте сортировку, сортируя сначала по номеру клиента, а затем по имени).

3) в ячейке N2 введите следующую формулу:

=if(and(a3=a2,a1<>a2),h3,"")

где H-столбец с адресами. Если следующая строка имеет тот же клиент нет. (a3=a2), и эта строка является новым клиентом, то есть другой номер клиента в предыдущей строке (a1<>a2), то это займет адрес из следующей строки и поместить его в основной строке для этого клиента. Повторите для всех остальных частей этого адреса так что вся информация перемещается. Т. е. та же формула, но в O2 вместо N2 и ссылки i3 вместо h3 и так далее.

4) сделать аналогичную формулу для 3-го адреса. Т. е. предполагая, что столбец X является новым столбцом для 3-го адреса, в типе X2:

=if(and(a4=a2,a1<>a2),h4,"")

в основном то же самое, только вместо этого берется информация из двух строк.

5) Теперь все адреса должны быть в строке "main" для каждого клиента. Теперь вам нужно скопировать все эти адреса и вставить их в тех же местах, используя вставить специальные значения. Это позволит избавиться от формул и просто адреса, как данные, как если бы вы набрали его В.

6) теперь используйте сортировку по имени клиента, чтобы получить все строки, которые имеют пустое имя (потому что они просто дополнительные адреса) в одном месте. Затем удалите все эти строки, убедившись, что все необходимые данные теперь находятся в правильной строке. Вуаля

0
отвечен noodle 2022-12-05 00:56

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх