Excel VBA - 迴圈 IF( & VLOOKUP( 以部分字串開頭

Excel VBA - 迴圈 IF( & VLOOKUP( 以部分字串開頭

美好的一天,一個令人驚嘆的社區,

我正在嘗試開發一個巨集來循環兩個數組。以下是如何設定資料的範例:

原始資料可在 C4:C1500 中找到

$數據在D4:D1500中找到

部分字串值(最初從原始資料中提取)位於 E4:E13 中。

原始資料將組織成的類別位於 F4:F13 中

以下是我拼湊而成的公式,作為概念證明。

=IF(VLOOKUP(" * "&E4&" * ",$C$4:$C$1500,1,0)=ERROR.TYPE(#N/A),"研究",VLOOKUP(" * "&E4&" * ", $E$4:$F$13,2,0))

這次只能運行一行,並且只運行到短列表的底部(無需編寫大量嵌套語句)。我試圖透過原始資料循環部分和類別值,然後按類別和 $ 分析資料。

範例:工作表 1

C 列(C4:C1500) D 列(D4:D1500) E 欄(E4:E13) F 列(F4:F13)
3 原始數據 $ 部分數據 類別
4 210324銷售.鮑勃帕爾.UT 785.54 鮑勃·帕爾 銷售量
5 ABCDEF.210324.SalesHelenParr.TN 214.46 海倫·帕爾 銷售量
6 DashParr.WY.RR.210324 238.56 達什帕爾 研究
7 Mgmt.NY.JackJackParr.210324 1,200.00 傑克傑克帕爾 管理

表2:

行數 B 欄(B4:B13) C 列(C4:C13)
3 類別 總計 $
4 銷售量 1,000.00
5 研究 238.56
6 管理 1,200.00

從那裡我將再做一次 VLOOKUP( 到 SUM( Sheet2 中找到的費用)。

我願意接受所有關於清理測試公式的建議,並且感謝 VBA 的所有支持。

謝謝。

理查德·沃

答案1

我認為沒有必要使用 VBA。如果您有 Excel 365,則可以組合 FILTER、CHOOSECOLS 和 SUM 函數來獲得所需的結果。調整以下公式:

=SUM(CHOOSECOLS(FILTER(Sheet1!$C$2:$F$5,Sheet1!$F$2:$F$5=Sheet2!$B3),{2}))

將公式向下填充以填充其他單元格。

相關內容