本帖最后由 slimay 于 2021-8-8 15:26 编辑
解法零:WPS函数法 也只用2秒
在明细中构造 列并 G列=A2&":"&E2&":"&F2, 行号 H列 = ROW(A2)下拉扩展所有行
然后使用vlookup直接检索列并 G列的内容 = VLOOKUP("YT5692687908699:无锡中心:下车扫描", 明细!G:H,2,FALSE)
返回的就是行号. 通过构造列并, 将查询耗时缩短到 2秒左右.亲测6万行只需1秒左右 | 查询订单号 查询集散地 查询扫描状态 | | YT5692687908699 无锡中心 下车扫描 | | | | 查询结果(列并) 查询到的行号 | | YT5692687908699:无锡中心:下车扫描 11 COPY |
解法一: C语言 20万行 0.01秒实测
这种问题,不用C,你很难做到毫秒级解决问题 | #include <stdio.h> | | #include <stdlib.h> | | #include <string.h> | | #include <time.h> | | | | #define LINE_SIZE 1024 | | | | char* yundanSN = "YT5692687908699"; | | char* yundanAddress = "无锡中心"; | | char* yundanState = "下车扫描"; | | int main( int argc, char** argv ) | | { | | if(argc != 2) | | { | | printf("Usage: argv[0] \"*.csv\"\n"); | | exit(1); | | } | | | | FILE* fp = fopen(argv[1], "rb"); | | if(fp == NULL) | | { | | printf("%s\n", "Error list file."); | | exit(1); | | } | | | | char line[LINE_SIZE + 1]; | | line[0] = 0x00; | | int lineNum = 0; | | while(! feof(fp)) | | { | | lineNum ++; | | fgets(line, LINE_SIZE, fp); | | if(strstr(line, yundanSN) && strstr(line, yundanAddress) && strstr(line, yundanState)) | | { | | printf("SN:%s, LINE_SN:%d\n", yundanSN, lineNum); | | break; | | } | | | | } | | | | fclose(fp); | | | | | | return 0; | | }COPY |
解法二: 批处理 2万行 10秒实测
批处理搞定 | @echo off | | setlocal enabledelayedexpansion | | | | set "查询运单编号=YT5692687908699" | | set "查询运单地址=无锡中心" | | set "查询运单状态=下车扫描" | | | | | | set 行号=0 | | for /f "delims=, tokens=1-3" %%a in ('more +35 "%~f0"') do ( | | | | set/a "行号+=1" | | if not defined #%%a ( | | if "%%a"=="%查询运单编号%" ( | | if "%%b"=="%查询运单地址%" ( | | if "%%c"=="%查询运单状态%" ( | | set "#%%a=!行号!" | | ) | | ) | | | | ) | | ) | | ) | | | | echo 运单编号 行号 | | for /f "tokens=1,2 delims=#=" %%a in ('set #') do ( | | echo;%%a %%b | | ) | | | | pause | | | | | | | | REM 数据粘贴区 | | 运单号,操作时间,操作频次,操作网点编号,操作网点名称,操作名称 | | YT5692687908699,2,3,4,广东省江门市,业务员收件 | | YT5692687908699,2,3,4,广东省江门市,揽收扫描 | | YT5692687908699,,,,广东省江门市,下车扫描 | | YT5692687908699,,,,广东省江门市,装件入包扫描 | | YT5692687908699,,,,广东省江门市,装件入车扫描 | | YT5692687908699,,,,广东省江门市,发车扫描 | | YT5692687908699,,,,江门中心,到车扫描 | | YT5692687908699,,,,江门中心,下车扫描 | | YT5692687908699,,,,江门中心,装件入车扫描 | | YT5692687908699,,,,无锡中心,下车扫描 | | YT5692687908699,,,,无锡中心,下车扫描 | | YT5692687908699,,,,无锡中心,装件入车扫描 | | YT5692687908699,,,,新区春潮一部,下车扫描 | | YT5692687908699,,,,经济开发区,下车扫描 | | YT5692687908699,,,,经济开发区,装件入车扫描 | | YT5692687908699,,,,无锡中心,下车扫描 | | YT5692687908699,,,,无锡中心,装件入车扫描 | | YT5692687908699,,,,新区,下车扫描 | | YT5692687908699,2,3,4,广东省江门市,业务员收件 | | YT5692687908699,2,3,4,广东省江门市,揽收扫描 | | YT5692687908699,,,,广东省江门市,下车扫描 | | YT5692687908699,,,,广东省江门市,装件入包扫描 | | YT5692687908699,,,,广东省江门市,装件入车扫描 | | YT5692687908699,,,,广东省江门市,发车扫描 | | YT5692687908699,,,,江门中心,到车扫描 | | YT5692687908699,,,,江门中心,下车扫描 | | YT5692687908699,,,,江门中心,装件入车扫描 | | YT5692687908699,,,,无锡中心,下车扫描 | | YT5692687908699,,,,无锡中心,下车扫描 | | YT5692687908699,,,,无锡中心,装件入车扫描 | | YT5692687908699,,,,新区春潮一部,下车扫描 | | YT5692687908699,,,,经济开发区,下车扫描 | | YT5692687908699,,,,经济开发区,装件入车扫描 | | YT5692687908699,,,,无锡中心,下车扫描 | | YT5692687908699,,,,无锡中心,装件入车扫描 | | YT5692687908699,,,,新区,下车扫描 | | YT5692687908699,2,3,4,广东省江门市,业务员收件 | | YT5692687908699,2,3,4,广东省江门市,揽收扫描 | | YT5692687908699,,,,广东省江门市,下车扫描 | | YT5692687908699,,,,广东省江门市,装件入包扫描 | | YT5692687908699,,,,广东省江门市,装件入车扫描 | | YT5692687908699,,,,广东省江门市,发车扫描 | | YT5692687908699,,,,江门中心,到车扫描 | | YT5692687908699,,,,江门中心,下车扫描COPY |
|