Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel formula Excel,用于输出';代理名称'&引用;“复制”;,或;“未找到”;_Excel Formula - Fatal编程技术网

Excel formula Excel,用于输出';代理名称'&引用;“复制”;,或;“未找到”;

Excel formula Excel,用于输出';代理名称'&引用;“复制”;,或;“未找到”;,excel-formula,Excel Formula,我有一个excel测试,我没有做得特别好,但这一个问题让我难住了。我需要一个等式,该等式取此列表中的名称,并在“first.initial”或“COPY”或“NOT FOUND”中输出代理名称 第1页: 代理人 亚当·m 代理人 大卫·e 代理人 乔。A 代理人 本·B 代理人 凯特·C 代理人 培训.22 代理人 管理员 我提交的方程式,老师说是错误的,是: =IFNA(IF(COUNTIF(Sheet1!A:A, A3)>1, "COPY", INDEX(Sheet1!A:A,MATC

我有一个excel测试,我没有做得特别好,但这一个问题让我难住了。我需要一个等式,该等式取此列表中的名称,并在“first.initial”或“COPY”或“NOT FOUND”中输出代理名称

第1页:

代理人

亚当·m

代理人

大卫·e

代理人

乔。A

代理人

本·B

代理人

凯特·C

代理人

培训.22

代理人

管理员

我提交的方程式,老师说是错误的,是:

=IFNA(IF(COUNTIF(Sheet1!A:A, A3)>1, "COPY", INDEX(Sheet1!A:A,MATCH(A3&"*",Sheet1!A:A,0))),"Not Found")
事情是这样的

您正在检查原始数据源的名称、预转换。我必须承认,
副本
起初有点误导,但后来我才明白

你也将整个事情包装在一个单一的逻辑。。。ISNA()。。。您的公式只能从中返回TRUE、FALSE或错误

将包装的ISNA()放在一边,这意味着对于您的公式,这些条目中的大多数都找不到。是的,如果你有一个已经被处理过的数据列表,这几乎可以成功。但是您正在检查错误数据中的“副本”

这里的第一个任务是将数据处理为所需的格式“[Firstname].[initial]”//因此,假设单元格中的第一组字符始终是名字,您可以使用以下内容的组合:

=LEFT(A2,SEARCH(“,A2)-1)
-通过将最左边的字符返回到第一个空格位置减去1的长度来获取forname

=RIGHT(A2,LEN(A2)-搜索(“,A2))
通过确定从右侧开始的长度为总单元格长度减去空格位置,获取空格右侧的所有字符

在第二种情况下,您需要执行逻辑运算,尽管您希望单个字母是一个单词,如果是数字,则需要整个字母:

=IFERROR(右(A2,LEN(A2)-搜索(“,A2))-0,中(A2,搜索(“,A2)+1,1))

因此,我在这里所做的是尝试从字符串中删除0,如果它是一个数字,这将成功并将该数字返回给我们。如果它失败了,它将产生一个错误并继续到第二条,给我们一个字符

您可以使用简单的字符串构建或连接子句组合这些内容:

=左(A2,搜索(“,A2)-1)和“&&IFERROR(右(A2,LEN(A2)-搜索(“,A2))-0,中(A2,搜索(“,A2)+1,1))

=CONCATENATE(=左(A2,搜索(“,A2)-1),”,IFERROR(右(A2,LEN(A2)-搜索(“,A2))-0,中(A2,搜索(“,A2)+1,1))

现在我们差不多到了,除了Ben和Adam产生了错误,因为找不到空格字符。我们现在将处理该错误,以便继续搜索:

=IF(ISERROR(SEARCH(“,A2)),A2,LEFT(A2,SEARCH(“,A2)-1)&“&IFERROR(RIGHT(A2,LEN(A2)-SEARCH(“,A2))-0,MID(A2,SEARCH(“,A2)+1,1))
-如果找不到空格字符,我们将拥有整个单元格,否则,我们将使用空格来构建搜索项

现在我们已经按照我们想要的方式对文本进行了格式化,我们可以继续进行搜索,顺序很重要,因为我们需要首先检查上面的结果是否重复,并在找到的地方打印“副本”,然后查找匹配项并返回它(如果有),如果找不到,最后返回“未找到”

我们需要使用通配符来满足条目
Ben
。因此,让我们先展示逻辑,然后将整个公式组合在一起:

=IF(COUNTIF($B$1:B1,[SearchTermFormula]),“COPY”,
-公式的这部分使用COUNTIF检查搜索词是否已经存在于其上方,如果存在,则返回“COPY”,并将继续下一部分,即绝对引用(
$
)这一点很重要,以便在向下复制公式时更新范围,但保持第一个单元格处于锁定状态

IF(ISNUMBER(匹配([SearchTermFormula]&“*”,Sheet1!$A$1:$A$14,0)),[SearchTermFormula],“NOT FOUND”)
-因此这可以用来显示基本逻辑,我们再次使用IF()来确定是否可以进行匹配,因为如果是,则返回数字。然后我们可以返回搜索词本身或“NOT FOUND”

不过,这一部分的一个更简洁的版本是:

IFERROR(索引(Sheet1!$A$1:$A$14,匹配([SearchTermFormula]&“*”,Sheet1!$A$1:$A$14,0)),“未找到”)

因为它实际上从sheet1返回结果,并且使我们使用[SearchTermFormula]1的时间更短,资源更少

INDEX()
基本上将范围映射为基于1的数组。这意味着范围中的第一个单元格被视为1,1的地址。您可以认为它添加了X和Y轴,但0,0在左上方,Y轴反转

因此,我们将其索引到列A,MATCH返回相对位置,因为行的大小相同,相对位置将是我们要查找的行号,因此我们得到返回的结果或错误值,因此IFERROR()引导我们生成“NOT FOUND”

综上所述,我们有:

=IF(COUNTIF($B$1:B1,IF(ISERROR,SEARCH(“,A2)),A2,LEFT(A2,SEARCH(“,A2)-1&“&IFERROR(RIGHT(A2,LEN(A2)-SEARCH(“,A2))-0,MID(A2,SEARCH(“,A2)+1,1))>0,“复制”,IFERROR(索引(Sheet1!$A$1,匹配)(IF(ISERROR(SEARCH(,SEARCH(“,A2)),A2),LEFT(A2,SEARCH(“,A2,SEARCH(“,A2)-1)&IFERROR(RIGHT)(RIGHT,LEN,A2),SEARCH(“),MID(A2,A2),SEARCH(,A2))-1))-1),-1),-1&&IFERROR(MID)搜索),-1),-,Sheet1!$A$1:$A$14,0)),“未找到”)

很抱歉这篇文章,但我希望它能帮助您理解文章的范围

=IFNA(IF(COUNTIF(Sheet1!A:A, A3)>1, "COPY", INDEX(Sheet1!A:A,MATCH(A3&"*",Sheet1!A:A,0))),"Not Found")