我有一個包含幾列的表格,我想根據幾個單元格的內容選擇一行。所以這是該MATCH函式在多個標準上的應用。這使用此處解釋的提示https://ask.libreoffice.org/t/multiple-column-match-and-seek-output-value/41966。
一個示例表:
A B C
1 foo 10 FOO10
2 foo 20 FOO20
3 bar 10 BAR10
4 bar 20 BAR20
5 bar 10 BAR10
所以,如果我使用公式
=index(C:C,match(1,(A:A="bar")*(B:B=20),0))
它完美無瑕,我得到BAR20了預期。
但是,如果我只想獲取 index,我想我可以通過簡單地洗掉index()函式來做到這一點。但是,當我這樣做時,我會#N/A從 Google 表格中獲取資訊。
公式
=match(1,(A:A="bar")*(B:B=20),0)
回傳#N/A,錯誤訊息Did not find value '1' in MATCH evaluation。
這是為什么?它為什么在index()函式中作業,但不是獨立的?我希望如果一個引數回傳#N/A,該函式也將回傳#N/A。
另外,作為附帶問題,我們如何解決這個問題?
奇怪的是,同樣的例子也適用于 Libre Office Calc。
uj5u.com熱心網友回復:
它不起作用的原因是因為它(A:A="bar")*(B:B=20)是一個陣列公式,這意味著為了正常作業,它必須包裝在一個啟用陣列的函式中。
如果您執行以下操作,您將看到公式回傳預期結果:
=ArrayFormula(match(1,(A:A="bar")*(B:B=20),0))
一些啟用陣列的函式是:
- ARRAYFORMULA(此功能正是為此而設計的)
- INDEX(這是
INDEX(your_formula)起作用的原因) - 種類
- 排序
- 篩選
- 總產品
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/526785.html
標籤:功能谷歌表格
下一篇:如何將兩個串列合并到一個字典中?
