Простой (я надеюсь), вопрос о Excel о

Я делаю каталог для своего окружения. У нас была большая часть информации из предыдущего каталога. Информация вводилась: имя A1, адрес B1 и номер телефона C1; имя B1, адрес B2, номер телефона C2 и т.д. Издатель хочет информацию в другом формате имя A1, адрес A2, номер телефона A3, пробел A4; имя A5, адрес A6, номер телефона A7, A8 очищают и т.д... Существует ли легкое (или heck - не настолько легкий), способ иметь Excel изменяет формат информации без меня имеющий необходимость вручить информацию о домашних хозяйствах типа 1300?

Я должен буду также переформатировать информацию во второй раз в крестик. Формат, для которого: Название улицы A1, Число Адреса A2, Резидентное Имя B2 и Номер телефона C2.

0
задан 01.03.2011, 00:16

5 ответов

Excel имеет функцию, чтобы сделать это, например, перемещение от A1 A2 A3 до A1 B1 C1. Выберите рассматриваемые данные, скопируйте их и затем перейдите к области, где Вы хотите к прошлому их. Затем просто не вставляйте, но мимо "мимо особенный" (или вставляйте содержание или независимо от того, что оно говорит на немецком языке, который оно говорит "inhalte einfügen" ;-)). Предстоящее диалоговое окно имеет транспонировать мальчика проверки, который поможет Вам достигнуть своего решения.

2
ответ дан 24.11.2019, 03:11

Добавьте этот макрос к своему Excel и выполните 'MyTranspose', когда лист, содержащий Ваши адресные сведения, будет выбран.

Option Explicit

'Copy all the data from the active sheet into a  new worksheet
' and transpose all the columns into a single column
Sub MyTranspose()
    Dim r As Range
    Dim wsNew As Worksheet
    Dim wsCurrent As Worksheet

    Set wsCurrent = ActiveSheet
    Set wsNew = Worksheets.Add(Before:=Sheets(1))

    For Each r In wsCurrent.UsedRange.Rows
        r.Copy
        wsNew.Cells(LastRowOnWS(wsNew, 1) + 2, 1).PasteSpecial Transpose:=True
    Next r

    Application.CutCopyMode = False
    Set wsCurrent = Nothing
    Set wsNew = Nothing
End Sub

'Find the last row used in column 'col'
Function LastRowOnWS(ByVal ws As Worksheet, _
                     Optional ByVal col As Long = 1) As Long
    LastRowOnWS = ws.Cells(65536, col).End(xlUp).Row
End Function
2
ответ дан 24.11.2019, 03:11

Первый - преобразование таблицы данных к отдельному столбцу с пустыми строками, разделяющими каждую запись - я на самом деле сделал бы в Word. Скопируйте и вставьте данные в Word, преобразуйте таблицу в текстовую Вкладку использования как разделитель столбцов, замените каждую существующую метку абзаца двумя метками абзаца (^p с ^p^p), замените каждую вкладку меткой абзаца (^t с ^p), и скопируйте и вставьте результат назад в Excel.

Для второй задачи, если адреса отформатированы обычный американский путь - Мэйн-Стрит, 123, - затем, необходимо будет использовать текстовые функции управления Excel для разделения числа адреса от названия улицы. Если адреса находятся в столбце B (и всегда существует одиночный пробел, разделяющий число от улицы), то в D1, помещенном

=Trim(Left(B1,Find(" ",B2)))

и в E1, помещенном

=Trim(Right(B1,Len(B1)-Len(D1)))

и заливка вниз. Затем как прежде, используйте Word для стратегической замены вкладок метками абзаца для получения расположения, в котором Вы нуждаетесь.

Если это глупо, но это работает, это не глупо.:)

1
ответ дан 24.11.2019, 03:11

Управление инструментом конкатенации Excel должно помочь

http://www.techonthenet.com/excel/formulas/concat.php

0
ответ дан 24.11.2019, 03:11

Этот вопрос лучше принадлежит на http://superuser.com, но так как Вы спросили в Так, который является сайтом обсуждения программирования...

Я определенно сделал бы следующее:

  1. Экспортируйте данные в .csv файл
  2. Управляйте .csv файлом с мощным языком программирования как Python
  3. Импортируйте новый .csv файл назад для выделений

Изучение таких инструментов может быть выгодно для всех, не просто программистов!

0
ответ дан 24.11.2019, 03:11

Теги

Похожие вопросы