Excel 对大文件进行排序

Excel 对大文件进行排序,excel,Excel,我有一个excel文档,它看起来就像一个报告。我只需要一些数据。提出一个公式让我得到这些信息,最好的方法是什么。该文件有88个条目 您可以单击图像以获得全尺寸版本: 我想做一个搜索,返回黄色的东西。你知道怎么做吗?或者这是手动搜索类型的交易?我这样问,不是因为我想节省3个小时,而是因为我想在将来节省时间。谢谢 只要模板的格式相同,下面的代码就可以工作。我试着让它尽可能简单,以便您可以看到各个步骤的作用。您可以调整粘贴数据的列,以适应需要。您需要首先创建一个名为“Extract”的工作表,并更改

我有一个excel文档,它看起来就像一个报告。我只需要一些数据。提出一个公式让我得到这些信息,最好的方法是什么。该文件有88个条目

您可以单击图像以获得全尺寸版本:


我想做一个搜索,返回黄色的东西。你知道怎么做吗?或者这是手动搜索类型的交易?我这样问,不是因为我想节省3个小时,而是因为我想在将来节省时间。谢谢

只要模板的格式相同,下面的代码就可以工作。我试着让它尽可能简单,以便您可以看到各个步骤的作用。您可以调整粘贴数据的列,以适应需要。您需要首先创建一个名为“Extract”的工作表,并更改代码中出现的任何“YourSheetNameHere”

Sub Extract()
Dim Page, Company, Num, Name, ProjMan, TotalVal, Fee As String
Dim r, c As Integer

    c = 1
    Sheets("YourSheetNameHere").Select


    For r = 1 To 4680
        If Left(Range("J" & r).Value, 4) = "Page" Then

        'Stores the values
            Page = Range("J" & r)
            ProjMan = Range("J" & r + 2)
            TotalVal = Range("J" & r + 4)
            Company = Range("J" & r + 4)
            Num = Range("J" & r + 6)
            Name = Range("J" & r + 7)
            Fee = Range("H" & r + 31)

        'Pastes the values in a new sheet called Extract (which you will need to create first)
            Sheets("Extract").Select
            Range("A" & c) = Page
            Range("B" & c) = ProjMan
            Range("C" & c) = TotalVal
            Range("D" & c) = Company
            Range("E" & c) = Num
            Range("F" & c) = Name
            Range("G" & c) = Fee

            c = c + 1

            Sheets("YourSheetNameHere").Select 'You will need to adjust to suit
        End If
    Next r


End Sub

我们需要有关如何设置工作表的更多信息。例如,您总是希望提取单元格
B7、B9、B10、J4、J6、H34
,还是希望在工作表中的任何位置查找特定信息并提取?这些条目是在单独的工作表上还是全部在同一工作表上?…并基于工程师Toast的意见-一旦找到数据,您希望如何处理?写下来?是否将其复制到某个位置?@EngineerToast所有条目都在同一工作表上。我希望它能提取单元格,但我需要它来确定这些单元格是什么,因为每个报表中的确切单元格数会更改为+1或-1。感谢您的帮助!我没有VBA的经验,但这将是一次学习经验。此工作表大约每50行左右重复一次,但数量不同。我是否需要告诉excel有一个介于37和50之间的新数据集,或者我是否有办法告诉它,每当它在B列中看到报告日期时,我们都会看到一个新的报告页面?我希望每个报表的数据都写在一行条目中。此外,单元格不是黄色打印的,我将它们设置为黄色以便Vizulization要使用VBA,您需要将文件另存为.xlsm。然后显示“开发人员”选项卡(通过转到“文件”>“选项”>“自定义”功能区并选中“开发人员”复选框),这将打开一个新选项卡,您可以在其中单击Visual Basic图标,创建模块,然后将代码粘贴到其中。网上有很多关于如何做到这一点的教程。而且,我不确定你所说的“这张纸每50行重复一次”是什么意思。你的意思是,有时有多个模板,就像同一张纸上图片中的模板一样?如果是这样的话,任何给定的工作表中包含数据的最大行数和最大列数是多少?最后,如果不是匹配的单元格颜色,如何知道要提取哪些数据?是否总是公司、编号、姓名、项目经理、EST总价值以及从“已发生”列计算的费用?一旦你有了这些数据,你打算用它做什么?