{eval=Array;=+count(Array);}
首先,我對(duì)這個(gè)問題持否定意見。
我十多年前曾經(jīng)用VBA+Access編寫過一個(gè)100多人使用的生產(chǎn)管理系統(tǒng),帶很多UI界面。可能有些人感覺這樣水平算比較高了吧,但我自己確實(shí)沒這種感覺。
一般講高手是一個(gè)相對(duì)的概念,是不是高手應(yīng)該取決于對(duì)比對(duì)象。但我覺得使用會(huì)不會(huì)VBA來判斷Excel水平,這對(duì)比本身就不是公平的。類似于兩個(gè)人打游戲,其中一個(gè)會(huì)用外掛,我們顯然不能用會(huì)不會(huì)外掛來評(píng)判他打游戲水平高。
對(duì)于普通程序員,學(xué)習(xí)VBA難度很小,極短的時(shí)間就可以上手,但他很可能Excel很多函數(shù)都還用不好。事實(shí)上,一個(gè)人會(huì)了VBA,很可能遇到問題首先去想VBA怎么實(shí)現(xiàn),反而降低了探索Excel自身功能的動(dòng)力。對(duì)于不會(huì)VBA的使用者來講,更有動(dòng)力去挖掘Excel自身的各種功能。
我的意見僅針對(duì)這個(gè)問題本身,并非勸大家不要學(xué)習(xí)VBA。Excel功能無論多強(qiáng)大,但仍有靠自身無法實(shí)現(xiàn)的功能。熟練掌握Excel后,再有VBA作輔助,生產(chǎn)力會(huì)更上一個(gè)臺(tái)階。
以上都是個(gè)人意見,如果對(duì)我回答有興趣或異議,歡迎評(píng)論指正。
不一定哦!
這就像廣大非IT學(xué)習(xí)編程一樣,一定要編程才能提高工作效率嗎?其實(shí),現(xiàn)在的作業(yè)工具(軟件)已經(jīng)足夠友好,使用門檻已經(jīng)很低了。不用編程,一樣可以高效作業(yè)。比如,快捷鍵加持,公式加持,熟練度加持等,Excel用起來,也能飛起來。
1、傳統(tǒng)的菜單到現(xiàn)在的Ribbon功能區(qū),按下ALT鍵,就能顯示他們的快捷鍵。熟練使用這些快捷鍵,左手鍵盤,右手鼠標(biāo),可以將Office玩得出神入化。筆者想起了以前講遙感的老師,整個(gè)講義板書,都是在Word上,邊講邊演示,那速度沒得說,很多同學(xué)去聽課,都是去欣賞他Word的各種騷操作的。其實(shí)基本工具箱里也沒啥,就是大家常見的圖形和特殊字符,但是在這位老師手上,就像會(huì)變魔術(shù)一樣,感覺是直接召喚到指定位置上的,人家不用任何公式編輯器,就能將各種復(fù)雜的公式,弄得漂漂亮亮的。
2、不僅是Word,Excel里的各種操作,比如單元格填充,改變字體和背景色,加邊框,常見函數(shù)等,都有對(duì)應(yīng)的快捷方式。只需要經(jīng)常去用,自然熟能生巧,就像大家練習(xí)打字的指法那樣。具體,就不詳細(xì)介紹了,有很多類似的回答,大家可以去搜索學(xué)習(xí)。
與數(shù)據(jù)打交道比較多的金融、證券、財(cái)經(jīng)、審計(jì)等行業(yè),素來流行表哥表姐的稱呼,這些表哥表姐不僅僅是指他們?nèi)粘9ぷ餍枰?jīng)常與表格軟件(如Excel、WPS)打交道,更是暗指他們是一個(gè)能夠熟練使用公式的群體。曾有不少網(wǎng)友說,因?yàn)樽约耗軌?u>熟練使用公式,在單位里獲得了大神的待遇。
公式,的確配得上這樣的禮遇。因?yàn)椋娇梢院芎?jiǎn)單,也可以很復(fù)雜。比如簡(jiǎn)單的=Left("ABC",1),復(fù)雜的如:
1、公式匹配操作界面(單元格),雙擊編輯,回車結(jié)果,所見即所得,操作簡(jiǎn)單,門檻較低。在處理大量數(shù)據(jù)時(shí),或多或少都會(huì)依仗公式,比如橫向縱向求和,行列業(yè)務(wù)數(shù)據(jù)的計(jì)算等。
公式,不像快捷方式那樣固定和死板,公式能夠在一定程度上給予使用者靈活性。不同的公式,就像不同的積木,相互組合總能搭建出一個(gè)有效的計(jì)算模型。從分類上講,不僅涵蓋了財(cái)務(wù)、數(shù)學(xué)、統(tǒng)計(jì)等重度表格用戶,更是覆蓋了日期、文本、邏輯、信息、數(shù)據(jù)庫(kù)等通用功能。利用通用和特定行業(yè)公式,幾乎能應(yīng)對(duì)表格中各種計(jì)算問題。
功能豐富的公式,讓公式使用者有足夠的模型構(gòu)建材料,其中邏輯、信息、查找和引用公式,不僅服務(wù)于單元格,更服務(wù)于公式本身,成為公式組合的粘合劑,使得公式可以處理非常復(fù)雜的計(jì)算需求(當(dāng)然公式也會(huì)變得非常復(fù)雜)。
2、公式不僅是Excel內(nèi)置命令的調(diào)用出口,更是表現(xiàn)得越來越像腳本語(yǔ)言。筆者在《
VBA是腳本語(yǔ)言嗎?
》《什么是腳本語(yǔ)言?為何VBA不算腳本語(yǔ)言?》中就提到,Excel中宏和公式,才是真正的腳本語(yǔ)言,他們才是離不開Office的大家閨秀,而VBA不是!公式就像是在調(diào)用函數(shù)一樣,而公式名就相當(dāng)于函數(shù)名。如果大家寫過VBA自定義公式,那么就更能體會(huì)這句話。公式中的IF函數(shù),就類似于VBA中的IF語(yǔ)句一樣,可以構(gòu)建分支公式。不僅如此,公式中還可以構(gòu)建迭代遞歸(自己調(diào)用自己),比如規(guī)劃求解。在公式編輯欄中,使用F9就可以對(duì)公式進(jìn)行調(diào)試。當(dāng)編寫好公式時(shí),回車就可以執(zhí)行,相當(dāng)于將公式腳本提交給Excel解釋執(zhí)行。如此看來,編寫公式像不像在寫腳本呢?
筆者曾在《會(huì)寫Excel公式,算編程嗎?》里提到,會(huì)寫Excel公式,也算編程。公式也算編程?一度遭到很多網(wǎng)友的嘲諷。其實(shí),OOP(面向?qū)ο螅┲螅殖催^一段時(shí)間函數(shù)式編程,很多人推崇備至。仔細(xì)想想,Excel的公式,不就是函數(shù)式編程的最早實(shí)踐么?不就是公式嵌套么?這個(gè)跟現(xiàn)在很流行的輕(低)代碼,機(jī)器寫代碼概念一樣,Excel中錄制宏,不早就在實(shí)踐機(jī)器寫代碼了么?其實(shí)很多東西,對(duì)于非職業(yè)IT們,不必舍近求遠(yuǎn)。
如果說早期(2021年前)的Excel公式,符合腳本語(yǔ)言的定義(編寫->執(zhí)行,中間壓縮了編譯和鏈接環(huán)節(jié)),大家或許沒什么爭(zhēng)論。但是,要將其視為一門編程語(yǔ)言,大家還是很難接受的。首先,一般的腳本語(yǔ)言功能有限,僅能執(zhí)行簡(jiǎn)單的自動(dòng)化任務(wù),多用于輔助場(chǎng)景而并非開發(fā)場(chǎng)景。其次,一般的腳本語(yǔ)言并非都是圖靈完備的,而常見的開發(fā)語(yǔ)言卻幾乎都是圖靈完備的。最后,公式?jīng)]法定義變量,支持的數(shù)據(jù)類型有限(數(shù)字、字符串和布爾值)。
Excel公式很難滿足圖靈測(cè)試,這就意味著并非所有計(jì)算問題都可以通過公式解決,而只能尋求VBA的彌補(bǔ)。這是很多高級(jí)公式玩家,到后面都或多或少轉(zhuǎn)向VBA的原因。Excel公式,雖然可以借助外在手段,實(shí)現(xiàn)自己調(diào)用自己,但公式本身卻難以實(shí)現(xiàn)自己調(diào)用自己。另外公式本身也不能自己擴(kuò)展自己,她僅是有限功能的映射。因此,Excel公式在業(yè)界,很難被認(rèn)可為是一門開發(fā)語(yǔ)言。
但是,事情卻在最近有了轉(zhuǎn)機(jī),LAMBDA機(jī)制的引入,讓Excel公式具備了圖靈完備性,因此現(xiàn)在的Excel公式,真正的是一門開發(fā)語(yǔ)言了。讓我們開看看是怎么回事吧:
1、微軟聲稱,Office自1980年發(fā)布以來,Excel 改變了人們組織、分析和可視化數(shù)據(jù)的方式,為每天使用它的數(shù)百萬人提供了決策依據(jù)。其中,Excel公式承擔(dān)著非常關(guān)鍵的角色,用戶使用規(guī)模比世界上所有 C、C++、C#、Java 和 Python 程序員的總和還要多一個(gè)數(shù)量級(jí)。
2、因此,微軟認(rèn)為是時(shí)候?qū)xcel公式升級(jí)為一門成熟的編程語(yǔ)言了。2019年ACM SIGPLAN編程語(yǔ)言原理研討會(huì),宣布了重大進(jìn)展:一是,豐富Excel公式數(shù)據(jù)類型,不再局限于文本和數(shù)字,并允許單元格包含流記錄,包括鏈接到外部數(shù)據(jù)實(shí)體。二是,動(dòng)態(tài)數(shù)組允許普通公式計(jì)算溢出到相鄰單元格。
3、2020年12月,推出LAMBDA機(jī)制,允許用Excel的公式語(yǔ)言編寫新函數(shù),這些新定義的函數(shù)可以調(diào)用其他LAMBDA定義的函數(shù),任意深度,甚至遞歸。也就是說,有了LAMBDA,Excel公式就變成了圖靈完備的,可以勝任任何計(jì)算問題。
4、在函數(shù)式編程中,LAMBDA本身就是一種高度表達(dá)的編程結(jié)構(gòu),一個(gè)LAMBDA可以是另一個(gè) LAMBDA或其結(jié)果的參數(shù),完全可以進(jìn)行柯里化。因此,Excel公式,一躍成為函數(shù)式編程的典范,可稱之為公式語(yǔ)言。所以,編寫Excel公式,就是在編程了哦。
如果,前面的介紹顯得抽象空洞,那么來看下官方的實(shí)例吧:
1、計(jì)算直角三角形的斜邊長(zhǎng)度,可以是這樣=LAMBDA(X,Y,SQRT(X*X+Y*Y)),也可以是這樣=LAMBDA(X,Y,LET(XS,X*X,YS,Y*Y,SQRT(XS+YS)))。該函數(shù)采用名為X和Y的兩個(gè)參數(shù),將X*X的值綁定到名稱XS,將Y*Y的值綁定到Y(jié)S,并返回SQRT( XS+YS)作為其結(jié)果。
2、遞歸反轉(zhuǎn)字符串,這在以前超出了Excel內(nèi)置公式,只能使用VB/VBA或JavaScript在公式語(yǔ)言之外編寫。但現(xiàn)在不必了,下例中將REVERSE定義為遞歸LAMBDA,它利用幾個(gè)輔助函數(shù)(HEAD和TAIL)分別計(jì)算第一個(gè)字符和除第一個(gè)字符以外的所有字符。
3、定義階乘函數(shù)。在以往的傳統(tǒng)公式中,名稱具有非常廣闊的應(yīng)用場(chǎng)景,在使用傳統(tǒng)宏,數(shù)據(jù)有效性(下拉選項(xiàng)),條件格式等領(lǐng)域,都有著名稱的身影。在LAMBDA中,名稱在簡(jiǎn)化表達(dá)和精簡(jiǎn)邏輯上仍然具有強(qiáng)大的用途。比如一個(gè)復(fù)雜的LAMBDA,往往具有繁瑣的嵌套細(xì)節(jié),如果使用名稱來代替,就會(huì)清爽很多。上例1中的公式,用名稱定義為aa,則可以用aa(x,y)來調(diào)用該公式,這樣就無需在使用LAMBDA公式時(shí)重復(fù)整個(gè)公式。
即使不依賴遞歸定義的名稱,公式語(yǔ)言也是圖靈完備的,因?yàn)槲覀兛梢允褂媒?jīng)典的按值調(diào)用對(duì)遞歸函數(shù)定義進(jìn)行編碼。比如下例中的階乘函數(shù):
是不是擁有圖靈完備的公式,就可以遠(yuǎn)離VBA了呢?當(dāng)然,答案也是否定的。
雖然公式的所見即所得的使用模式廣受歡迎,具有良好的用戶基礎(chǔ),是公式的優(yōu)點(diǎn)。但復(fù)雜的嵌套公式,在可讀性上仍然存在很多問題。因此,復(fù)雜公式讓普通人難以掌握,最終淪落為少數(shù)極客的玩物。就前述的LAMBDA公式而言,很顯然目前的編輯框,是遠(yuǎn)遠(yuǎn)不夠的,它更需要1個(gè)專業(yè)的編輯器和調(diào)試環(huán)境,而目前并未配備。
其次,LAMBDA公式畢竟是2021年才推出的東西,需要在最新版上才能體驗(yàn)。而大部分Excel用戶不一定都升級(jí)到了最新版,也就是說絕大部分Excel用戶仍然不具備使用圖靈完備公式的條件。這就需要VBA等第三方開發(fā)工具來彌補(bǔ)公式的某些缺陷。
最后,LAMBDA公式仍然和Excel的UI深度捆綁,即便圖靈完備,也是一款高度定制化的腳本語(yǔ)言。在可移植性、封裝性和性能等若干方面,仍然沒法和VBA等第三方獨(dú)立開發(fā)工具相媲美。因此,在特定應(yīng)用場(chǎng)景,仍然離不開VBA這樣的編程工具。
1、了解Excel的功能種類,了解Excel可以做什么,不可以做什么
2、熟悉各種功能的手工操作
3、熟悉各種快捷方式,增加手工操作的手速
4、了解熟悉公式的類別和作用,熟練使用快捷鍵進(jìn)行應(yīng)用
5、深刻理解公式的優(yōu)缺點(diǎn),知道如何在使用過程中調(diào)優(yōu)
6、對(duì)公式的不足,知道有哪些替代手段
7、從編程角度看待公式
8、進(jìn)入業(yè)余編程領(lǐng)域,適度改造Office的使用方式,實(shí)現(xiàn)低烈度的定制化
9、磨練多年,有了編程的基本概念,擇機(jī)進(jìn)入專業(yè)編程領(lǐng)域,實(shí)現(xiàn)高烈度的定制化
正如筆者在《明比閱歷淺,暗拼體力衰,指下講武德,碼上笑春風(fēng)》中所說,非IT并不一定需要懂編程,這不是一個(gè)必選項(xiàng),而是一個(gè)進(jìn)化的可選項(xiàng)。熟悉成品軟件的使用方法,一樣可以高效作業(yè)。既然是非IT,那寫代碼就不是吃飯的事,而是加菜的事。所以非IT對(duì)自己的IT追求要定位清晰,那就是"錦上添花",最終達(dá)到"無心插柳柳成蔭"。
讓業(yè)務(wù)問題來驅(qū)動(dòng)IT學(xué)習(xí),讓業(yè)務(wù)需求來決定IT技能的涉入深度,是經(jīng)驗(yàn)證非常有效的。非IT掌握編程與否,以及到哪種程度,要不要將自己打造成復(fù)合型人才,就要看自己的進(jìn)取決心在哪里了。總之,搭上車,從里面看外面,那將是別人看不到的風(fēng)景。
歡迎關(guān)注BtOfficer(收藏、點(diǎn)贊、關(guān)注+轉(zhuǎn)發(fā)),更多精彩仍在繼續(xù)哦(專欄文章將更系統(tǒng),更全面),有嚴(yán)肅而枯燥的技術(shù),也有輕松的嘮嗑,更有現(xiàn)成工具等你來拿,期待你的加入!剛開始接觸vba是因?yàn)閑xcel內(nèi)置的函數(shù)以及各種東西已經(jīng)解決不了我的需求。所以拋開vba必要與否,我認(rèn)為當(dāng)excel函數(shù)已經(jīng)無法滿足你的需求,一定需要錄制宏或者編輯vba的時(shí)候,這個(gè)時(shí)候vba就是必學(xué)的。除非你可以告訴老板,這個(gè)東西我不干了,你想咋地?
比如當(dāng)我們碰到如下的需求時(shí),真的無法再手動(dòng)了。
需求:某電商平臺(tái)招募了三方的代銷公司,約有320個(gè)公司,每個(gè)月根據(jù)銷售情況與供應(yīng)商結(jié)算貨款。在只能使用excel沒有開發(fā)資源的情況下,我們要做到,求和匯總供應(yīng)商當(dāng)月每款產(chǎn)品的銷售額,貨款,并附上原表數(shù)據(jù)。且有固定的格式。每個(gè)供應(yīng)商一個(gè)表。
在沒有erp的情況下,多帶帶復(fù)制粘貼新建表300余次我想可能就離瘋了不久了。
但是用vba,開始跑程序,一杯咖啡的時(shí)間都不用,數(shù)據(jù)就全做好了。
以下是我用vba做的一個(gè)小工具,開發(fā)給我發(fā)了原始訂單數(shù)據(jù)之后,放入制定的文件夾,點(diǎn)擊導(dǎo)出或批量導(dǎo)出,就可以很方便的和他人對(duì)接了。
ps:這邊沒有給出時(shí)間的選項(xiàng),因?yàn)槟J(rèn)本月統(tǒng)計(jì)上月訂單。
雖然VBA的功能很強(qiáng)大,但沒人敢說精通吧,學(xué)了點(diǎn)皮毛,那不叫精通,那叫會(huì)使用,而對(duì)于大部分沒有IT技術(shù)基礎(chǔ)的excel平民來講,連學(xué)會(huì)基本的皮毛用法也只能望洋興嘆。
現(xiàn)在我要告訴你,學(xué)習(xí)Excel,并非精通VBA才是高手。
通過一款新興的國(guó)產(chǎn)無代碼開發(fā)平臺(tái),即使你記不住多如牛毛的excel函數(shù)公式,也可以成為excel界的精英。
這是怎么一回事兒?請(qǐng)聽我娓娓道來。
這款新型的國(guó)產(chǎn)無代碼開發(fā)平臺(tái)叫云表企業(yè)應(yīng)用平臺(tái)。
它的操作界面和excel長(zhǎng)得很像,使用方法也和excel如出一轍,即拖拉拽。
但需要注意的是,云表平臺(tái)有自己的獨(dú)立核心引擎,也不依賴于excel,開發(fā)管理軟件,有自己的一套開發(fā)邏輯。
在云表平臺(tái)這里,你的業(yè)務(wù)邏輯越嚴(yán)謹(jǐn),業(yè)務(wù)知識(shí)越深厚,越有可能成為宗師級(jí)別的軟件開發(fā)者。
事實(shí)上,已有大牛通過云表平臺(tái)克隆了與金蝶K3功能完全一致的系統(tǒng)。
通過云表平臺(tái)開發(fā)出來的WMS、ERP、MES、OA、進(jìn)銷存、供應(yīng)鏈協(xié)同等管理軟件,功能是可以隨需而改的,完全支持二次開發(fā)。
如此一來,系統(tǒng)便能隨著企業(yè)的業(yè)務(wù)發(fā)展而成長(zhǎng)。
日常工作中,用excel解決不了的事情,都可以交給它。
比如數(shù)據(jù)分析、數(shù)據(jù)透視等復(fù)雜的數(shù)據(jù)運(yùn)算,消息推送,鬧鐘提醒,流程審批,權(quán)限控制,工作流,多人協(xié)同,小程序,網(wǎng)站,API,外接數(shù)據(jù)源,報(bào)表模板自定義打印,條形碼生成,與金蝶、用友、釘釘、企業(yè)微信、SAP、浪潮、電子秤、地磅、PDA、GPS等外部系統(tǒng)進(jìn)行對(duì)接,生成移動(dòng)端app......
免費(fèi)版本為5并發(fā),40模板。
像ucloud、中冶、中鐵、恒逸石化、云南小松等世界500強(qiáng)企業(yè)都在用它,中小型企業(yè)和個(gè)人使用者就更多啦!
免費(fèi)的軟件獲取方式,在此奉上:
方法一:
1.我們app搜索“云表平臺(tái)”。
2.進(jìn)入之后,在右上角三條杠處,找到“登錄”。(或者進(jìn)去后直接點(diǎn)擊“免費(fèi)注冊(cè)”)
3.信息填報(bào)完畢,即可在“管理控制臺(tái)”免費(fèi)獲取。
方法二:
點(diǎn)擊我的頭像,進(jìn)入個(gè)人主頁(yè)后,在下方找到“免費(fèi)下載”。
贈(zèng)人玫瑰,手有余香。如果能夠幫助到您,確實(shí)是一件值得開心的事情呢。那么,你有信心成為excel高手嗎?期待!
我只知道學(xué)了vba的,也不一定是高手,但是你既然是高手,vba都不懂的話,你說你是高手,能讓人信服么?是必要條件,而不是充分條件。
我覺得VBA多是解決一些重復(fù)性和復(fù)雜性工作的問題,如果處理的數(shù)據(jù)量不多而且處理沒有特別要求的話,真沒必要寫代碼,寫個(gè)代碼花的時(shí)間反而比較多,當(dāng)今羅剛君老師開發(fā)的e靈插件,已經(jīng)可以解決不少國(guó)內(nèi)用戶的問題,再者高版本的office本身已經(jīng)很強(qiáng)大了,在一定程度上會(huì)減少VBA使用頻率,這是對(duì)于大部分用戶來說,當(dāng)然考慮到各個(gè)人在實(shí)際工作中總會(huì)遇到這樣那樣的問題,能寫VBA當(dāng)然更好。考慮到時(shí)間成本,使用頻率等的原因,如果遇到麻煩問題不多的話,也可以付費(fèi)讓人代寫的。
我們常聽說Excel高手,很少聽到VBA高手。
VBA的確非常強(qiáng)大,但它是依附Excel而存在的。
其實(shí)Excel本身內(nèi)置的功能已非常強(qiáng)大了,如果能用Excel解決的問題,就沒有必要搬到VBA里去做,將簡(jiǎn)單的問題復(fù)雜化了。
真正的高手,是會(huì)盡量發(fā)揮Excel自身的威力的。
對(duì)于批量計(jì)算,批量分析,如果不會(huì)vba,你至少是個(gè)瘸子。用過vba的人為什么總想用它,就是因?yàn)閲L到了甜頭。對(duì)于科學(xué)計(jì)算,在excel已經(jīng)很強(qiáng)大的基礎(chǔ)上再加上vba,真是如虎添翼,我感覺可以完全取代以前的fortran語(yǔ)言,甚至是vb。實(shí)用、并能用它解決具體問題,才是王道!
是不是高手那么重要嗎?
Excel是一個(gè)工具,用工具解決工作中的問題。不同工作在使用Excel時(shí)需要的功能差別是很大的。有的只是統(tǒng)計(jì)下信息,打印出來存檔,這種你只需要會(huì)排版就可以了公式都不需要。沒必要強(qiáng)行拔高,工作用不到的功能,即使當(dāng)時(shí)學(xué)會(huì)了,過后也會(huì)忘。
有的工作專門處理數(shù)據(jù),數(shù)據(jù)量大,規(guī)則復(fù)雜。這個(gè)就可能用到公式,VBA ,PowerQuery 等等復(fù)雜的工具。
能夠完美 高效地解決工作中的問題,就是高手。獲取報(bào)酬的是工作,而不是Excel。
如果還沒有參加工作,可以針對(duì)未來工作的方向,學(xué)習(xí)Excel,真正工作的時(shí)候,重新學(xué)習(xí)會(huì)快很多。
如果已經(jīng)參加工作,針對(duì)自己的工作學(xué)習(xí)Excel,不要求高求全,已解決實(shí)際工作問題為導(dǎo)向。
10
回答0
回答0
回答10
回答10
回答0
回答0
回答1
回答7
回答0
回答