简单(我希望)关于Excel的问题


0

我正在为我的邻居做一个目录。我们从之前的目录中获得了大部分信息。输入的信息:A1名称,B1地址和C1电话号码; B1名称,B2地址,C2电话号码等。发布者希望以不同格式的信息A1名称,A2地址,A3电话号码,A4空白; A5名称,A6地址,A7电话号码,A8空白等...是否有一种简单(或哎 - 一种不那么容易)的方式让Excel更改信息的格式而无需我输入1300个家庭信息?

我还需要第二次将信息重新格式化为纵横交错。该格式为:A1街道名称,A2地址编号,B2居民姓名和C2电话号码。


虽然这个问题有编程相关的答案,但最明显的一个涉及复制粘贴,而不是与编程相关。

只是为了澄清你想要的东西。每条记录都是水平输入的,你想将它们转换成垂直记录,记录之间有空格吗?如果是这样,可以非常简单地使用宏来完成。
datatoo

应编辑其标题以更好地反映该问题。
kzh 2010年

Answers:


2

Excel具有这样的功能,例如从A1 A2 A3移动到A1 B1 C1。选择有问题的数据,复制它,然后转到您要通过的区域。然后不要简单地粘贴,而是过去“过去的特殊”(或粘贴内容或其他任何说法,在德语中说“inhalteeinfügen”;-))。即将推出的对话框有一个转置检查男孩,可以帮助您实现解决方案。


是+1,您可以将其合并到一个宏中并轻松完成整个工作表。如果这是你想要做的。
datatoo

转置不会得到她需要的单列排列 - 它只是将数据翻转90度。
玛莎2009年

2

将此宏添加到您的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

1

第一个 - 将数据表转换为单个列,每个记录分隔空行 - 我实际上是在Word中。将数据复制并粘贴到Word中,使用Tab作为列分隔符将表转换为文本,将每个现有的段落标记替换为两个段落标记(^ p with ^ p ^ p),用段落标记替换每个选项卡(^ t with ^ p),并将结果复制并粘贴回Excel。

对于第二项任务,如果地址的格式是通常的美国方式 - 123 Main Street - 那么您需要使用Excel的文本操作功能从街道名称中分割出地址编号。如果地址在B列(并且总是有一个空格将数字与街道分开),那么在D1中,放置

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

在E1中,放

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

并填写。然后,和以前一样,使用Word战略性地用段落标记替换选项卡以获得所需的排列。

如果它是愚蠢但它的作用,它不是愚蠢的。:)


不寻常,但似乎工作!
DaveParillo


0

这个问题更好地属于http://superuser.com,但是因为你在SO中问过,这是一个编程讨论网站......

我肯定会做以下事情:

  1. 将数据导出到.csv文件中
  2. 使用像Python这样强大的编程语言来操作.csv文件
  3. 将新的.csv文件导回到excel

学习这样的工具对每个人都有利,而不仅仅是程序员!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.