精华内容
下载资源
问答
  • 大家都知道Excel表格筛选是个非常实用的功能,当然,里面的技巧也非常多,现在我们就来学习根据给出的“关键字”,进行筛选工作,保留含有关键字的内容,剔除不包含关键字的内容。 1 启动Excel2013,选中筛选的...

    很多时候我们需要统计excel表格中一些关键词相同的数据。通过筛选这些数据我们很快就可以统计方便办公。大家都知道Excel表格筛选是个非常实用的功能,当然,里面的技巧也非常多,现在我们就来学习根据给出的“关键字”,进行筛选工作,保留含有关键字的内容,剔除不包含关键字的内容。

    1 启动Excel2013,选中筛选的表格区域单击菜单栏--“数据”--“高级”

    2 弹出高级筛选对话框,我们在方式中,选择将筛选结果复制到其他位置,这样就不会覆盖源数据,便于对比观察。

    3 在弹出高级筛选对话框设定条件区域,也就是关键字区域。

    4 将筛选结果显示到其他单元格区域,确定。

    展开全文
  • VBA 关键字匹配查找

    千次阅读 2019-04-24 10:08:32
    '完成对表格单元格中关键字匹配查找 'Debug.Print "~~~~~~~~~~~~~~~~~~~~~~~~" '变量声明 Dim column_num, row_num, File_sum, Sum_Workbook, search_file, _ temp_Workbook, sheet_num, key_word...
    Option Explicit
    Sub search()
    '完成对表格单元格中关键字的匹配查找
    'Debug.Print "~~~~~~~~~~~~~~~~~~~~~~~~"
    '变量声明
    Dim column_num, row_num, File_sum, Sum_Workbook, search_file, _
            temp_Workbook, sheet_num, key_word, record_num, File_Dir, i
       ' column_num, 列数标识; row_num,行数标识
       ' File_sum,汇总文件
       ' Sum_Workbook, 汇总工作薄
       ' search_file, 待处理的文件
       ' temp_Workbook, 处理中的工作薄
       ' sheet_num, 处理中工作薄的表格数
       'key_word, 查询的关键字
       'record_num,匹配记录数目
       ' File_Dir, 路径
       'i, 循环控制
       '-----------------------------------------------------------------
       
    '打开文件
        '打开汇总表格     '^^^^^^
     File_sum = "E:\code\关键字.xls"  '后期施工:如何自行创建excel文件,如creatobject()
     Set Sum_Workbook = GetObject(File_sum)
    
        '计算待处理的文件数
    
    '搜寻待工作薄所在路径下的给定xls文件
    File_Dir = ThisWorkbook.Path
    'search_file = ""
    'search_file = Dir(File_Dir & "\*第*天*.xls*")   '^^^^^^
    '            计算文件个数
    '            i = 0
    '            Do While Len(search_file) > 0
    '                Debug.Print search_file
    '                search_file = Dir()
    '                i = i + 1
    '            Loop
    '            Debug.Print "共有" & i; "个登记表!"
    '            i = i + Start_row '确定记录添加行数
    ' ----------------------------------------------------------------
    '单元格匹配查找
    key_word = "*区*"      '^^^^^^
    record_num = 1
    search_file = ""
    search_file = Dir(File_Dir & "\*第*天*.xls*")      '^^^^^^
    
    Sum_Workbook.Worksheets(1).UsedRange.Clear
    
    Do While search_file <> ""   '若不为空,遍历开始
            If search_file Like "*第*天*" Then       '^^^^^^
                '打开工作薄、表格-------
                Set temp_Workbook = GetObject(File_Dir & "\" & search_file)
                'Debug.Print "------" & search_file & "匹配查找开始:"
                '**************************************
                    sheet_num = temp_Workbook.Worksheets.Count
                    For i = 1 To sheet_num   '工作表遍历
                        '剔除空白表格
    '                    Debug.Print temp_Workbook.Worksheets(i).UsedRange.Rows.Count
    '                    Debug.Print temp_Workbook.Worksheets(i).UsedRange.Columns.Count
                        
                        If (temp_Workbook.Worksheets(i).UsedRange.Rows.Count > 1) _
                           And (temp_Workbook.Worksheets(i).UsedRange.Columns.Count _
                                > 1) Then
                            '行数循环
                            For row_num = 1 _
                                To temp_Workbook.Worksheets(i).UsedRange.Rows.Count
                                '列数循环
                                For column_num = 1 _
                                    To temp_Workbook.Worksheets(i).UsedRange.Columns.Count
                                    '-------------*******------------------
                                    If temp_Workbook.Worksheets(i).UsedRange.Cells(row_num, _
                                        column_num) Like key_word Then
                                        Sum_Workbook.Worksheets(1).Cells(record_num, 1) = _
                                            temp_Workbook.Worksheets(i).UsedRange.Cells(row_num, _
                                            column_num)
                                        Debug.Print "符合条件的记录已经找到: " & _
                                            temp_Workbook.Worksheets(i).UsedRange.Cells(row_num, _
                                            column_num)
                                        record_num = record_num + 1
                                    End If
                                    '-------------*******------------------
                                Next '----列数循环结束
                            Next '----行数循环结束
                        End If '----排除空白表格结束
                    Next '----工作表循环结束
                    
            End If   '------工作薄匹配结束
            search_file = Dir() '-------匹配下一个工作薄
            
        Loop   '------工作薄循环结束
        record_num = record_num - 1
        Debug.Print "匹配完成,共有 " & record_num; "条记录符合关键字查找条件!"
    End Sub
    
    展开全文
  • 如何根据“关键字”选出Excel 2021中匹配的数据.docx
  • 提取PDF关键字并写入Excel

    万次阅读 2018-04-29 19:20:17
    提取PDF关键字,写入Excel 摘要:这篇文章介绍如何从PDF文件中提取关键字,然后写入到Excel中。首先程序把PDF解析为txt文件,然后程序从指定的Excel文件中加载关键字,再在txt中去寻找,最后将找到的关键字个数...

    作者博客地址:https://www.yooongchun.cn/


    摘要:这篇文章介绍如何从PDF文件中提取关键字,然后写入到Excel中。首先程序把PDF解析为txt文件,然后程序从指定的Excel文件中加载关键字,再在txt中去寻找,最后将找到的关键字个数写入Excel


    • 功能演示
      • 需求描述:在我的keywordsExtractor 目录下有一些文件夹,文件夹内是pdf文件,我需要把这些pdf文件跟目标股票进行对比,如果该PDF属于目标股票,那么加载,否则不加载。然后把PDF中的一些特定关键词出现次数提取到Excel中,如下示例:

    这里写图片描述
    关键词从D列开始,任意添加。其中A1,B1,C1内容可以更改。

    然后运行程序,得到的结果示例如下:
    

    这里写图片描述

    这里的年份是PDF所在文件夹的名称,你可以自己修改,股票代码是PDF文件名称的前6个字符。
    
    • 实现过程

      • STEP 0: 加载需要的包

        # -*- coding: UTF-8 -*-
        
        """
        1.加载一个指定路径文件夹内的所有pdf文内容
        2.解析所有pdf内容并提取指定内容
        3.把解析出来的指定内容写入Excel表格
        """
        
        #################
        import xlwt  # 写入文件
        import xlrd  # 打开excel文件
        from xlutils.copy import copy
        
        import os
        import re
        import sys
        import importlib
        
        importlib.reload(sys)
        from pdfminer.pdfparser import PDFParser, PDFDocument
        from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
        from pdfminer.converter import PDFPageAggregator
        from pdfminer.layout import LTTextBoxHorizontal, LAParams
        from pdfminer.pdfinterp import PDFTextExtractionNotAllowed
        
        import logging
        
        logging.basicConfig(level=logging.ERROR)
        
        __author__ = "yooongchun"
        __email__ = "yooongchun@foxmail.com"
        __version__ = "20180429v1"
        

      • STEP 1:加载一个文件夹下的所有pdf文件,获得路径

        # 读取一个文件夹目录下所有PDF文档路径,返回所有PDF文件的绝对路径
        def loadPDF(file_path, stock_num_list=None):
            pdf_files = {}  # 保存文件地址和名称:name:path
            files = os.listdir(file_path)
            for file in files:
                if os.path.splitext(file)[1] == '.pdf':  # 判断是否为PDF文件
                    if stock_num_list is None or (stock_num_list is not None and file[0:6] in stock_num_list):
                        abso_Path = os.path.join(file_path, file)
                        stock_num = file[0:6]
                        pdf_files[file] = (stock_num, abso_Path)
            return pdf_files
        
        
      • STEP 2:解析PDF转为TXT

        # 解析PDF文件,转为txt格式
        def parsePDF(PDF_path, TXT_path):
            with open(PDF_path, 'rb')as fp:  # 以二进制读模式打开
                praser = PDFParser(fp)  # 用文件对象来创建一个pdf文档分析器
                doc = PDFDocument()  # 创建一个PDF文档
                praser.set_document(doc)  # 连接分析器与文档对象
                doc.set_parser(praser)
        
                # 提供初始化密码
                # 如果没有密码 就创建一个空的字符串
                doc.initialize()
        
                # 检测文档是否提供txt转换,不提供就忽略
                if not doc.is_extractable:
                    raise PDFTextExtractionNotAllowed
                else:
                    rsrcmgr = PDFResourceManager()  # 创建PDf 资源管理器 来管理共享资源
                    laparams = LAParams()  # 创建一个PDF设备对象
                    device = PDFPageAggregator(rsrcmgr, laparams=laparams)
                    interpreter = PDFPageInterpreter(rsrcmgr, device)  # 创建一个PDF解释器对象
        
                    # 循环遍历列表,每次处理一个page的内容
                    for page in doc.get_pages():  # doc.get_pages() 获取page列表
                        interpreter.process_page(page)
                        layout = device.get_result()  # 接受该页面的LTPage对象
                        # 这里layout是一个LTPage对象 里面存放着 这个page解析出的各种对象 一般包括LTTextBox, LTFigure, LTImage, LTTextBoxHorizontal 等等 想要获取文本就获得对象的text属性,
                        for x in layout:
                            if isinstance(x, LTTextBoxHorizontal):
                                with open(TXT_path, 'a', encoding='UTF-8', errors='ignore') as f:
                                    results = x.get_text()
                                    # print(results)
                                    f.write(results + '\n')
        
      • STEP 3:加载目标股票

        # 加载目标股票代码
        def getStackNum(excel_path):
            book = xlrd.open_workbook(excel_path)  # 打开一个wordbook
            sheet_ori = book.sheet_by_name('Sheet1')
            return sheet_ori.col_values(0, 0, sheet_ori.nrows)
        
        
      • STEP 4:从Excel中加载关键词

        # 从Excel中加载关键词
        def loadKeyWords(excel_path):
            book = xlrd.open_workbook(excel_path)  # 打开一个wordbook
            sheet_ori = book.sheet_by_name('Sheet1')
            return sheet_ori.row_values(0, 3, sheet_ori.ncols)
        
      • STEP 5:进行规则匹配,并保存到Excel中

        # 加载txt列表寻找关键词并保存到excel
        def matchKeyWords(txt_folder, excel_path, keyWords, year):
            files = os.listdir(txt_folder)
            words_num = []  # 保存所有文件词频
            for file in files:
                word_freq = {}  # 单词出现频率次:word:num
                if os.path.splitext(file)[-1] == ".txt":
                    txt_path = os.path.join(txt_folder, file)
                    with open(txt_path, "r", encoding='utf-8', errors='ignore')as fp:
                        text = fp.readlines()
                        for word in keyWords:
                            num = 0
                            for line in text:
                                num += line.count(word)
                            word_freq[word] = num
                        stock_num = file[0:6]
                        pdf_name = file.split(".")[0] + "." + file.split(".")[1]
                        words_num.append((word_freq, stock_num, pdf_name))
            # 保存到Excel
            book = xlrd.open_workbook(excel_path)  # 打开一个wordbook
            copy_book = copy(book)
            sheet_copy = copy_book.get_sheet("Sheet1")
            for index, one in enumerate(words_num):
                word_f = one[0]
                stock_num = one[1]
                pdf_name = one[2]
                for ind, word in enumerate(keyWords):
                    sheet_copy.write(index + 1, ind + 3, str(word_f[word]))
                sheet_copy.write(index + 1, 0, year)
                sheet_copy.write(index + 1, 1, stock_num)
                sheet_copy.write(index + 1, 2, pdf_name)
            copy_book.save(excel_path +"."+year + ".xls")
        
        
      • STEP 6 :主程序入口

        if __name__ == '__main__':
            stockNum_path = r"./stockNum.xlsx"
            pdf_folder = r"./"
            keyWords_path = r"./target.xlsx"
        
            if len(sys.argv) < 3:
                print("less parameters to run...")
            else:
                flag = str(sys.argv)[1]
                real_time_show = str(sys.argv[2])
        
                if flag == "True":
                    MATCH_STOCK_NUM_FALG = True  # 是否匹配股票代码
                else:
                    MATCH_STOCK_NUM_FALG = False
                if real_time_show == "True":
                    REAL_TIME_SHOW = True
                else:
                    REAL_TIME_SHOW = False
        
                print("Filter for stock number function is: %s" % MATCH_STOCK_NUM_FALG)
                print("Real time show function: %s" % REAL_TIME_SHOW)
        
                # 程序开始
                print("Now the program is running...")
                print("load keyWords from Excel:%s" % keyWords_path)
                key_words = loadKeyWords(keyWords_path)
                if MATCH_STOCK_NUM_FALG:
                    print("load target stock number from excel:%s" % stockNum_path)
                    stock_num_list = getStackNum(stockNum_path)
        
                folders = os.listdir(pdf_folder)
                for folder in folders:
                    if not folder.isdigit():
                        continue
                    if os.path.isdir(os.path.join(pdf_folder, folder)) and 2010 < int(folder) < 2018:
                        pdf_path = os.path.join(pdf_folder, folder)
                        pdf_num = len(os.listdir(pdf_path))
                        print("walk through folder:%s ,total files: %d." % (folder, pdf_num))
                        if not MATCH_STOCK_NUM_FALG:
                            stock_num_list = None
                        pdf_files = loadPDF(pdf_path, stock_num_list)  # 返回所有PDF文件路径
                        print("valid files:%d" % len(pdf_files))
                        pdf_to_txt_path = ""
                        count = 0
                        for key, value in pdf_files.items():
                            count += 1
                            print("parser PDF file:%s  %d/%d" % (key, count, len(pdf_files)))
                            one_pdf_path = value[1]  # 绝对路径
                            stock_num = value[0]  # 股票代码
                            pdf_to_txt_path = one_pdf_path + ".txt"  # txt路径
                            parsePDF(one_pdf_path, pdf_to_txt_path)
                            if REAL_TIME_SHOW:
                                print("match keywords...")
                                matchKeyWords(pdf_path, keyWords_path, key_words, folder)
                        if not REAL_TIME_SHOW:
                            print("match keywords...")
                            matchKeyWords(pdf_path, keyWords_path, key_words, folder)
                        print("remove temp txt file")
                        for file in pdf_path:
                            if file.split(".")[-1] == "txt":
                                os.remove(os.path.join(pdf_folder, file))
                print("done!")
        
        
      • STEP 7:调用程序:把上面的代码保存为pdf_extractor.py,在命令行使用如下命令

        python3 pdf_extractor.py True True
        

        注:上面的第一个True代表程序会把目标股票与PDF进行对比,如果你要加载所有PDF文件,那就把它改为False;第二个True 代表每解析一个PDF文件就会把匹配结果输出。

    • STEP 8:生成exe 程序:使用pyinstaller 工具打包为windows平台下的可执行程序

      pyinstaller -F extractor.py
      

      注:需要提前安装pyinstaller ,有关其使用,请转到这里:https://blog.csdn.net/zyc121561/article/details/79563662

    • STEP9: 完整代码下载地址: ​
      https://gitee.com/yczha/pdf_extractor/tree/master

      完!

    展开全文
  • excel 关键字多表数据匹配

    千次阅读 2020-03-02 15:20:39
    使用VLOOKUP函数 VLOOKUP(lookup_value,table_array,col_index_num,range_lookup) 参数 简单说明 输入数据类型 lookup_value 要查找的值 数值、引用或文本字符串 table_array ...精确匹配/近似匹配 ...

    使用VLOOKUP函数

    VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
    参数
    简单说明
    输入数据类型
    lookup_value
    要查找的值
    数值、引用或文本字符串
    table_array
    要查找的区域
    数据表区域
    col_index_num
    返回数据在查找区域的第几列数
    正整数
    range_lookup
    精确匹配/近似匹配
    FALSE(或0)/TRUE(或1或不填)

    VLOOKUP函数使用注意事项
    一.VLOOKUP的语法
    1.括号里有四个参数,是必需的。最后一个参数range_lookup是个逻辑值,我们常常输入一个0字,或者False;其实也可以输入一个1字,或者true。两者有什么区别呢?前者表示的是完整寻找,找不到就传回错误值#N/A;后者先是找一模一样的,找不到再去找很接近的值,还找不到也只好传回错误值#N/A。
    2.Lookup_value是一个很重要的参数,它可以是数值、文字字符串、或参照地址。我们常常用的是参照地址。用这个参数时,有三点要特别提醒:
    A)参照地址的单元格格式类别与去搜寻的单元格格式的类别要一致,否则的话有时明明看到有资料,就是抓不过来。特别是参照地址的值是数字时,最为明显,若搜寻的单元格格式类别为文本格式,虽然看起来都是123,但是就是抓不出东西来的。
    而且格式类别在未输入数据时就要先确定好,如果数据都输入进去了,发现格式不符,已为时已晚,若还想去抓,则需重新输入。
    B)在使用参照地址时,有时需要将lookup_value的值固定在一个格子内,而又要使用下拉方式(或复制)将函数添加到新的单元格中去,这里就要用到“ ” 这 个 符 号 了 , 这 是 一 个 起 固 定 作 用 的 符 号 。 比 如 说 我 始 终 想 以 D 5 格 式 来 抓 数 据 , 则 可 以 把 D 5 弄 成 这 样 : ”这个符号了,这是一个起固定作用的符号。比如说我始终想以D5格式来抓数据,则可以把D5弄成这样: D5D5D$5,则不论你如何拉、复制,函数始终都会以D5的值来抓数据。
    C) 用“&" 连接若干个单元格的内容作为查找的参数。在查找的数据有类似的情况下可以做到事半功倍。

    可以通过字段

    =发货明细表!C2=订单明细表!B4

    显示TRUE或FALSE来判断。

    如显示false,考虑使用 CLEAN()函数来去除有可能的TAB ,
    使用TRIM() 函数来处理可能的

    展开全文
  • '双匹配查询,和VLookUp函数类似,不同的是可以匹配2个字段KeyCell匹配数据的第一列,MatchCell 匹配数据的第MatchIndex 列,如果2个都相等则返回数据区域第ReturnIndex列的值 'KeyCell:第一列匹配的单元格 '...
  • VBA实现多个Sheet页匹配关键字并汇总

    千次阅读 2018-06-06 10:36:28
     用户需求:媳妇统计excel时需要在多个sheet页中搜索关键字,找到匹配的行后再粘贴到新的sheet页中,然后问我有什么快捷的方法,一键式的。 我想了想写个宏,碎碎个事。好了,开始! 实现思路:打开excel,新建一...
  • 有两个文件,txt和excel 其中txt存放的是关键词,excel存放的是内容 txt存放关键词的形式是 ...excel存放的是一行一行的内容 ...能否将txt和excel进行匹配,将匹配到的关键词放在excel后新的一列
  • 1. 我采用读取一个范围内的数据, 然后通过QVariant转换到QList<QList<QVariant>>类型, 然后再进行匹配进行查找, 这种方式在读取10万行时速度12秒左右,速度太慢。...希望寻求一种能快读查找Excel关键字的方法
  • 有两个文件,txt和excel 其中txt存放的是关键词,excel存放的是内容 txt存放关键词的形式是 ...excel存放的是一行一行的内容 ...能否将txt和excel进行匹配,提取出含有关键词的行,并存放到新的文件里?
  • Python按文件名匹配关键字拷贝文件

    千次阅读 2019-11-26 17:14:15
    Python按文件名匹配关键字拷贝文件 按照网上别人的方法写了一个满足自己需求的功能 import os import shutil src_dir_path = 'E:\要拷贝的文件夹' # 源文件夹 to_dir_path = 'E:\需要存放的文件夹' # 存放...
  • excel sheet2通过关键字在sheet1找到对应的公式在sheet2中输出计算结果
  • 然后将txt文件和excel进行匹配看txt文件里的关键词出现的次数 txt文件的关键词是以 ``` 成都 北京 天津 上海 香港 ``` 这样的形式存放的 我想 ``` def frequency(list_word): c = Counter() for x...
  • Excel VBA高级编程-关键字查找数据库

    千次阅读 2019-07-01 10:26:04
    这个表格的主要功能是:根据输入的关键字找到数据库中,正确的公司名,生成一个下拉菜单,再根据正确的公司名,找到对应的No生成下拉菜单 欢迎技术交流:wechat:qq-273404452 VBS 代码: Private Sub Worksheet_...
  • def saveAsNewExcelFile(input_file_path_plan): ... getInfo = pd.read_excel(input_file_path_plan, sheet_name="frequency_plan", dtype=str, keep_default_na=False) for i in getInfo.index.
  • 使用scrapy爬虫提交关键字到必应搜索,将首页相关url写入excel
  • Excel判断单元格是否包含关键字

    万次阅读 2014-12-08 15:45:33
    =IF(COUNTIF(B2,"*关键字*")=1,"包含","")
  • 现在有个任务就是要搜索关键字“交易”,但具体在哪个子文件,哪个工作簿?不记得了。 test文件夹下有很多子文件夹 每个文件夹下都有excel文件 一般excel的搜索功能(Ctrl+F)其范围只能选择工作表,工作簿...
  • 运用LIKE进行模糊匹配 模糊匹配中不确定长度的字符表示 源数据表 姓名 部门 入职日期 刘星 生产部 1992/10/4 罗大吴 生产部 2009/7/21 吴宏艳 行政管理部 1993/4/7 陈星 行政...
  • Excel表格匹配合并

    2021-06-02 15:45:52
    在日常的工作中,免不了存在多个表格根据相同数据匹配合并的情况,很多人会因为复杂的公式导致匹配失败或错误。接下来,我将用一个简单的方式完成这一个任务。 1、打开网址www.excelutil.com 2、 ...
  • 记录一下最近遇到的一个小问题 直接上代码! string[] path = { @"文件路径", @"文件路径", @"文件路径" }; //文件路径写这,有几个路径就加几个 string con = ""; //循环数组路径 for (int i = 0;...
  • A B =COUNTIF($A$1:$A$3,B1)=0 B B =COUNTIF($A$1:$A$3,B2)=0 C A =COUNTIF($A$1:$A$3,B3)=0 最终显示结果,B和A都属于第一列,D不属于第一列 A B FALSE ... TRUE
  • 需求:编写Python爬虫时,根据excel里的数据进行爬取: 首先 我们应该要导入openpyxl 但是我最近导入了几个pycharm里面没有的库 必须要用pip才能导入的 然后导入还不能用的 反正一大堆问题 所以我推荐 最好在如图中...
  • python中用pandas读写excel表格,根据关键字查找填表(类似vlookpup)excel的vlookup出了N/A值相关的库读取和写入excel文件查找赋值1遍历表格每行查找填表查找赋值2类似dict构造Series参考 excel的vlookup出了N/A值 ...
  • python实现两个excel数据匹配,最终写入新的excel文件

    千次阅读 热门讨论 2020-12-09 14:13:01
    需求背景 表1有两列 表2包含表1不过缺少...file1 = "C:\\Users\\xuyin\\Desktop\\新建文件夹\\match-excel\\表1.xls" #打开表1 wb1 = xlrd.open_workbook(filename=file1) # 表1要匹配的列索引 hid_index1 = 0 #
  • 实现把excel中某些单元格的部分字符作为关键字,进行查找。话不多说直接上代码。 # -*- coding: utf-8 -*- import xlrd import xlwt def read_excel(): workbook = xlrd.open_workbook('tttttt.xlsx') #...
  • 最近比较闲找了个实习,学了一把python,用来处理工作中测试得到的log文件,特此写一下以上过程所学到的...正则 re.findall 的简单用法(返回string中所有与pattern相匹配的全部字串,返回形式为数组) 语法: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,032
精华内容 3,212
关键字:

关键字匹配excel