构建一个动态数组,列出值为FALSE的行所对应的表头和行号
问题
尝试创建一个公式(或一个VBA宏),使其生成在“期望数组输出”下的数组。对于第3 行中每个包含一个 FALSE 的字段,我希望它返回该字段中相关的 Loan ID,即 = FALSE。我已经尝试了各种公式,包括下面这个,它们都在报错。若有建议,万分感谢。
数据集
| R/C | A | B | C | D | E | F | G |
|---|---|---|---|---|---|---|---|
| 1 | 2 | 1 | - | 1 | 1 | ||
| 2 | FALSE | FALSE | TRUE | FALSE | FALSE | ||
| 3 | Check | Loan ID | Source | Loan Number | Primary Servicer | Servicing Fee Percentage | Servicing Fee Flat Dollar |
| 4 | FALSE | M000001 | TRUE | TRUE | TRUE | TRUE | FALSE |
| 5 | FALSE | M000002 | FALSE | TRUE | TRUE | TRUE | TRUE |
| 6 | FALSE | M000003 | TRUE | FALSE | TRUE | TRUE | TRUE |
| 7 | FALSE | M000004 | TRUE | TRUE | TRUE | FALSE | TRUE |
| 8 | TRUE | M000005 | TRUE | TRUE | TRUE | TRUE | TRUE |
| 9 | TRUE | M000006 | TRUE | TRUE | TRUE | TRUE | TRUE |
| 10 | TRUE | M000007 | TRUE | TRUE | TRUE | TRUE | TRUE |
| 11 | FALSE | M000008 | FALSE | TRUE | TRUE | TRUE | TRUE |
| 12 | TRUE | M000009 | TRUE | TRUE | TRUE | TRUE | TRUE |
| 13 | TRUE | M000010 | TRUE | TRUE | TRUE | TRUE | TRUE |
期望数组输出
| 字段 | 贷款编号 |
|---|---|
| 来源 | M000002 |
| 来源 | M000008 |
| 贷款编号 | M000003 |
| 服务费百分比 | M000004 |
| 服务费固定金额 | M000001 |
测试方法
返回 #CALC! 错误
excel
=LET(
data, C5:H14,
headers, C4:H4,
active, C3:H3,
loans, B5:B14,
filteredCols, FILTER(SEQUENCE(1, COLUMNS(data)), active=TRUE),
results,
REDUCE("", filteredCols,
LAMBDA(acc,col,
VSTACK(acc,
FILTER(
CHOOSE({1,2}, INDEX(headers, col), loans),
INDEX(data,,col)=FALSE
)
)
)
),
DROP(results,1)
)
解决方案
如果你有M365,可以使用如下方法:
=LET(L,LAMBDA(x,TOCOL(IFS((C2:G2+C4:G13)=0,x),2,1)),HSTACK(L(C3:G3),L(B4:B13)))
定义的 L 函数会检查 C2:G2 与 C4:G13 的组合是否为 FALSE(FALSE + FALSE = 0)。如果是,则返回它的输入 x;如果不是,则返回一个错误值并忽略它。
在这种情况下,我们返回表头 C3:G3 和ID B4:B13
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。