Tag: 模式匹配

MS Excel – 从子串提取独特的文本模式关键字

我想通过使用MS Excel公式从包含唯一search模式的文本子string中提取文本/年。 我有一个独特date的列(单元格A2:A19),在某些情况下,文本前后有周围的文本,我只想提取所有唯一以数字“1”开始的年份(即17 18,19,19等) 当前公式 DATE April 1 1799 April 11 1867 February 12 1806 February 21 1798 February 28 1844 as Delaware Township February 5 1798 February 7 1892 Verona Township February 9 1797 January 19 1748 July 10 1721 as Upper Penns Neck Township March 15 1860 March 17 1870 (as Raritan Township) […]

Excel – 识别唯一的值模式,并以列递减顺序返回输出,为500,000多行进行了优化

这是我一直在努力工作了一年的海量数据清理任务的第三个也是最后一个问题。 谢谢Stack Overflow社区帮忙解决: 问题1- 索引多个列并匹配不同的值…。 问题2 – 计数匹配ID的唯一值,针对100,000个以上的情况进行优化 。 我不是100%确定在excel中是否可以实现以下目标,但我将尽我所能来描述我面临的数据清理和组织挑战。 我有一系列数据标记/属性,它们是按24列随机排列的,跨越了500,000多行。 下面的图1是为了说明的简单性,以原始forms呈现的数据的示例,跨越12列呈现并跨越22行。 列A到L包含原始数据,列M到X代表所需的输出。 任务概要 :需要完成的是一系列匹配函数,这些函数在所有索引列(在这种情况下,列A到L)中search以识别唯一值(例如1),search范围内的值(在这种情况下A2:L21范围),将唯一值的相邻值(对于值1,相邻值是2和13-XR)进行标识,然后以从最频繁出现的值到最不频繁出现的每行中的降序排列任何一个值(在这种情况下,1出现5次,通过M6放置在M2中; 2出现3次,通过N6放置在N2中; 13-XR出现2次,通过O6放置在O2中) 。 为了澄清,以下是使用颜色来逐步描述原始数据(列A到L)中的模式匹配以及如何在输出(列M到X)中呈现这些模式的步骤。 我已经将以下每个图像分成了六个原始数据模式。 上面的图片是VBA解决scheme可以识别的第一个图案。 它会将“1”识别为一个唯一的值,并通过A:L范围search“1”的实例数量(以蓝色突出显示),然后确定在同一行中可以find相邻的所有值:“2”在第3,5和6行(用绿色突出显示); 和第4行和第5行中的“13-XR”(以粉色突出显示)。 然后需要对“2”进行识别(“1”和“13-XR”),然后对于“13-XR”识别(“1”和“2”为相邻值) 。 输出将返回列M中出现频率最高的唯一值(“1”出现5次),然后在N列出现的次数最多(“2”出现3次),第三次出现在列O “13-XR”发生2次)。 以上情况稍微复杂一点。 VBA将“3”识别为一个唯一的值,search其他“3”实例的A:L范围,并确定与其相邻的所有值(在本例中为“4”,“7”和“9”)。 然后对“4”做相同的操作,识别所有相邻的值(仅“3”); 那么对于“7”,识别相邻的值(“9”,“3”和“12”); 然后为“9”标识(“7”和“3”); 最后为“12”标识相邻值(仅“7”)。 然后,对于存在任何这些值的每一行,输出将返回M列(出现三次)的“3”和N列(也出现三次)的“7”。 如果计数是相等的,它们可以从A到Z或从小到大或者随机出现,相同计数的sorting对我来说是任意的。 在列O中发生两次“9”,在列P中为“4”,在列Q中为“12”,因为它们都发生一次,但是12大于4。 上面的图像表示可能是常见的情况,只有一个唯一的值。 这里,“5”在该范围内的任何其他列中都没有标识。 因此,对于存在“5”的每行,在列M中返回为“5”。 这将是另一个更常见的事件,其中一个值可能出现在一行中,而另一个值出现在另一行中。 在这种情况下,“6”只在范围内标识一次,“8”是唯一的相邻值。 当“8”被search时,它只返回一个相邻值“6”的实例。 这里,“8”出现两次,“6”只出现一次,从而导致列M中包含“8”,并且在列中存在“8”或“6”的列中“6”包含在列中。 这里,将“10”,“111”,“112”,“543”,“433”,“444”和“42-FG”识别为在A:L范围内彼此关联的唯一值。 除“10”以外的所有值都会出现两次,这些值在M到S列中按降序排列。 这个最后的模式是以上述相同的方式确定的,只是具有更多独特的值(n = 10)。 最后的注意事项:我不知道如何在excel中完成这个任务,但是我希望别人有这个知识来推动这个问题。 以下是有关可能有助于解决问题的数据的其他说明: 第一列总是按升序排列。 如果它简化了事情,我可以做其他的自定义sorting。 在〜500,000行中,15%只有一个属性值(A列中的一个值),30%有两个属性值(col A中的1个值和col B中的1个值),13%具有三个属性值(1 […]

Excel VBA从文件名提取date

我正在使用以下,获取文件名。 Dim wbName As String wbName = Left(ActiveWorkbook.Name, (InStrRev(ActiveWorkbook.Name, ".", -1, vbTextCompare) – 1)) 一些文件名可能如下所示: “CM CC跟踪日志FY 17-18-08.07.17” “跟踪日志10-23-17” “跟踪日志17-18美国汽车俱乐部 – 8-7-17” 我想弄清楚如何提取datestring,模式匹配使用正则expression式。 17年7月8日 17年10月23日 17年8月7日

特定的正则expression式VBA excel的模式

我有这样一个string:“+33(0)1 75 32 33 34”,我想这个结果:+331 75 32 33 34而且我找不到要用这个结果的模式 你有什么想法吗?

Excel匹配与逻辑expression式的问题

(我明白Excel只是边界编程) 我有一个代表过程中的步骤和可能的错误的数据块: ProcessStep状态 费用确定 FormRecvd确定 angular色分配确定 检入未检入。 ReadyToStart未准备好启动 我想find不是“OK”的第一个状态。 我曾试图这样做: =Match("<>""OK""", StatusRange, 0) 这是应该返回的第一个元素在不等于(<>)的范围内的索引为“OK” 但是这不起作用,而是返回#N/A 我期望它返回4(在基于1的索引中的索引#4,表示CheckedIn是第一个非OK元素) 任何想法如何做到这一点?

模式匹配计数在Excel中(正则expression式和VBA)

我有一个Office 2007 .XLSX文件,其中包含如下所示的5000个以上的logging(具有多行文本的单个单元格)。 问题:在一个相邻的单元格上,把单元格的事件计数。 查看A1的单元格数据,可以看到3个事件: 单元格A1: 1/15/2013 1:30:11 AM Userx Had to reboot system 1/15/2013 1:32:11 AM Userx System running finished rebooting and appears to be working 11/15/2013 12:30:11 AM Userx System hung again 问题是date值不一致。 日,月和小时可以是单位或双位数字,但总是记在新行上。 我的代码解决scheme是取出单元格,将其拆分,在最后一个“:”后面修整5个字符,然后根据我的正则expression式评估结果。 之后,一些基本的理货和文本插入相邻的单元格。 下面是如何调用函数的一个例子。 'calling function from another source: thecount = CountOfDateValues(Range("a1").Value) 'get count Range("b1").Value = thecount 'put count to […]

从列中提取模式

我挣扎着一个巨大的Excel工作表(200K行),在那里我需要从列(B)的string中存在的所有电子邮件地址列表中提取。 我想实现的是: 从string中提取电子邮件 将(at)转换为@和(dot) . 将名称和电子邮件保存在不同的列中 B列的例子: Shubhomoy Biswas <biswas_shubhomoy777(at)yahoo(dot)com> Puneet Arora <ar.puneetarora(at)gmail(dot)com> Anand Upadhyay <001.anand(at)gmail(dot)com> Rajat Gupta <rajatgupta0889(at)gmail(dot)com> Sarvesh Sonawane <sarvesh.s(at)suruninfocoresystems. 尽pipe我希望能够在Excel上执行任何其他基于Windows的实用程序build议将会有所帮助。

MS Excel查找文本string末尾的特定文本

使用MS Excel公式(不是VBA /macros),我有一个位于Column A2:A300的单词列表(“动词”)。 我想要一个公式,将只search和提取符合Column D2:D13search条件的结尾字母。 我目前有一个MS公式,密切做我在找什么,但问题是,它将确定在任何位置包含特定文本的单元格内的任何单词(请参阅下面的公式)。 示例:在单词“Acceded”的末尾find过去式“ed”,这个公式起作用,但是如果单词仅仅是“Accede”,则返回“ed”,因为它find了文本内的字母(? ?ed?),而不是在文本string的末尾。 目前的配方(位于B2 ): =IFERROR(INDEX($D$2:$D$300,MAX(IF(ISERROR(SEARCH($D$2:$D$300,A2)),-1,1)*(ROW($D$2:$D$300)-ROW($D$2)+1))),"None") 我已经突出显示了“红色”的单词来反映错误和解决scheme,我试图用公式解决。 样品输出结果

用于validationPDF和Excel文件types的模式

我有一个networking应用程序,允许用户上传附件; 但是,我想限制用户只有某些文件types – Adob​​e PDF和MS Excel。 原因是在用户提交文档进行处理和工作stream程之前,我将汇总一些附件并创build一个PDF报告。 我做了一些研究和转换的DOC(X),RTF等…将是头痛。 另外,如果附件全都是PDF格式的话,那么每个人都将“理论上”获得更好的可移植性。 目前我正在检查MIMEtypes – PDF – "application/pdf" XLS(X) – "application/vnd.ms-excel" "application/msexcel" "application/x-msexcel" "application/x-ms-excel" "application/x-excel" "application/x-dos_ms_excel" "application/xls" "application/x-xls" 这很好,除了我注意到,我可以采取例如.docx文件,并将其扩展名为.pdf并成功绕过此检查。 为了弥补这一点,我打算进一步检查实际文件的标题。 根据这个文件签名库 PDF将具有以下标题 – 25 50 44 46 它会有以下一个拖车 – 0A 25 25 45 4F 46 (.%%EOF) 0A 25 25 45 4F 46 0A (.%%EOF.) 0D 0A 25 25 45 […]

用OR函数进行条件格式化

所以,基本上我需要的是给单元格背景着色,如果他们匹配给定的string之一。 在我的情况下,这将是列A包含值A1 = 1.08,A2 = 2.08(八月第二天等)。 所以我想要做的就是改变所有周末的背景颜色,只要指定它就可以了: 条件格式>新规则>使用公式来确定要格式化的单元格 而我试图使用OR()函数似乎没有工作(在我的价值观的范围内),如下所示:= OR(“1.08”;“2.08”;“9.08”;“10.08”.. )。 适用于我的是:条件格式>新规则>只格式包含>单元格值>等于> …的单元格(但在这种情况下,我将不得不做许多具有相同格式的规则,我进入,但为了不同的价值。 请帮我一下