在下面的公式中,#Value!回傳錯誤。
=FILTER(FIND(";"&AS4756:AS4762&{6,7},AG4756),ISNUMBER(FIND(";"&AS4756:AS4762&{6,7},AG4756)))
ag4756 在哪里8034000;Y8033343543543;Y;38918;BS7 9XL;9;Male;N;N;N
和 AS4756:AS4762 是
BS
NP
SN
GL
BA
CF
TA
當我選擇評估公式時,它為字串 BS7 回傳數字 31,為所有其他人回傳錯誤。我試圖從結果中過濾掉錯誤,所以我只得到不是錯誤的結果。它還正確地為 BS7 回傳 TRUE,而為所有其他的回傳 false。但是下一步會導致錯誤。任何人都可以幫忙嗎?
編輯:我想回傳以 BS7 開頭的子字串的位置。或BS6,或NP6,或NP7,等等。
uj5u.com熱心網友回復:
好的,希望以下內容對您有所幫助;讓我們假設資料(垂直){BS;NP;SN;GL;BA;CF;TA}在A1:A7,查找字串在B1. 然后,您將連接第二個(水平)陣列{6,7},該陣列將構成以下矩陣:

現在在B1using中找到這些值FIND(";"&A1:A7&{6,7},C1)將導致:

下一步是收集數值。但是,對于第二個引數,您提供了一個 7*2矩陣,而不是一維垂直或水平值陣列。因此FILTER()將在該步驟出錯,回傳“#VALUE!”!即便如此,如果您嘗試使用MMULT()技巧來正確檢索此陣列,您仍然需要處理您試圖從第一個引數中過濾出充滿錯誤的矩陣的事實。因此,我已經展示了如何從一個相對簡單的公式中獲取位置,該公式也可以處理錯誤:
=MAX(IFERROR(FIND(";"&A1:A7&{6,7},B1),""))
要獲得正確的子字串,請使用:
=MID(B1,MAX(IFERROR(FIND(";"&A1:A7&{6,7},B1) 1,"")),3)
現在這給我們留下了您希望回傳的更多潛在子字串的可能性。如果是這種情況,請在評論中告訴我。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/452976.html
上一篇:如何知道組合框是否有專案?
下一篇:用熊貓讀取加密檔案
