我有一个电子表格,其默认值为“否”。随着时间的推移,这些值将更改为“是”。
我需要一个公式(请不要使用 VB,VB 对我没用),它可以让我得到单元格范围内最后一个“是”的行号,以便我可以查找另一列的该行号中的值来检索要显示的文本。
假设我在一列中有以下内容(称为 1):“是”、“是”、“是”、“否”、“否”
在引用列(称为 2)中,1、1、2、2、3
一切完成后,INDIRECT(THE_FORMULA_HERE, 2) 应该会检索到值“2”。当所有“是”都放置后,它将变为“3”,等等。
答案1
假设数据是连续的(即“是、是、是、否、否”但不是“是、是、否、是、否”),那么您可以使用以下公式:
=INDIRECT("B" & (COUNTIF(A2:A6, "Yes")+1))
这是我使用的数据:
| A B
---------------
1 | Yes 1
2 | Yes 1
3 | Yes 2
4 | No 2
5 | No 3
如果您可以添加序列列,那么还有其他方法可以做到这一点,然后使用COUNTIF
和VLOOKUP
做同样的事情。
答案2
给出 E 列包含以下内容的示例:
Row# Value
1. Yes
2. No
3. Yes
4. Yes
5. Yes
6. Yes
7. No
8. No
9. Yes
10. No
您可以使用所谓的数组公式轻松完成此操作。在此示例中,您可以键入公式=MAX(ROW(E1:E10)*IF(E1:E10="Yes",1,0))
,然后按 CTRL+SHIFT+ENTER 以数组公式的形式输入公式。Excel 将在公式周围添加 {} 以表明这是一个数组公式。
答案3
我会使用 INDEX 而不是 INDIRECT,因为它是非易失性的,但如果所有“是”答案都是连续的并且没有被“否”分割,那么概念几乎相同。
=INDEX(B1:B100,COUNTIF(A1:A100,"Yes"))
将 100 替换为你实际拥有的行数