用于返回列中已筛选单元格的部分的电子表格公式

用于返回列中已筛选单元格的部分的电子表格公式

我使用 Libreoffice。(如果 Excel 或 GoogleSpreadsheets 是获得解决方案的唯一方法,我愿意切换。但首选平台是 LibreOffice,我正在寻找此软件上的解决方案)。

这是我想要实现的目标,我有一个这样的电子表格:

|Date         |Available?   |Length  |
|2/8 9:00     |no           |10
|26/8 9:00    |yes          |5
|28/8 9:00    |no           |2
|29/8 8:00    |yes          |5.5
|30/8 9:00    |yes          |6
|31/8 9:00    |no           |3

现在我想提取“可用”列中为 YES 的所有日期。在这种情况下,不会出现不同的月份,因此只有日期是相关的。我希望在电子表格的其他部分得到以下结果:

26, 29, 30

更复杂的是,如果我想计算长度>5可用的是真的吗?在上面的例子中,这将是

3

这可能吗?我用 VLOOKUP 乱七八糟地画了画,但不知道从哪里开始。我猜 Excel 的工作原理相同或类似。

我希望这个功能能够正常工作,而不需要用户手动过滤任何内容。这个想法是只需复制/粘贴数据,然后通过文件另一张表中的公式获取结果,然后在那里创建发票。

答案1

在 excel 中...&基于这个好的 index() + match()参考

这部分的解决方案:

“如果我想计算长度> 5 且可用为真的天数?> 3”

如果长度 >5 ,那么您应该得到 2..而不是 3..如果长度 >=5 ,那么您只会得到 3。

假设您的样本数据在 A1:C7 中,答案是:

=COUNTIFS(B:B,"yes",C:C,">5")

您将得到 2。

对于这一部分:

“想要提取“可用”列中有“是”的所有日期”

假设您的“2/8 9:00”数据位于 A2,“31/8 9:00”位于 A7,所有数据 Id A 列在 Excel 中格式化为日期/时间格式,将其放在 D2 中:

=IFERROR(IF(ROWS($A$2:$A2)>1,INDEX(OFFSET($A$2:$A$7,MATCH(D1,$A$2:$A$7,0),0),MATCH("yes",OFFSET($B$2:$B$7,MATCH(D1,$A$2:$A$7,0),0),0)),INDEX($A$2:$A$7,MATCH("yes",$B$2:$B$7,0))),"")

在 E2 中:

=IFERROR(DAY(D2),"")

您将在那里得到“ 26, 29, 30 ”。

相关内容