簡體   English   中英

Excel Index-Match中不可預測的輸出

[英]Unpredictable output from Excel Index-Match

我正在嘗試做一個應該是一個足夠簡單的任務:找到一個匹配某個值的數組中最后一個單元格的索引。

我正在使用MATCH-INDEX函數組合,它給出了不正確的,不一致的結果。 我無法弄清楚這個問題。

在這個例子中,我使用的值為1或-1的數組,並試圖找到數組中最后1的索引。

索引匹配結果的照片

我的理解是(並使用評估公式工具確認),INDEX(A1:F1 = 1,0)應該返回一個數組

{FALSE,TRUE,FALSE,TRUE,FALSE,FALSE}

當為這個索引數組提供MATCH時,為什么MATCH(TRUE,...)不給出4的結果? MATCH在數組中向后工作,應返回最后一個匹配的索引,即第四個位置的TRUE值。

但是這里的代碼給出了6的結果。

更糟糕的是,如果我使用相同的代碼但改變輸入INDEX的數組,結果是不一致的。 當我將數組值更改為1或-1時,有時公式結果會更改,有時則不會更改,我無法弄清楚原因。

下面,僅更改第3個數組值會將公式的結果從4更改為6.什么是開始?!

索引匹配結果的照片(第2陣列配置)

似乎匹配只找到第一個,但不是最后一個。

但我有一個可能的解決方案,我會采用以下方式:

期望:你的價值在H4和H27之間,你尋找的價值是“39”

1:找到所有匹配單元格的rownum

I4 - > I27:IF(H4 = 39;行(H4); -1)

2:在I4中找到最大rownum - > I27

MAX(....)

3:減去第一個單元格的rownum(從零開始的索引)

MAX(....) - 行(H4)

4:只在一個單元格中輸入矩陣函數(CONTROL SHIFT ENTER使得CURLY BRACKETS)

{= MAX(IF($ H $ 4:$ H $ 27 = 39; ROW(H4:H27); - 1)) - ROW(H4)}

聽起來很奇怪,但有效:)

索引不會返回一個數組,而是一個數字,如名稱所示,該元素的“INDEX”,它可以滿足您的問題。 使用最后一個參數,您可以決定它是否必須精確,或者可能是下一個較小或下一個較大的值(最后兩個選項僅適用於已排序的輸入)

在特殊情況下(現在使用列而不是行),您可以在我的上一個答案或矩陣函數中編寫一個以上的步驟來解決您的問題:

{= MAX(IF(A1:F1 = 1; COL(A1:F1); - 1))}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM