我有一个包含多个工作表的Excel数据库。这是一张包含常规数据的表格(例如电子邮件等),然后我还有另一张表格,其中包含订阅了新闻通讯的电子邮件地址(电子邮件在第一列中只是一行一行地显示)。在第一个“常规”工作表中,我有三列,每行都有电子邮件地址。我需要检查新闻稿工作表中的三列中是否有电子邮件-是否订阅了某人-如果是的话,我想将电子邮件放入其旁边的一列中,或者只写订阅的内容进入它。
我已经有一个公式:=IFERROR(VLOOKUP($L2, Newsletter!A:A, 1, FALSE),"")
,但这仅在电子邮件仅存储在一列中时有效。
这应该是数据库的样子-三列带有电子邮件,另一列newsletter-check-column(现在newsletter列不起作用)
我的新闻简报看起来很简单:
是否有相应的公式?还是必须为此制作VBA宏?
答案 0 :(得分:0)
尝试
=IFERROR(VLOOKUP($L2, Newsletter!A:A, 1, FALSE), IFERROR(VLOOKUP($m2, Newsletter!A:A, 1, FALSE), IFERROR(VLOOKUP($n2, Newsletter!A:A, 1, FALSE), "not subscribed")))
答案 1 :(得分:0)
我已经解决了,感谢大家的帮助。
公式:interface IFish {
swim: () => void;
}
interface ICat {
meow: () => void;
}
type Pet = IFish | ICat;
const pet: Pet = {
meow: () => {
//
},
swim: () => {
//
}
};
答案 2 :(得分:0)
您可以通过多种方法来执行此操作。我喜欢数组函数,所以我会这样:
在O列中,您可以沿
的行粘贴内容 {=SUM(IF(ISBLANK(Newsletter!A:A),0,IF($L2=Newsletter!A:A,1,IF($M2=Newsletter!A:A,1,IF($N2=Newsletter!A:A,1,0)))))}
注意:这是一个数组公式,这意味着您需要将其粘贴到单元格中,然后按ctrl+shift+enter
,然后将该单元格复制到列表中。
第一个if语句将检查以确保“新闻”标签中电子邮件列表中的空白单元格与“数据库”标签中的空白单元格不匹配。接下来的三个if语句依次检查L,M和N列,以查看大列表中是否存在这些电子邮件。
根据列表的大小,将A的长度限制为Newsletter!$ A $ 1:$ A $ 100000之类的时间可能更快一些,或者您需要的时间也很长,因此您不必检查所有的百万美元以上Newsletter!A中存在的行:数据库选项卡中的每一行四次。
如果是一次性的东西,没什么大不了的,但是如果您不断更新列表,则运行vba脚本可能会更快。
答案 3 :(得分:0)
指向示例工作表的链接:Click Here
要获得比您提供的解决方案简单得多的解决方案,请尝试以下操作:
=OFFSET(Sheet1!$F$2,0,0,COUNTA(Sheet1!$F:$F)-1,1)
(请注意:我使用的公式与所附的屏幕截图相对应)=IF(OR(Emails=A2, Emails=B2,Emails=C2),TRUE,FALSE)
。输入此公式作为数组公式(按 CTRL + SHIFT + ENTER ,它将{}放在公式周围,您就知道正确完成)。此公式的工作方式是首先限制进行计算时必须不断引用的像元数(上面的步骤1)。
接下来,使用简单的OR
语句,将每列与动态大小的列表进行匹配。如果任何个单元格匹配,它将返回TRUE
。