代码之家  ›  专栏  ›  技术社区  ›  user8834780

在日期类型标题上使用INDIRECT()

  •  1
  • user8834780  · 技术社区  · 6 年前

    我正在尝试每周动态计算一个电子表格,因为每周都会在标题中的日期向列中添加新数据。我的数据是这样的:

    Name   WoW   9/27/2018   10/4/2018   10/11/2018   10/18/2018   10/25/2018
    A      ?     100         120              
    B      ?     120         140          
    

    120/100-1 = 20% . 哇哦,B应该是 140/120-1 = 16.67% .

    INDIRECT() 在B2单元中,这样计算WoW:

    =INDIRECT(IF(MATCH(TODAY(),C$1:G$1,0),TODAY(),""))/INDIRECT(IF(MATCH(TODAY()-7,C1:G1,0),TODAY()-7,""))-1
    

    然而它只是回来了 #REF! .

    再想一想,这看起来会失败的 today()+1 today()+6 所以如果有办法更新 match() 我们将不胜感激。

    2 回复  |  直到 6 年前
        1
  •  2
  •   pnuts    6 年前

    我猜你想要的是:

    =INDEX(2:2,MATCH(TODAY()+WEEKDAY(TODAY())-5,$1:$1,0))/INDEX(2:2,MATCH(TODAY()+WEEKDAY(TODAY())-5,$1:$1,0)-1)-1  
    

    不仅仅是 D2/C2-1 . 间接的是不稳定的,所以最好避免(尽管今天也是如此)。

        2
  •  2
  •   Marco Vos    6 年前

    另一种选择是:

    =INDEX(2:2,MATCH(999999,2:2,1)) / INDEX(2:2,MATCH(999999,2:2,1)-1) -1
    

    放进B2室,抄下来。它只使用每行中不为空的最后两个单元格来进行计算。

    enter image description here