【问题标题】:Reference cells with no gaps to fill table with gaps参考无间隙的单元格以填补表格的间隙
【发布时间】:2021-01-12 01:30:21
【问题描述】:

我在下面列出了 2 个表格来说明我的问题。

表 1

表 2

我正在尝试从第 15,16 和 17 行(表 1)中找到一个填充第 140、143 和 146 行(表 2)的公式。有超过 100 个,所以一遍又一遍地输入=B15 等非常耗时。

偏移方法,例如=OFFSET($B$15,(ROW()-1)*3,0) 仅在我引用空白时有效,而不是试图填补空白。

基本上,如果 B140 的公式是 =B15,B143 的公式将是 =B140 + 1 row,即 B16

感谢您的帮助!

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    如果您尝试查找合适月份的值,您可以使用INDEX/MATCH 作为数组公式输入:

    =IFERROR(INDEX($B$1:$B$4,MATCH(TRUE,MONTH(A10)=MONTH($A$1:$A$4),0)),"")
    

    编辑后的数组公式按ctrl+shift+enter确认

    编辑

    按月份和年份查找:

    =IFERROR(INDEX($B$1:$B$4,MATCH(1,(MONTH(A10)=MONTH($A$1:$A$4))*(YEAR(A10)=YEAR($A$1:$A$4)),0)),"")
    

    也是数组公式

    【讨论】:

      【解决方案2】:

      您可以为此使用模数。使用 Modulo 函数,您可以检查您所在行的其余部分是否可以被一个数字整除(例如,如果您想每隔三行复制一个值,则为 3)。 IF(MOD(ROW(E1);3 = 0)

      如果是这种情况,您可以除以 3,然后使用 Index 函数复制另一个位置(或另一个工作表)的 nth 值。如果不是这种情况,则打印 "" 以获得空行。

      =IF(MOD(ROW(E1);3)=0;INDEX($B$1:$B$4;ROW(E1)/3);"")

      如果您正在使用偏移量,因为行号不是可被三整除的数字,您可以手动偏移行数(并对产生索引行的除法执行相同的操作)。例如,如果您想要第 2、5、8 行等:

      =IF(MOD(ROW(E1)+1;3)=0;INDEX($B$1:$B$4;ROW(E2)+1/3);"")

      【讨论】:

      • 谢谢!完美运行。我还有一个疑问。我意识到每 12 个单元格有一个间隔,以显示年份之间的间隔。它用于复制和粘贴到软件中。所以代码只能每 12 行工作一次,然后需要手动输入。有解决办法吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-28
      • 1970-01-01
      相关资源
      最近更新 更多