【问题标题】:Get the corresponding non-empty adjacent cell in a column in Google Sheets获取谷歌表格一列中对应的非空相邻单元格
【发布时间】:2021-05-13 13:00:31
【问题描述】:
我正在尝试查找“C”列的公式以获得此:
|
A |
B |
C |
| 1 |
blue |
flower |
blue |
| 2 |
|
water |
blue |
| 3 |
|
sky |
blue |
| 4 |
green |
grass |
green |
| 5 |
|
frog |
green |
| 6 |
yellow |
lemon |
yellow |
| 7 |
|
sun |
yellow |
我已经尝试过使用INDEX 和MATCH,但我还没有找到要走的路。
奖励:ARRAYFORMULA 的独特公式非常适合我的用例。
【问题讨论】:
标签:
google-sheets
google-sheets-formula
worksheet-function
【解决方案1】:
鉴于您帖子中显示的确切布局和范围,从 Col C 中删除所有内容并将此数组公式放入 C1:
=ArrayFormula(IF(B2:B="",,VLOOKUP(ROW(A:A),FILTER({ROW(A:A),A:A},A:A<>""),2,TRUE)))
这将在虚拟数组中查找 Col B 不为空的行的每个行号,该数组仅包含 Col A 不为空的行号与 Col A 的值配对,并从该列的第二列返回结果大批。因为VLOOKUP 的最后一个参数是TRUE,所以搜索到且不存在于受限虚拟数组中的任何确切行号都将“倒退”到最后被占用的行号。
【解决方案2】:
我猜你正在寻找这个
=ArrayFormula(if(row(A1:A) <= max(if(not(isblank(B1:B)), row(A1:A))),vlookup(row(A1:A),filter({row(A1:A),A1:A},len(A1:A)),2),))
【解决方案3】:
另一种方式
=ArrayFormula(if(B2:B="",,lookup(row(A2:A),row(A2:A)/if(A2:A<>"",1,0),A2:A)))