我正在尝试使用公共ID(在sheet1中有多次出现)使用单元格中的数组公式从sheet1获取日期(然后将其拖到右侧以使所有日期都属于特定ID):
=IF(COLUMNS($E2:E2)<=$D2,INDEX(Sheet1!$B$2:$B$13,SMALL(IF(Sheet1!$A$2:$A$13=Sheet2!$A2,
ROW(Sheet1!$A$2:$A$13)-ROW(Sheet1!$A$2)+1),COLUMNS($E2:E2))),"")
但是,每当我尝试在b / w列中插入一列(用于计数)时,此公式不起作用。我无法弄清楚这个问题,真的很感激帮助吗?
谢谢。
答案 0 :(得分:0)
假设您的第一个公式在E2中,并且任何新插入列的第2行中的单元格将始终为空,请替换以下两个实例:
COLUMNS($E2:E2)
在您的公式中的E2:
COUNT(1/LEN($D2:D2))
作为一种解释,请采用F2中的公式,该部分将为:
COUNT(1/LEN($D2:E2))
(唯一自然变化的部分是结束范围参考。)
让我们假设在E列的左侧插入了3个新列,这意味着E2,F2和G2现在将为空白,H2将包含之前在E2中的条目,并且对于I2中的公式,上面的部分现在将是:
COUNT(1/LEN($D2:H2))
显然,我们希望这部分继续给出2,因为这个单元格仍应代表我们的第二个回报。
使用LEN是确定单元格是否为空的严格方法。其他功能也可用于此目的,但可能会给出不正确的结果,具体取决于该范围内的空白是“真正的”空白还是由于这些单元格中的公式而产生的空字符串“”。
如果单元格为空,则其长度为0.因此,在此示例中,上述解析为:
COUNT(1/{1,0,0,0,2})
(我已经对单元格D2和H2中的字符串长度进行了一些随机假设。)
有很多方法可以确定数组中有多少非零。 SUTIRODUCT将是一个;我选择了另一个,逻辑是上面变成了,在团结互惠之后:
COUNT({1,#DIV/0!,#DIV/0!,#DIV/0!,0.5})
并且,由于COUNT忽略传递给它的范围内的任何错误,因此根据需要将上述解析为2。
此致