我有一個設備資產和屬性列表,它是來自資料庫的原始資料轉儲。在設備狀態(如運作、待機等)或油位等屬性中,它還包括標題和占位符等內容作為單獨的記錄行。這就是我在數據方面所做的工作。
我想對這些資料執行的操作是根據其他條件中的部分文字行選擇該信息,然後用該資訊填入另一個工作表。這是我正在檢查的單元格中包含的內容的範例。
"\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\BU-1002\P-1866A"
我要檢查的是該文字行的“DE-OILING D”部分。這可以包括數百筆記錄,並且僅提取包含部分文字的記錄,我將不會提取我不需要的其他數百筆記錄。
現在我希望這可以透過函數實現。我知道我可以使用語句計算該資料清單中這些記錄的數量COUNTSIF
(這個公式對我適用「=COUNTIF('DBASE SHEET'!B:B,A4)」)。所以我知道它可以被檢測到,但我一生都無法弄清楚如何通過檢查“De-Oiling D”文本作為條件參數來提取其他數據字段,然後根據該標準。
我已經嘗試過index()
,,indirect()
而且vlookup()
它要么是完全不同的東西,要么可能是這些功能的組合。不管怎樣,我似乎無法讓公式發揮作用。
現在還有另一個問題。一旦我偵測到我想要移至新工作表的所述記錄,我希望能夠建立新資料的列表,但其中沒有一大堆空白行。
記錄樣本用作|
細胞分離器:
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING C\P-1370 | NULL |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING C\P-1370 | RUNNING STATUS |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING C\P-1370 | OIL LEVEL |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING C\P-1370 | SUCTION PRESSURE|
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1470 | NULL |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1470 | RUNNING STATUS |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1470 | OIL LEVEL |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1570 | NULL |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1570 | RUNNING STATUS |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1570 | OIL LEVEL |
我想要的輸出如下,沒有空格或任何類似的東西:
|DE-OILING C | P-1370 | RUNNING STATUS |
|DE-OILING C | P-1370 | OIL LEVEL |
|DE-OILING C | P-1370 | SUCTION PRESSURE|
|DE-OILING D | P-1470 | RUNNING STATUS |
|DE-OILING D | P-1470 | OIL LEVEL |
|DE-OILING D | P-1570 | RUNNING STATUS |
|DE-OILING D | P-1570 | OIL LEVEL |
答案1
考慮 COUNTIFS() 語句,您的思路是正確的。像比較數字一樣對待文字字串,使用 > 和 < 限定符來檢查每個字串是否以您要尋找的部分開頭。
=COUNTIFS('DBASE SHEET'!B:B,">"&A4,'DBASE SHEET'!B:B,"<"&A5)
其中 A4 包含您的
"\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D"
並且A5包含
"\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING E"
如果您需要動態公式來自動填入A5,請嘗試
=LEFT(A4,LEN(A4)-1)&CHAR(CODE(RIGHT(A4,1))+1)