2014-09-11 71 views
0

我有一個奇怪的LibreOffice Calc問題。我在「冰與火之歌」系列中出版了五本書中的章節。這裏是一個傳真:LibreOffice MATCH對某些單元格範圍產生NA結果,對其他單元格產生錯誤結果

 A      B 
1 | Book     | Chapter 
----+----------------------+------- 
2 | A Game of Thrones | 0 
3 | A Game of Thrones | 1 
... 
75 | A Game of Thrones | 73 
76 | A Clash of Kings  | 0 
77 | A Clash of Kings  | 1 
... 
147 | A Storm of Swords | 0 
... 
230 | A Feast for Crows | 0 
... 
276 | A Feast for Crows | 46 
277 | A Dance with Dragons | 0 
... 
350 | A Dance with Dragons | 73 

我使用的是MATCHOFFSET公式找到每本書的最後一章,首先MATCH荷蘭國際集團的最後一行在書列中的值,然後讓從價值章節專欄。所以,找到權力的遊戲的最後一章:

=OFFSET("A Game of Thrones", MATCH(A4, A2:A350, 1), 0) 

那麼這將輸出73

這適用於第一個三本書。烏鴉盛宴和龍舞不起作用。當我運行MATCH公式:

=MATCH("A Feast for Crows", A2:A350, 1) 

它應該返回276,這是最後一排與價值「A羣鴉的盛宴」的數量,但它返回#N/A。但是,當我使用範圍A75:A350時,它返回72。如果我使用A76:A350,則返回71等等,輸出隨着下限增加而下降。直到我將範圍更改爲A110:A350,其中值變爲167(再次下降,與範圍的下限成反比)。搜索條件是正確的,沒有前導或尾隨空格或錯誤數據詞。我正在使用LibreOffice Calc 4.3.1.2。

MATCH的結果讓我感到困惑;我不知道爲什麼它不能正確輸出。你能提出這裏出了什麼問題嗎?

回答

0

你試過=MATCH("A Feast for Crows", A2:A350, 0)? 1將產生緊密匹配,0產生精確匹配。

+0

我想用在最後的1個參數搜索按降序排列的列表。爲了找到最後一個例子,我需要這個功能,例如,在這一列中的「烏鴉盛宴」。這樣我就知道最後一章是什麼號碼。 – Lou 2014-09-11 11:23:46

+0

'匹配(lookup_value,lookup_array,match_type)' – DTS 2014-09-11 11:25:47

+0

是的,我試過這個。它向我提供了該值的* first *實例之上的行。因此,如果我正在尋找烏鴉盛宴,它會給我一個「劍風暴」中最後一個值的行號。 – Lou 2014-09-11 11:25:48

0

您不能使用MATCH來實現您的要求。 MATCH只能匹配搜索項的第一個匹配與匹配類型0完全匹配,或匹配類型1匹配SearchRegion中小於或等於searchitem的最大值的位置。但是,因此searchregion被假定爲按升序排序。不是這種情況。

參見:https://wiki.openoffice.org/wiki/Documentation/How_Tos/Calc:_MATCH_function

你可以使用下面的數組公式中C1:

{=INDEX($B$1:$B$1000;MAX(IF($A$1:$A$1000=A2;ROW($A$1:$A$1000))))} 

輸入公式而不C1大括號,然後按回車。結果應該是0.現在打開函數嚮導(fx)並選擇[x]數組複選框,然後單擊[確定]。現在結果應該是73你的數據。

現在複製並粘貼C1到C2:Cn。做複製和粘貼。不要用填充柄填充,因爲那時你展開數組公式,因爲它是和A2將不會更改爲A3,A4 ......

在C1的公式執行以下操作: 獲取該行的MAX數字在A1:A1000 = A2(「權力的遊戲」),並在B1:B1000中索引此行數。所以它從B75獲得73。

問候

阿克塞爾

相關問題