• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      用EXCEL實現(xiàn)VCF值的自動查找及插值計算

      2013-12-06 06:49:46龔家強
      大眾科技 2013年6期
      關鍵詞:待查中密度值域

      龔家強

      (廣西博士海意信息科技有限公司,廣西 南寧 530028)

      1 前言

      利用EXCEL實現(xiàn)石油及其產(chǎn)品的計量報告輸出以及其中的VCF值的自動查找及插值計算,在用于鑒定工作時,具有如下特點: VCF值的查找計算方便、準確、快速;程序開發(fā)過程不復雜,開發(fā)周期短,無需進行復雜的報表輸出介面設計,界面簡單直觀,便于修改報表格式;體積小巧,免安裝綠色軟件,可以U盤為載體,便于攜帶及數(shù)據(jù)保護和備份;系統(tǒng)崩潰時不會丟失數(shù)據(jù),避免了復雜的數(shù)據(jù)災難恢復過程;使用人員無須專門培訓,易于上手。而且電腦目前普遍都裝有 EXCEL,當所攜帶的電腦或便攜打印機出現(xiàn)軟件或硬件故障時,可以迅速轉換工作電腦,不用重新安裝打印機驅動程序,即可利用現(xiàn)場的其它電腦來完成計算及計量報告輸出工作,不致于延誤工作時間,特別是當船需要搶潮水快速卸貨,或是需要速遣等,對工作時間有一定要求的時候。

      2 算法基本思想

      表1 T60A原油VCF值表節(jié)選表

      注意到表1為一有限二維表格,第一行是20℃下的標準密度值,第一列是溫度值,其余為相應的標準密度值和溫度值所交叉對應的VCF值。溫度值從負20度開始線性遞增,每次遞增值為0.25,到150度結束??疾鞙囟戎档倪f增情況,注意到每一度的溫度值都分為四個值域區(qū)間:xyz.00-xyz.25;xyz.25-xyz.50;xyz.50-xyz.75;xyz.75-xy(z+1).0(以 x、y和z分別代表溫度值的百位數(shù)、十位數(shù)和個位數(shù)),而每一個區(qū)間的端點值即為表中值。因此,只要將取得的待查溫度值與這四個值域區(qū)間的邊界值相比較,就可以確定待查溫度值溫度值落在哪一個值域區(qū)間之內(nèi),再將這一值域區(qū)間兩端的值即表中溫度值查找出來,就完成了溫度值的查找工作。

      同時,密度值從610.0開始等值遞增,遞增值為2,到1090.0結束。與溫度的查找算法同理,查找范圍也為四個值域區(qū)間,把待查密度值所在值域區(qū)間的兩個端點值查找出來。

      當兩個區(qū)間的端點值都找出來之后,即可將其所交叉對應的表中四個VCF值也查找出來,進行插值計算,得到所需的VCF值。這就是算法的基本思想。

      3 程序語句

      3.1 算法中所用到的函數(shù)主要為EXCEL自帶的四個函數(shù):ADDRESS()、INDIRECT()、MATCH()、TRUNC()

      ADDRESS():按照給定的行號和列標,建立文本類型的單元格地址;

      INDIRECT():返回指定單元格中包含的地址字符串所引用的單元格中的數(shù)值;

      MATCH():返回在指定方式下與指定數(shù)值匹配的數(shù)組中元素的相應位置;

      TRUNC():將數(shù)字的小數(shù)部分截去,返回整數(shù)。

      3.2 為算法的八條主要實現(xiàn)語句

      3.2.1 語句一

      ADDRESS(IF((TRUNC(LOOK_TEMP.)+0.25)>LOOK_TEMP.,M ATCH(TRUNC(LOOK_TEMP.),temp._value_range),IF((TRUNC(LOOK_TEMP.)+0.5)>LOOK_TEMP.,MATCH(TRUNC(LOOK_TEMP.)+0.25,temp._value_range),IF((TRUNC(LOOK_TEMP.)+0.75)>LOOK_TEMP.,MATCH(TRUNC(LOOK_TEMP.)+0.5,temp._value_r ange),MATCH(TRUNC(LOOK_TEMP.)+0.75,temp._value_range)))),1))。

      語句實現(xiàn)的功能是,查找小于或等于待查溫度值的表中溫度值的單元格地址。當?shù)玫街邓诘膯卧竦男刑柡土刑栔?,就可使?ADDRESS()函數(shù)得到表中溫度值的單元格地址,然后再用INDIRECT()函數(shù)來返回指定單元格中包含的地址字符串所引用的單元格中的數(shù)值,以進行插值計算。在這里需要說明的是,因為在EXCEL2003中ADDRESS()函數(shù)無法直接嵌套在INDIRECT()函數(shù)之中,所以,對于ADDRESS函數(shù)所得到的單元格地址,還需要用INDIRECT()函數(shù)在另一個單元格中返回數(shù)值。

      語句中的參數(shù) Look_temp為現(xiàn)場取得的待查表溫度值,在EXCEL中使用本語句時,此變量就用錄入的待查找溫度值所在的單元格代替,如A10等。參數(shù)TEMP._VALUE_RANGE指出錄入的溫度值所在的區(qū)域, 例如,若為$A$1∶$A$682,即表示數(shù)據(jù)錄入在工作表中第一列的第一行到第682行之內(nèi),相應溫度值為從-20度到150度。

      本語句嵌套了三層IF條件語句,使用了MATCH函數(shù)的精確匹配查找功能。外層IF語句的作用是,將LOOK_TEMP.取整后,再加上 0.25,即為第一個值域區(qū)間的最大值。如果LOOK_TEMP.大于此最大值,則說明LOOK_TEMP.不在這一值域區(qū)間之中,IF語句邏輯值為假,執(zhí)行嵌套的第二層IF語句,即 IF(…)。否則執(zhí)行第一條語句,即:MATCH(TRUNC(LOOK_TEMP.), TEMP._VALUE_RANGE),得出此值域區(qū)間的最小值,即VCF值表中所顯示的溫度值,xyz.00,在VCF值表中第幾行。在這里,MATCH()函數(shù)就相當于一個循環(huán)語句,從錄入溫度所在列的第一行一直比較到最后一行,直到找到匹配值為止。同理,嵌套的內(nèi)二層 IF語句判斷LOOK_TEMP處于余下的三個值域區(qū)間的哪一個之中。

      需要說明的是,語句中的最后一個數(shù)字“1”,是偏移量。如果VCF二維數(shù)據(jù)值域不錄入在EXCEL工作表的第一列,而是從第N列M行開始錄入的話,那么,因為本語句中MATCH()函數(shù)找出的只是對應于錄入的VCF二維數(shù)據(jù)值域的第一列的相對偏移量,而ADDRESS函數(shù)是居于絕對偏移量,即相對于整個工作表第一列的偏移量來引用參數(shù)的。所以,在這里要把MATCH()函數(shù)得出的相對偏移量轉變?yōu)榻^對偏移量。具體要根據(jù)所錄入的 VCF值域錄入在工作表的哪一列哪一行,來確定偏移量是多少。換句話來說,即在一個大的二維工作表中,所劃分出來的任意位置的一個子二維表格的第一列,相對于整個大的二維表格的第一列,偏移了多少列。

      3.2.2 語句二

      ADDRESS(IF(LOOK_TEMP.>(TRUNC(LOOK_TEMP.)+0.75),M ATCH(TRUNC(LOOK_TEMP.)+1,temp._value_range),IF(LOOK_TEMP.>(TRUNC(LOOK_TEMP.)+0.5),MATCH(TRUNC(LOOK_TEMP.)+0.75,temp._value_range),IF(LOOK_TEMP.>(TRUNC(LOOK_TEMP.)+0.25),MATCH(TRUNC(LOOK_TEMP.)+0.5,temp._value_range),IF(LOOK_TEMP.>(TRUNC(LOOK_TEMP.)),MATCH(TRUN C(LOOK_TEMP.)+0.25,temp._value_range),MATCH(LOOK_TEM P.,temp._value_range))))),1))。

      語句實現(xiàn)的功能是,查找剛好大于或等于待查溫度值的表中溫度值的單元格地址。

      3.2.3 語句三

      ADDRESS(1,IF(TRUNC(LOOK_DENSITY/10)*10=LOOK_DENS ITY,MATCH(TRUNC(LOOK_DENSITY/10)*10,density_value_ra nge),IF((TRUNC(LOOK_DENSITY/10)*10+2)>LOOK_DENSITY,M ATCH(TRUNC(LOOK_DENSITY/10)*10,density_value_range),IF((TRUNC(LOOK_DENSITY/10)*10+4)>LOOK_DENSITY,MATCH(TRUNC(LOOK_DENSITY/10)*10+2,density_value_range),IF((TRUNC(LOOK_DENSITY/10)*10+6)>LOOK_DENSITY,MATCH(TRU NC(LOOK_DENSITY/10)*10+4,density_value_range),IF((TR UNC(LOOK_DENSITY/10)*10+8)>LOOK_DENSITY,MATCH(TRUNC(LOOK_DENSITY/10)*10+6,density_value_range),MATCH(TRU NC(LOOK_DENSITY/10)*10+8,density_value_range)))))))。

      語句實現(xiàn)的功能是,查找剛好小于或等于待查密度值的表中密度值的單元格地址。在密度值查找中,對于密度值是分為五個取值區(qū)間來進行判斷。LOOK_DENSITY為所待查的20攝氏度下的標準密度。

      3.2.4 語句四

      ADDRESS(1,IF(LOOK_DENSITY>TRUNC(LOOK_DENSITY/10)*1 0+8,MATCH(TRUNC(LOOK_DENSITY/10)*10+10,density_value_r ange),IF(LOOK_DENSITY>(TRUNC(LOOK_DENSITY/10)*10+6),MA TCH(TRUNC(LOOK_DENSITY/10)*10+8,density_value_range),I F(LOOK_DENSITY>(TRUNC(LOOK_DENSITY/10)*10+4),MATCH(TRU NC(LOOK_DENSITY/10)*10+6,density_value_range),IF(LOOK_DENSITY>(TRUNC(LOOK_DENSITY/10)*10+2),MATCH(TRUNC(LOOK_DENSITY/10)*10+4,density_value_range),IF(LOOK_DENSITY>(TRUNC(LOOK_DENSITY/10)*10),MATCH(TRUNC(LOOK_DENSITY/10)*10+2,density_value_range),MATCH(TRUNC(LOOK_DENSITY/10)*10,density_value_range)))))))。

      語句實現(xiàn)的功能是,查找剛好大于或等于待查密度值的表中密度值的單元格地址。

      3.2.5 語句五

      ADDRESS(IF((TRUNC(LOOK_TEMP.)+0.25)>LOOK_TEMP.,M ATCH(TRUNC(LOOK_TEMP.),$A$1∶$A$682),IF((TRUNC(LOOK_T EMP.)+0.5)>LOOK_TEMP.,MATCH(TRUNC(LOOK_TEMP.)+0.25,$A$1∶$A$682),IF((TRUNC(LOOK_TEMP.)+0.75)>LOOK_TEMP.,M ATCH(TRUNC(LOOK_TEMP.)+0.5,$A$1∶$A$682),MATCH(TRUNC(LOOK_TEMP.)+0.75,$A$1∶$A$682)))),

      IF(TRUNC(LOOK_DENSITY/10)*10=LOOK_DENSITY,

      MATCH(TRUNC

      (LOOK_DENSITY/10)*10,density_value_range),IF((TRUNC(LOOK_DENSITY/10)*10+2)>LOOK_DENSITY,MATCH(TRUNC(LOOK_DENSITY/10)*10,density_value_range),IF((TRUNC(LOOK_DENSITY/10)*10+4)>LOOK_DENSITY,MATCH(TRUNC(LOOK_DENS ITY/10)*10+2,density_value_range),IF((TRUNC(LOOK_DEN SITY/10)*10+6)>LOOK_DENSITY,MATCH(TRUNC(LOOK_DENSITY/10)*10+4,density_value_range),IF((TRUNC(LOOK_DENSIT Y/10)*10+8)>LOOK_DENSITY,MATCH(TRUNC(LOOK_DENSITY/10)*10+6,density_value_range),MATCH(TRUNC(LOOK_DENSITY/10)*10+8,density_value_range)))))))。

      語句實現(xiàn)的功能是,查找剛好小于或等于待查溫度值的表中值和剛好小于或等于待查的密度值的表中密度值所交叉對應的VCF值的單元格地址。語句中行號的查找語句使用的是語句一中行號的查找語句,列號的查找語句則是語句三中列號的查找語句。

      3.2.6 語句六

      ADDRESS(IF((TRUNC(LOOK_TEMP.)+0.25)>LOOK_TEMP.,M ATCH(TRUNC(LOOK_TEMP.),$A$1∶$A$682),IF((TRUNC(LOOK_T EMP.)+0.5)>LOOK_TEMP.,MATCH(TRUNC(LOOK_TEMP.)+0.25,$A$1∶$A$682),IF((TRUNC(LOOK_TEMP.)+0.75)>LOOK_TEMP.,M ATCH(TRUNC(LOOK_TEMP.)+0.5,$A$1∶$A$682),MATCH(TRUNC(LOOK_TEMP.)+0.75,$A$1∶$A$682)))),

      IF(LOOK_DENSITY>TRUNC(LOOK_DENSITY/10)*10+8,MATCH(TR UNC(LOOK_DENSITY/10)*10+10,density_value_range),IF(L OOK_DENSITY>(TRUNC(LOOK_DENSITY/10)*10+6),MATCH(TRUN C(LOOK_DENSITY/10)*10+8,density_value_range),IF(LOOK_DENSITY>(TRUNC(LOOK_DENSITY/10)*10+4),MATCH(TRUNC(L OOK_DENSITY/10)*10+6,density_value_range),IF(LOOK_DE NSITY>(TRUNC(LOOK_DENSITY/10)*10+2),MATCH(TRUNC(LOOK_DENSITY/10)*10+4,density_value_range),IF(LOOK_DENSI TY>(TRUNC(LOOK_DENSITY/10)*10),MATCH(TRUNC(LOOK_DENS ITY/10)*10+2,density_value_range),MATCH(TRUNC(LOOK_D ENSITY/10)*10,density_value_range)))))))。

      語句實現(xiàn)的功能是,查找剛好小于或等于待查溫度值的表中溫度值和剛好大于或等于待查密度值的表中密度值所交叉對應的VCF值的單元格地址。

      3.2.7 語句七

      ADDRESS(IF(LOOK_TEMP.>(TRUNC(LOOK_TEMP.)+0.75),M ATCH(TRUNC(LOOK_TEMP.)+1,temp._value_range),IF(LOOK_TEMP.>(TRUNC(LOOK_TEMP.)+0.5),MATCH(TRUNC(LOOK_TEMP.)+0.75,temp._value_range),IF(LOOK_TEMP.>(TRUNC(LOOK_TEMP.)+0.25),MATCH(TRUNC(LOOK_TEMP.)+0.5,temp._value_range),IF(LOOK_TEMP.>(TRUNC(LOOK_TEMP.)),MATCH(TRUN C(LOOK_TEMP.)+0.25,temp._value_range),MATCH(LOOK_TEM P.,temp._value_range))))),

      IF(TRUNC(LOOK_DENSITY/10)*10=LOOK_DENSITY,MATCH(TRUN C(LOOK_DENSITY/10)*10,density_value_range),IF((TRUNC(LOOK_DENSITY/10)*10+2)>LOOK_DENSITY,MATCH(TRUNC(LOO K_DENSITY/10)*10,density_value_range),IF((TRUNC(LOOK_DENSITY/10)*10+4)>LOOK_DENSITY,MATCH(TRUNC(LOOK_DEN SITY/10)*10+2,density_value_range),IF((TRUNC(LOOK_DE NSITY/10)*10+6)>LOOK_DENSITY,MATCH(TRUNC(LOOK_DENSIT Y/10)*10+4,density_value_range),IF((TRUNC(LOOK_DENSI TY/10)*10+8)>LOOK_DENSITY,MATCH(TRUNC(LOOK_DENSITY/1 0)*10+6,density_value_range),MATCH(TRUNC(LOOK_DENSIT Y/10)*10+8,density_value_range)))))))。

      語句實現(xiàn)的功能是,查找剛好大于或等于待查溫度值的表中溫度值和剛好小于或等于待查密度值的表中密度值所交叉對應的VCF值的單元格地址。

      3.2.8 語句八

      ADDRESS(IF(LOOK_TEMP.>(TRUNC(LOOK_TEMP.)+0.75),M ATCH(TRUNC(LOOK_TEMP.)+1,temp._value_range),IF(LOOK_TEMP.>(TRUNC(LOOK_TEMP.)+0.5),MATCH(TRUNC(LOOK_TEMP.)+0.75,temp._value_range),IF(LOOK_TEMP.>(TRUNC(LOOK_TEMP.)+0.25),MATCH(TRUNC(LOOK_TEMP.)+0.5,temp._value_range),IF(LOOK_TEMP.>(TRUNC(LOOK_TEMP.)),MATCH(TRUN C(LOOK_TEMP.)+0.25,temp._value_range),MATCH(LOOK_TEM P.,temp._value_range))))),

      IF(LOOK_DENSITY>TRUNC(LOOK_DENSITY/10)*10+8,MATCH(TR UNC(LOOK_DENSITY/10)*10+10,density_value_range),IF(L OOK_DENSITY>(TRUNC(LOOK_DENSITY/10)*10+6),MATCH(TRUN C(LOOK_DENSITY/10)*10+8,density_value_range),IF(LOOK_DENSITY>(TRUNC(LOOK_DENSITY/10)*10+4),MATCH(TRUNC(L OOK_DENSITY/10)*10+6,density_value_range),IF(LOOK_DE NSITY>(TRUNC(LOOK_DENSITY/10)*10+2),MATCH(TRUNC(LOOK_DENSITY/10)*10+4,density_value_range),IF(LOOK_DENSI TY>(TRUNC(LOOK_DENSITY/10)*10),MATCH(TRUNC(LOOK_DENS ITY/10)*10+2,density_value_range),MATCH(TRUNC(LOOK_D ENSITY/10)*10,density_value_range)))))))。

      語句實現(xiàn)的功能是,查找剛好大于或等于待查溫度值的表中溫度值和剛好大于或等于待查密度值的表中密度值所交叉對應的VCF值的單元格地址。

      3.3 查找結果說明

      設測量的的溫度為 37.3度,20攝氏度下標準密度為0.881,則語句一查找到的表中值為37.25,語句2查找到的值為37.50,語句三查找到的值為0.880,語句四查找到的值為0.882,語句五查找到的值為37.25和0.880所對應的VCF值0.9863.同理,語句六、七、八查到的VCF值分別為0.9864、0.9861、0.9862。得到所有的相關值后,即可進行插值計算,得到所需的VCF值。

      又設測量的溫度值和所給定的密度值在表中都可以直接查到,如當溫度值為37.5,密度為0.880時,則語句一、二查到的值為37.5,語句三、四查到的值為0.880,語句五、六、七、八查到的值都為0.9863,也可求得所需要的值。

      3.2僅是為了具體地說明查找過程,語句還可以進一步簡化。請讀者思考。

      4 《油品計量員讀本》查找算法

      對于《油品計量員讀本》中,溫度取較接近值不插值,而密度值及其所對應的VCF值進行插值計算,可以用以下兩語句,來實現(xiàn)較接近待查溫度值的表中溫度值與表中兩個用于插值計算的密度值所交叉對應的VCF值的查找:

      4.1 語句一

      ADDRESS(IF(LOOK_TEMP>(TRUNC(LOOK_TEMP)+(0.75+0.1 25)),MATCH(TRUNC(LOOK_TEMP)+1,temp._value_range),IF(LOOK_TEMP>(TRUNC(LOOK_TEMP)+(0.5+0.125)),MATCH(TRUNC(LOOK_TEMP)+0.75,temp._value_range),IF(LOOK_TEMP>(TR UNC(LOOK_TEMP)+(0.25+0.125)),MATCH(TRUNC(LOOK_TEMP)+0.5,temp._value_range),IF(LOOK_TEMP>(TRUNC(LOOK_TEMP)+0.125),MATCH(TRUNC(LOOK_TEMP)+0.25,temp._value_ran ge),MATCH(TRUNC(LOOK_TEMP),temp._value_range))))),IF((TRUNC(LOOK_DENSITY/10)*10+2)>LOOK_DENSITY,MATCH(TR UNC(LOOK_DENSITY/10)*10,density_value_range),IF((TRU NC(LOOK_DENSITY/10)*10+4)>LOOK_DENSITY,MATCH(TRUNC(L OOK_DENSITY/10)*10+2,density_value_range),IF((TRUNC(LOOK_DENSITY/10)*10+6)>LOOK_DENSITY,MATCH(TRUNC(LOOK_DENSITY/10)*10+4,density_value_range),IF((TRUNC(LOO K_DENSITY/10)*10+8)>LOOK_DENSITY,MATCH(TRUNC(LOOK_DE NSITY/10)*10+6,density_value_range),MATCH(TRUNC(LOOK_DENSITY/10)*10+8,density_value_range))))))。

      即為查找較接近待查溫度值的表中溫度值和剛好小于或等于待查密度值的表中密度值所交叉對應的VCF值的單元格地址。

      4.2 語句二

      ADDRESS(IF(LOOK_TEMP>(TRUNC(LOOK_TEMP)+(0.75+0.1 25)),MATCH(TRUNC(LOOK_TEMP)+1,temp._value_range),IF(LOOK_TEMP>(TRUNC(LOOK_TEMP)+(0.5+0.125)),MATCH(TRUNC(LOOK_TEMP)+0.75,temp._value_range),IF(LOOK_TEMP>(TR UNC(LOOK_TEMP)+(0.25+0.125)),MATCH(TRUNC(LOOK_TEMP)+0.5,temp._value_range),IF(LOOK_TEMP>(TRUNC(LOOK_TEMP)+0.125),MATCH(TRUNC(LOOK_TEMP)+0.25,temp._value_ran ge),MATCH(TRUNC(LOOK_TEMP),temp._value_range))))),IF(LOOK_DENSITY>TRUNC(LOOK_DENSITY/10)*10+8,MATCH(TRUN C(LOOK_DENSITY/10)*10+10,density_value_range),IF(LOO K_DENSITY>(TRUNC(LOOK_DENSITY/10)*10+6),MATCH(TRUNC(LOOK_DENSITY/10)*10+8,density_value_range),IF(LOOK_D ENSITY>(TRUNC(LOOK_DENSITY/10)*10+4),MATCH(TRUNC(LOO K_DENSITY/10)*10+6,density_value_range),IF(LOOK_DENS ITY>(TRUNC(LOOK_DENSITY/10)*10+2),MATCH(TRUNC(LOOK_D ENSITY/10)*10+4,density_value_range),IF(LOOK_DENSITY>(TRUNC(LOOK_DENSITY/10)*10),MATCH(TRUNC(LOOK_DENSIT Y/10)*10+2,density_value_range),MATCH(TRUNC(LOOK_DEN SITY/10)*10,density_value_range)))))))。

      即為查找較接近待查溫度值的表中溫度值和剛好大于或等于待查密度值的表中密度值所交叉對應的VCF值的單元格地址。

      5 GB/T 1885-1998查找算法

      在GB/T 1885-1998標準中,溫度和密度都不插值計算,全都使用較接近值的算法,則只需使用一條語句,來實現(xiàn)較接近待查溫度值和待查密度值的表中溫度值和表中密度值所交叉對應的VCF值的查找:

      ADDRESS(IF(LOOK_TEMP>(TRUNC(LOOK_TEMP)+(0.75+0.1 25)),MATCH(TRUNC(LOOK_TEMP)+1,temp._value_range),IF(LOOK_TEMP>(TRUNC(LOOK_TEMP)+(0.5+0.125)),MATCH(TRUNC(LOOK_TEMP)+0.75,temp._value_range),IF(LOOK_TEMP>(TR UNC(LOOK_TEMP)+(0.25+0.125)),MATCH(TRUNC(LOOK_TEMP)+0.5,temp._value_range),IF(LOOK_TEMP>(TRUNC(LOOK_TEMP)+0.125),MATCH(TRUNC(LOOK_TEMP)+0.25,temp._value_ran ge),MATCH(TRUNC(LOOK_TEMP),temp._value_range))))),IF(LOOK_DENSITY>TRUNC(LOOK_DENSITY/10)*10+9,MATCH(TRUN C(LOOK_DENSITY/10)*10+10,density_value_range),IF(LOO K_DENSITY>(TRUNC(LOOK_DENSITY/10)*10+7),MATCH(TRUNC(LOOK_DENSITY/10)*10+8,density_value_range),IF(LOOK_D ENSITY>(TRUNC(LOOK_DENSITY/10)*10+5),MATCH(TRUNC(LOO K_DENSITY/10)*10+6,density_value_range),IF(LOOK_DENS ITY>(TRUNC(LOOK_DENSITY/10)*10+3),MATCH(TRUNC(LOOK_D ENSITY/10)*10+4,density_value_range),IF(LOOK_DENSITY>(TRUNC(LOOK_DENSITY/10)*10+1),MATCH(TRUNC(LOOK_DENS ITY/10)*10+2,density_value_range),MATCH(TRUNC(LOOK_D ENSITY/10)*10,density_value_range)))))))

      6 結語

      本文中的程序語句均在EXCEL2003下通過。

      在實際應用中,語句仍需要進行改進。對輸入的溫度值和密度值,應進行值域檢查,即對輸入值的有效性進行檢查,同時也對邊界值的情況進行處理。當輸入無效值時,給出提示,以避免無效的計算結果,使程序完善,具有健壯性和穩(wěn)定性。

      因為原油時常來自同一產(chǎn)區(qū),所以其品質基本上變化不大。因此只需將常用的VCF值域輸入EXCEL表格中。僅需輸入較少的數(shù)據(jù)量,就能達到預期的目的。而對于需用到的未錄入的VCF數(shù)據(jù),也可現(xiàn)場輸入到二維表格中,就可利用程序進行相應的查找插值計算,減少了計算的工作量及強度,提高了工作效率。

      本文語句實現(xiàn)了溫度、密度及溫度和密度所交叉對應的VCF值都進行插值計算,僅密度和密度所對應的VCF值進行插值計算,無插值計算三種查找算法,并且僅在EXCEL的工作界面中實現(xiàn)查找并得到所需的結果,應用相對簡單。對于同一個VCF數(shù)據(jù)表,可以根據(jù)實際情況的需要來選用不同的算法,以適合工作之需要。而且本文語句具有很強通用性,稍加修改,即可建立一個空白的查找模板。使用時只要將表格數(shù)據(jù)錄入,即可完成任意二維表格數(shù)據(jù)的查找及插值計算工作,基本上可以應用于鑒定工作中所用到的大多數(shù)表格。

      [1] 石油計量表原油部分(GB/T 1885-1998專用).

      [2] GB/T 19779-2005,石油和液體石油產(chǎn)品油量計算靜態(tài)計量.

      [3] John Walkenbach.Excel 2003 Formulas.Wiley Publishing,Inc.2004.

      [4] 嚴蔚敏,吳偉民.數(shù)據(jù)結構[M].清華大學出版社,1997.

      [5] 譚浩強.C語言程序設計[M].清華大學出版社,2000.

      [6] 肖素琴.油品計量員讀本[M].中國石化出版社,2001.

      猜你喜歡
      待查中密度值域
      夜宿弘法寺
      南風·中旬(2021年11期)2021-12-19 11:38:13
      函數(shù)的值域與最值
      《思考心電圖之176》
      某血站8種酶聯(lián)免疫吸附試驗檢測試劑檢測結果待查情況調(diào)查
      多角度求解函數(shù)值域
      值域求解——一個“少”字了得
      表面密度賦予中密度纖維板(MDF)強度
      破解函數(shù)值域的十招
      探究低醛中密度纖維板的生產(chǎn)方法
      西部論叢(2017年10期)2017-02-23 06:31:36
      中密度纖維板全球產(chǎn)能過億
      交城县| 上高县| 阳新县| 临邑县| 区。| 咸丰县| 兴海县| 曲阜市| 萨嘎县| 遵义县| 谷城县| 鸡东县| 民勤县| 格尔木市| 河池市| 洞头县| 阳朔县| 历史| 海兴县| 清河县| 民勤县| 莱芜市| 广饶县| 射阳县| 宣化县| 临洮县| 海南省| 安仁县| 南汇区| 城固县| 漯河市| 澎湖县| 什邡市| 永定县| 昌吉市| 抚州市| 武鸣县| 东乡| 莱阳市| 陆良县| 兴和县|