我一直工作在一個項目中的數據,我有一個嵌套大 IF(COUNTIF(),,*)公式在Excel中幫助我分類CSV文件。VBA腳本添加公式列,如果下一列有該行
我試圖做到這一點,當CSV導入(到單元格B2)A列將填充公式。我有麻煩得到的公式複製到1單元格,因爲不管我多麼努力,它不適合一行。該公式正在檢查3個不同單元的內容,可能有23個以上的輸出給你一個想法。
反正有:
- 得到一個VBA腳本將公式複製的(我已經錄製了 宏甚至未修改宏爆發)
- 使宏觀ONLY填寫儘可能多包含儘可能信息的行或
- 在VBA中進行整個計算並相應地填充單元格。
下面是我在每一行使用的公式,其中可能有幾千個CSV文件。
=IF(COUNTIF(BZ2,"8075 *research*"),
IF(COUNTIF(BR2, "780 B*"),
IF(COUNTIF(AU2,"*ground*"),"51",
IF(COUNTIF(AU2,"*next*"),"52",
IF(COUNTIF(AU2,"*2*"),"53",
IF(COUNTIF(AU2,"*3*"),"54",
IF(COUNTIF(AU2,"*charge*"),"546","Unclassified"
)
)
)
)
),
IF(COUNTIF(AU2,"*ground*"),"25430",
IF(COUNTIF(AU2,"*next*"),"25431",
IF(COUNTIF(AU2,"*2*"),"25432",
IF(COUNTIF(AU2,"*3*"),"25433",
IF(COUNTIF(AU2,"*charge*"),"2546","Unclassified"
)
)
)
)
)
),
IF(COUNTIF(BZ2, "780 B*"),
IF(COUNTIF(BR2,"8075 *research*"),
IF(COUNTIF(AU2,"*ground*"),"251",
IF(COUNTIF(AU2,"*next*"),"252",
IF(COUNTIF(AU2,"*2*"),"253",
IF(COUNTIF(AU2,"*3*"),"254",
IF(COUNTIF(AU2,"*charge*"),"2546","Unclassified"
)
)
)
)
),
IF(COUNTIF(AU2,"*ground*"),"15430",
IF(COUNTIF(AU2,"*next*"),"15431",
IF(COUNTIF(AU2,"*2*"),"15432",
IF(COUNTIF(AU2,"*3*"),"15433",
IF(COUNTIF(AU2,"*charge*"),"1546","Unclassified"
)
)
)
)
)
),
IF(COUNTIF(BR2, "780 B*"),"540",
IF(COUNTIF(BR2,"8075 *research*"),"2540", "Unclassified"
)
)
)
)
我很困惑,但對於'3)在VBA中進行整個計算並相應地填充單元格「,請參閱使用UDF的http://www.cpearson.com/excel/writingfunctionsinvba.aspx – dcromley
您是否正在使用'COUNTIF()'只用來檢查某個關鍵字是否存在?或者我看錯了你的公式? –
是的,COUNTIF()僅用於檢查keword是否存在(不區分大小寫)併爲原始IF語句設置True/Flase標誌。 @dcromley謝謝你的教程鏈接,它比我找到的大多數都要好!我最大的問題仍然是我不確定如何使它僅在X行上運行,其中X由導入的CSV確定。根據情況顯然可以運行數千或數十萬個,額外的行並不是完全需要的。 – Kandirma