我遇到一種情況,用戶將提供一組逗號分隔的數字並填寫單獨的查找成本清單。一旦使用者輸入值,一個單獨的儲存格將傳回該值的總價值,如下所示:
[使用者輸入值][附加成本回傳值]
成本查找單元格
- 100 美元
- 200 美元
- 300 美元
- 400美元等
使用者輸入的範例可能是: [1, 4 ] 應該回傳 [$500]
我目前陷入了讀取未定義數量的逗號的困境。它可以沒有輸入且沒有逗號,應該返回 $0,或者它可以是由逗號分隔的 200 個不同值(或像上面的範例一樣的逗號和空格)。
我的思考過程是採用逗號分隔值並將每個數字分解為一個新單元格,然後使用 VLOOKUP 獲取成本金額,並將其全部加起來以獲得返回值。這一切都會奏效如果我可以得到一些公式來分解由逗號分隔的未定義數量的值。就像是:
這甚至可以透過公式實現嗎?除了填寫查找儲存格並輸入他們需要的數字之外,使用者不必執行任何操作。
答案1
此陣列公式適用於CO#
IF 字串的數字,那麼您必須刪除--
公式中的 。
將其放入 D2 中:
=IF(LEN($E$1)-LEN(SUBSTITUTE($E$1,",",""))+1>=ROW($A1),INDEX(A:A,MATCH(--TRIM(MID(SUBSTITUTE($E$1,",",REPT( " ",99)),(ROW($A1)-1)*99+1,99)),$A:$A,0)),IF(ROW($A1)=LEN($E$1)-LEN(SUBSTITUTE($E$1,",",""))+2,IF(COLUMN(A$1) = 1, "$",SUM(INDEX($B:$B,MATCH(N(IF(1,--TRIM(MID(SUBSTITUTE($E$1,",",REPT( " ",99)),(ROW(INDEX($AAB:$AAB,1):INDEX($AAB:$AAB,LEN($E$1)-LEN(SUBSTITUTE($E$1,",",""))+1))-1)*99+1,99)))),$A:$A,0)))),""))
使用 Ctrl-Shift-Enter(而不是 Enter)確認。然後複製一列並向下複製足以處理所有需要的行。
根據它在列表中的位置,各種 IF 語句,它將分割字串並傳回 MATCH 的全部或全部部分,MATCH 再傳回 INDEX 的全部或一個相對位置。然後它要么對所有部分求和,要么返回正確的單一值。
它將根據需要自動調整大小。