我正试图用INDEX(MATCH())她在工作中继承的 Excel 帮助一位朋友,但这让我很难过。人们可以帮助我更好地了解它内部发生了什么吗?这是格式:
=INDEX(
'[Spreadsheet2.xlsx]TabOfInterest'!$B$B
,
MATCH(
1
,
(
(D34='[Spreadsheet2.xlsx]TabOfInterest'!$M:$M)
*
(F34='[Spreadsheet2.xlsx]TabOfInterest'!$P:$P)
*
(K34='[Spreadsheet2.xlsx]TabOfInterest'!$Y:$Y)
)
,
0
)
,
1
)
Run Code Online (Sandbox Code Playgroud)
我可以看到,如果数字“1”(似乎代表“TRUE”,在这里)出现在某种 TRUEs/1s & FALSEs/0s 数组中的任何位置,这些数组是通过将其他布尔值填充的 AND 组合在一起构建的数组(但是这应该在 Excel 中工作......),然后 INDEX 将选择导致“1”出现在其中的任何混乱的“行号” ,并且 INDEX 将返回的值电子表格 2 在该行和 B 列交叉处的单元格。
但我不知道 MATCH 的第二个参数发生了什么。
我试图玩弄一个空白的电子表格,甚至无法推断出什么=(SingleCell=RangeOfCells) 呢-或为此事,有什么=RangeOfCells呢-返回值似乎是取决于其单元格的公式键入到(它的行从数据偏移它正在检查),并且$在这些公式中的行号之前添加没有任何区别。
关于引用范围以及在单元格和范围之间进行“相等”比较的基本原理是什么,我是否需要知道才能更好地了解此公式中发生的事情以及最终INDEX(MATCH())要查找的内容?
到底是什么在这阵?
(D34='[Spreadsheet2.xlsx]TabOfInterest'!$M:$M)
*
(F34='[Spreadsheet2.xlsx]TabOfInterest'!$P:$P)
*
(K34='[Spreadsheet2.xlsx]TabOfInterest'!$Y:$Y)
Run Code Online (Sandbox Code Playgroud)
另外,如果我不得不猜测,我想我会说整体功能是这样做的,但我无法解释原因让我感到困扰:
如果有一行Spreadsheet2,其中所有三个条件都为真: