Excel formula 在单元格中搜索多个项目并返回一个值

Excel formula 在单元格中搜索多个项目并返回一个值,excel-formula,Excel Formula,我正在尝试为excel找到一种方法,通过引用列中的单元格进行搜索,引用在单元格中按分隔,并仅返回最近一年的出版物。我希望不必手动完成这项工作,只需对15列中的1000多个单元格进行检查。有办法做到这一点吗?第1-7行示例如下: X (BFP 2013) (Burns 1982 [1,2,3,4,S,M,H,C]) (Rooney 1984 [5,6,11,S,M,H,C]) X (BFP 2013) (Burns 1982 [1,2,3,4,S,M,H])(Rooney 1984 [5,6,11

我正在尝试为excel找到一种方法,通过引用列中的单元格进行搜索,引用在单元格中按分隔,并仅返回最近一年的出版物。我希望不必手动完成这项工作,只需对15列中的1000多个单元格进行检查。有办法做到这一点吗?第1-7行示例如下:

X (BFP 2013) (Burns 1982 [1,2,3,4,S,M,H,C]) (Rooney 1984 [5,6,11,S,M,H,C])
X (BFP 2013) (Burns 1982 [1,2,3,4,S,M,H])(Rooney 1984 [5,6,11,S,M,H])
X (BFP 2013) (Lortie et al. 1996) (Burns 1982 [1,2,3,4,S,M,C])(Rooney 1984 [5,6,11,S,M,H])
#N/A
#N/A
X (Burns 1982 [1,2,3,4,S,M,H])(Rooney 1984 [5,6,11,S,M,H])
X (BFP 2013) (Burns 1982 [2,4,M,H])(Rooney 1984 [5,6,M,H])
例如,在本例中,我希望前三行的公式返回2013,第4行和第5行的N/A可以,因为没有数据,第六行返回1984,第七行返回2013,因为它们是最新的出版物

我有一份18年出版物的清单,我可以在牢房里搜索。不确定嵌套的if函数是否可以在单元格中选择年份(如果发生),并返回最高值:19011927193819781988198219821983198485198519801994199619981998199818204205200720012013

或者我不确定是否可以使用=IFisUnmberSearch,让它只识别字符串中的年份,并只返回最近的年份。有人有什么想法吗?我希望这足够清楚,很难描述。 谢谢你抽出时间,
Mags

我不想尝试用excel公式执行此操作,因为它确实没有良好的搜索和替换功能。毫无疑问,您可以使用宏来实现这一点,但对您的解决方案来说,更有效的时间可能是

将数据列剪切并粘贴到文本编辑器中,该编辑器可以执行grep搜索,如BBEdit或TextWrangler

运行替换,将文本转换为日期字符串。以下内容或多或少满足您的要求-搜索字符串:.*?[\d]{4}|\r replace string\1,这将为您提供如下行,201319821984

在行首和行尾运行replacements以添加=max,从而生成一个由以下行组成的文本文件:=max201319821984

将其剪切并粘贴回excel

我发现以这种方式结合excel和BBEDit可以非常有效地清理数据集。如果需要重复相同的过程,则可以将替换集另存为文本工厂

假设你的第一个X在A1,我建议把你的18岁,每人一年,输入新一行的B:S栏。在B2中,向下和横向复制以适应:

=IF(ISERROR(FIND(B$1,$A2)),"",B$1)  
=MAX(B2:S2)
在T2中,并向下复制以适应:

=IF(ISERROR(FIND(B$1,$A2)),"",B$1)  
=MAX(B2:S2)
这将返回0而不是N/A,但您可以将MAX函数包装为测试0,如果是,则在需要时返回N/A


然而,我不明白你提到的15列。如果这是ColumnA中类型数据的15倍,则可能值得将这些块复制或移动到ColumnA中,并扩展公式的适用范围。

此处不考虑答案,但我注意到Mags OP已经评论说他/她得到了答案/工作公式,我只是想强调一下,因为一开始我自己也错过了。巧妙地使用ROW imho。我肯定会记住这一次


=MAXIFERROR1*MIDC3,ROWINDIRECT1:&LENC3,4,

是您在一个单元格中的数据样本中的一行中显示的内容,还是在不同列中跨单元格分布的内容?感谢您的时间,但我在另一个论坛上得到了一个公式=MAXIFERROR1*MIDC3,ROWINDIRECT1:&LENC3,4,效果非常好。现在让我来学习这一切的作用,这样下次我就能更接近于解决我自己的问题。