一对多关系以获取备用行中的值

时间:2015-06-29 14:47:55

标签: excel excel-formula

我正在尝试使用公共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列中插入一列(用于计数)时,此公式不起作用。我无法弄清楚这个问题,真的很感激帮助吗?

谢谢。

1 个答案:

答案 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。

此致