我承認(rèn)我是一個很懶的人,,其實我們經(jīng)常會用到EXCEL,或者遇到實際上使用EXCEL就可以解決的問題而不知道的時候,。 整個硬件設(shè)計其實是以一張BOM表來展開的,,在前期設(shè)計的時候,初步估計系統(tǒng)之后就必須要得到一份初步的BOM LIST,,通過這個BOM來取得成本信息,,通過這個成本信息來報價。 項目拿下后,BOM則是前期的重點,,通常在修改或者升級或者返工的時候都要對這個玩意搞非常多的時間,。 BOM表格個公司的格式不太一樣,不過有幾個關(guān)鍵元素還是要提一下:
元件號:我們都會對每個元件編號,,這個號是通過原理圖軟件直接生成的,,因此這一項信息一般都是對的,除非你在原理圖里面不取名字或者怎么樣的,,一般都可以通過錯誤檢測出來,。 元件描述:一般大一點的公司都會對元件進行建庫的工作,這是一個無聊而且容易出錯的工作,,幾乎每個公司都會出現(xiàn)庫里面的信息出現(xiàn)錯誤的情況,,這是不可避免的。 元件的供應(yīng)商編號:一般我們選定一個廠家的器件,,該器件都會有一個號,。一般比較大的公司一類元件都會有幾個供應(yīng)商,因此這一內(nèi)容一般不會在庫信息內(nèi)出現(xiàn),。 公司元件編號:公司一般會對所使用的器件進行編號,,比如電阻1KOHM,0603,,1%的電阻給一個編號,,這個電阻可以從KOA買,也可以從ROHM買,,或者是MURATA買,,因此一個公司元件編號可以有若干個元件供應(yīng)商編號。 好,,現(xiàn)在的問題已經(jīng)很明顯了,,通過軟件生成的BOM表只含有元件號,元件描述,,公司元件編號,。而且每個項都是分立的,如果有10個電阻都是1KOHM,,0603,,1%,那么就有10行,。我們需要做大量的工作來把相同的項合并,,我們需要核對公司的元件數(shù)據(jù)庫里面的公司元件編號和元件描述是否符合。 以上的工作,,如果用人的眼睛來做,,我想沒個幾天做不完,,而且費時費力。當(dāng)然你也可以建議公司去買套軟件,,但是我相信一般來說是不現(xiàn)實的。
第一個事情是把一些重合的片子過濾出來,。 這個采取的EXCEL的菜單高級篩選(Advvanced Filter)命令:
接下來要統(tǒng)計元件的數(shù)量: COUNTIF可以用來計算給定區(qū)域內(nèi)滿足特定條件的單元格的數(shù)目,。語法形式為COUNTIF(range,criteria)。其中Range為需要計算其中滿足條件的單元格數(shù)目的單元格區(qū)域,。Criteria確定哪些單 元格將被計算在內(nèi)的條件,,其形式可以為數(shù)字、表達(dá)式或文本,。
采用邏輯判斷:=IF(A3=H3,CONCATENATE(C2,",",B3),C2)得到組合標(biāo)號
其中函數(shù)為:CONCATENATE:將若干個文字項合并至一個文字項中,。語法形式 為:CONCATENATE(text1,text2……)
下面為描述部分,我們以電阻為例,,要檢驗標(biāo)號和封裝和組織,,精度及電壓。首先做一個給定的表格,,描述器件的,。
通過符合函數(shù)可得精度,封裝和電壓: =INDEX(C:C,MATCH(CONCATENATE(LEFT(I3,5),RIGHT(I3,1)),B:B,0)) =INDEX(C:C,MATCH(MID(I3,6,2),B:B,0)) LEFT函數(shù):LEFT(text,num_chars)其中Text是包含要提取字符的文本串,。Num_chars指定要由 LEFT 所提取的字符數(shù),。 MID函數(shù):MID(text,start_num,num_chars)其中Text是包含要提取字符的文本串。Start_num是文本中要提取的第一個字符的位置,。 RIGHT函數(shù):RIGHT(text,num_chars)其中Text是包含要提取字符的文本串,。Num_chars指定希望 RIGHT 提取的字符數(shù)。 MATCH函數(shù)有兩方面的功能,,兩種操作都返回一個位置值,。一是確定區(qū)域中的一個值在一列中的準(zhǔn)確位置,這種精確的查詢與列表是否排序無關(guān),。 二是確定一個給定值位于已排序列表中的位置,,這不需要準(zhǔn)確的匹配.語法結(jié)構(gòu)為:MATCH(lookup_value,lookup_array,match_type) lookup_value為要搜索的值。lookup_array:要查找的區(qū)域(必須是一行或一列),。 match_type:匹配形式,,有0、1和-1三種選擇:"0"表示一個準(zhǔn)確的搜索,。"1"表示搜索小于或等于查換值的最大值,,查找區(qū)域必須為升序排列。"-1"表示搜索大于或等于查找值的最小值,,查找區(qū)域必須降序排開,。以上的搜索,如果沒有匹配值,則返回#N/A,。 INDEX用于返回表格或區(qū)域中的數(shù)值或?qū)?shù)值的引用,。 函數(shù) INDEX() 有兩種形式:數(shù)組和引用。數(shù)組形式通常返回數(shù)值或數(shù)值數(shù)組,;引用形式通常返回引用,。 INDEX(array,row_num,column_num) 返回數(shù)組中指定單元格或單元格數(shù)組的數(shù)值。 Array為單元格區(qū)域或數(shù)組常數(shù),。Row_num為數(shù)組中某行的行序號,,函數(shù)從該行返回數(shù)值。Column_num為數(shù)組中某列的列序號,,函數(shù)從該列返回數(shù)值,。需注意的是Row_num 和 column_num 必須指向 array 中的某一單元格,否則,,函數(shù) INDEX 返回錯誤值 #REF!,。
通過以上的EXCEL的招數(shù),我們可以搞定所有的問題,,OK整理到這里了,。
|