2017-09-28 53 views
0

我有數據列表,我需要投入基礎上的描述不同的帳戶,但我無法弄清楚如何自動把正確的代碼英寸Excel中查找列表中的多個值

在圖片,column A有交易類型,如OSPX224,OSPX229等。然後是這些交易類型中的每個交易的列表和每種類型的收費總額。我想根據該部分的OSPX號碼自動輸入每個黃色單元格中的數字。例如,D1402應該是OSPX223進入的帳戶,D1419應該是OSPX224進入的帳戶。

我可以在不同的選項卡上創建參考列表,其中包含OSPX號碼和每個號碼的帳號。

每個交易清單是不同的長度,所以有時OSPX號碼是收費總額以上的行,有時它是3頁以上。交易數量也隨每個報告而變化。

有沒有辦法做到這一點? Example

由唐皮特的答案是非常有幫助的,正是我所要求的,但現在我遇到了一個新問題。在整個數據的隨機點有標題部分。如示例2所示,「收費總額」之後的行是1,而不是下一個ospx數字,這意味着綠色列不起作用。關於如何在費用總計行而不是下一行後找到下一個ospx數的任何想法?

此外,有沒有什麼辦法可以有一個「0」或沒有在列d,而不是「#N/A」

Example 2

回答

0

如果模式保持不變,新的範圍開始在合計行之後,可以用兩個附加行和Index()完成此操作。 E列將標記總計,Column A並計算列的開頭的每個外觀。 Column F將返回相應的OPSX數字,該數字是前一個Total行下面的單元格中的值,而不管它們之間有多少行。以前的 。最後,您可以使用Index(Match())返回相應的帳戶。看照片。彩色單元格包含可在行內複製的公式。您需要在頂部添加一個總計行(此處爲1400),並在Row E中輸入起始值(例如1;灰色單元格)。

enter image description here

公式:

D1418 =INDEX($J$6:$J$10,MATCH(F20,$I$6:$I$10,0)) 
E1416 =IF(ISERROR(FIND("Total",A1416)),"",COUNT($E$1400:E1415)+1) 
F1414 =IFERROR(INDEX($A$1400:A1414,MATCH(E1414-1,$E$1400:E1414,0)+1),"") 

編輯: 關於標題:有沒有總是費用總額和所需OSPX數之間的2行? OSPX號碼總是有7個字符?然後你可以使用這個公式來獲得OSPX:=if(A1457="Charge Total"; left(A1444;7);"")Left()將從文本字符串中提取n個字符,從左邊開始。

關於#N/A:您可以像我在綠色公式中那樣使用iferrror()來掩蓋錯誤。請注意,如果發生意外事件,屏蔽錯誤可能會導致錯誤結果。

+0

不幸的是,每種類型的交易數量每個月都在變化 – Ellie

+0

據瞭解,我相應地更新了答案。 –

+0

謝謝,這正是我所尋找的,但現在我遇到了一個新問題。添加到原始帖子的附加信息。 – Ellie