Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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 检查列的其余部分是否存在文本,如果存在,请使用该行中的信息_Excel_Excel Formula - Fatal编程技术网

Excel 检查列的其余部分是否存在文本,如果存在,请使用该行中的信息

Excel 检查列的其余部分是否存在文本,如果存在,请使用该行中的信息,excel,excel-formula,Excel,Excel Formula,我正在寻找一种方法来检查我正在输入文本的另一个单元格,并让它查看该文本值是否与列中的其他任何位置相同,如果是,它将获取与自身在同一列但在检查文本行中的数字值 所以,若你们使用图片,你们可以看到我目前已经选择了E7。我希望它检查“GOLF COURSE”列中是否有任何其他行包含与它自己的行中相同的文本。这就是“课程1”。我想让它检查一下B列的其余部分是否有与B3中的“Course1”匹配的内容。如果匹配,我希望它使用与(E)相同列中的值,但与B列中匹配文本的行相同。在这种情况下,我希望它复制E3

我正在寻找一种方法来检查我正在输入文本的另一个单元格,并让它查看该文本值是否与列中的其他任何位置相同,如果是,它将获取与自身在同一列但在检查文本行中的数字值

所以,若你们使用图片,你们可以看到我目前已经选择了E7。我希望它检查“GOLF COURSE”列中是否有任何其他行包含与它自己的行中相同的文本。这就是“课程1”。我想让它检查一下B列的其余部分是否有与B3中的“Course1”匹配的内容。如果匹配,我希望它使用与(E)相同列中的值,但与B列中匹配文本的行相同。在这种情况下,我希望它复制E3中的值。 如果没有匹配项(比如说,这是一门新课程),那么我需要能够点击单元格并输入所需的数字,我无论如何都可以这样做,但只是为了获取信息而把它扔进去


我尝试过各种各样的谷歌搜索,并在想我怎么可能做到这一点,但这对我的业余Excel知识来说太难了

我相信您正在寻找
索引
/
匹配

=IF(COUNTIF($B:$B,$B7)>1,INDEX(E:E,MATCH($B7,$B:$B,0)),"New")

我添加了一个
COUNTIF
检查,以确保同一课程在B列中存在不止一次,如果没有它,您将得到一个循环参考公式(如果相同的过程出现一次以上,也会发生上述公式,但在该课程的第一次出现时使用此公式,因此,在第一次填写特定课程的PAR分数时,请不要使用它)。

合并索引/匹配的单元。 公式 将以下公式复制到单元格
E7

=IF(AND($B7<>"",$D7="Par"),IF(ISERROR(MATCH($B7,$B$3:$B5,0)),"Par",INDEX(E$3:E5,MATCH($B7,$B$3:$B5,0))),IF(AND($B6<>"",$D7="Strokes"),IF(ISERROR(MATCH($B6,$B$3:$B4,0)),"Strokes",INDEX(E$3:E4,MATCH($B6,$B$3:$B4,0)+1)),""))
将返回1,即找到
B7
的精确(
0
)匹配项 在范围
B3:B5
1st单元格中

  • 我们不需要
    1
    E3
    ),而是要单元格中的值(
    5
  • 索引

    INDEX
    函数有两个语法,我们将使用第二个:

    语法2:
    索引(参考,行数,列数,区域数)

    由于我们使用的是一列范围,我们可以安全地省略参数
    row_num
    column_num
    ,这给我们留下了:

    修改语法:
    索引(参考,区域编号)

    • 以这种方式使用的
      INDEX
      函数将返回
      area_num
      -th值 例如,在我们的例子中,如果
      区域数
      1
      ,它将返回
      1st
      列范围中的值,如果它是
      2
      ,则是
      2nd
      ,以此类推
    • 第一个参数
      reference
      将与我们的
      MATCH
      E
      中的范围:
      $E$3:$E5
      我们将在此处删除 列锁定,因为我们还希望返回其他列的结果 列:
      E$3:E5
    • 第二个参数
      area_num
      将是我们的
      MATCH
      公式
    • 我们当前的公式如下所示:

         =INDEX(E$3:E5,MATCH($B7,$B$3:$B5,0))
      
      它将返回单元格
      E3
      5
      的值

    最终调整:
    如果
    以及
    iError

    如果列
    B
    中的单元格没有合并,这几乎就是(错误检查)。因此,我们必须使用
    if
    来确定我们编写公式的行是否包含
    Par
    笔划
    ,并针对这两种情况调整我们迄今为止创建的公式:

    =IF($D7="Par",INDEX(E$3:E5,MATCH($B7,$B$3:$B5,0))
    =IF($D7="Strokes",INDEX(E$3:E4,MATCH($B6,$B$3:$B4,0)+1)
    
    =IF($D7="Par",INDEX(E$3:E5,MATCH($B7,$B$3:$B5,0)),$D7="Strokes",INDEX(E$3:E4,MATCH($B6,$B$3:$B4,0)+1))
    

    (第三个条件)使用
    ,检查
    B列中是否有一个值,我们正在为包含
    Par
    的行创建公式,或者为包含
    笔划的行创建上面的行:

    =IF(AND($B7<>"",$D7="Par"),INDEX(E$3:E5,MATCH($B7,$B$3:$B5,0)),IF(AND($B6<>"",$D7="Strokes"),INDEX(E$3:E4,MATCH($B6,$B$3:$B4,0)+1),""))
    


    现在我们准备把公式复制到我们所需要的右边和下方。

    你是圣人!我可以吻你!谢谢你这么多完美的工作。嗯,注意到你在这里加了答案,想说OP可能不需要公式来填充笔画,因为那些将被更新。NS对于每个球场和每个洞都是一样的,而笔触会随着玩家的动作而变化。我认为OP想要跟踪玩家的游戏进度,并且不想手动填充PAR信息,如果它以前已经输入过一次。@杰瑞:我们可以说高尔夫不是我的强项,但我能从某种程度上推断出这一点吗?考虑到我的第一句话,我的问题是什么?最后,我应该删除这篇文章吗?哦,不,我无意告诉你是否删除这篇文章(如果是这样的话,我很抱歉),因为它可能在不同的环境中有用,因此它不仅适用于所问的问题,而且适用于一般人可能面临的问题,因此,如果其他人无意中发现了这个问题,那么你的问题可能对他们有用。尽管这取决于你。@抱歉打扰了,不必道歉。我更担心我对OP的问题的答案很感兴趣,因为我不经常打高尔夫,我怎么能从OP的问题中得出我不需要与击球值匹配的结论。简言之:我错过了什么?我不会说你错过了什么;但更多的是关于这个问题如何改进的问题。一张图片很有帮助,但我想一些更好的解释anation可能会有所帮助。我花了一段时间才理解这些要求,老实说,如果我从我玩过的视频游戏中不知道一点高尔夫,我可能会走你选择的道路;
    =IF(AND($B7<>"",$D7="Par"),INDEX(E$3:E5,MATCH($B7,$B$3:$B5,0)),IF(AND($B6<>"",$D7="Strokes"),INDEX(E$3:E4,MATCH($B6,$B$3:$B4,0)+1),""))
    
    =IF(AND($B7<>"",$D7="Par"),IF(ISERROR(MATCH($B7,$B$3:$B5,0)),"Par",INDEX(E$3:E5,MATCH($B7,$B$3:$B5,0))),IF(AND($B6<>"",$D7="Strokes"),IF(ISERROR(MATCH($B6,$B$3:$B4,0)),"Strokes",INDEX(E$3:E4,MATCH($B6,$B$3:$B4,0)+1)),""))