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