因為工作的關(guān)系,,大部分程序員都比較少接觸Excel,,一旦遇到和Excel相關(guān)的問題可能第一反應(yīng)是用code解決。其實,,如果數(shù)據(jù)已經(jīng)在Excel里面,,是可以很容易用Excel本身的功能解決的。另外,,如果熟悉Excel的公式結(jié)構(gòu),,有些場景下還可以借助Excel來批量創(chuàng)建程序代碼。本文用幾個案例來向大家展示這方面的技巧,。 ExcelHome創(chuàng)始人,、站長,曾參與策劃和編寫了幾十本暢銷Office技術(shù)圖書,。同時也是一名優(yōu)秀的技術(shù)顧問和培訓(xùn)講師,,有豐富的授課經(jīng)驗。
Excel 這個電子表格軟件的主力用戶群體是財務(wù),、HR 以及各部門需要處理和分析數(shù)據(jù)的信息工作者,。因為工作的關(guān)系,,我和表哥表姐表弟表妹打的交道很多。于是我經(jīng)常聽到他們的吐槽:“我就想把二維表轉(zhuǎn)一維表,,我BF居然說要等他有空敲代碼才行”在他們的心里,,專業(yè)CS出身的程序員們應(yīng)該是通吃所有軟件問題的,包括且不限于Excel,。但這明顯屬于誤解,,因為大部分程序員平時工作中與 Excel 很少有交集,不會 VLOOKUP而且凡事都想擼代碼解決是正?,F(xiàn)象,。程序員是信息時代的王者,所謂沒有什么事情是一行代碼搞不定的,,如果不行,,那就再寫幾行。我也有很多程序猿和攻城獅朋友,,偶爾會幫他們解決 Excel 方面的小問題,。我一直有一個觀點,任何人這輩子都一定會遇上 Excel,,提前稍微了解一下,,點亮這棵技能樹,是很有價值的,。況且,,對于有深厚功底的程序員來說,學(xué) Excel 的速度肯定是普通人的10倍,。下面,,我就用幾個例子來分享一下,哪怕是程序員也可以借助 Excel 提高拔劍的速度,!
比如業(yè)務(wù)部門冷不丁發(fā)給你一張表格,,讓你在后臺把這些數(shù)據(jù)處理一下。 這是個臨時任務(wù),,你需要寫一條SQL語句,,無論是 UPDATE 還是 DELETE,都需要條件語句,,這幾十個數(shù)據(jù)怎么快速寫成條件語句呢,? 先說重點:如果數(shù)據(jù)已經(jīng)在 Excel 里面了,你要堅信 Excel 就是最有辦法最省力的工具,。 我們可以在B2寫入公式: 雙擊B2右下角的填充柄,,自動復(fù)制公式到整列。 最后直接復(fù)制B25單元格,,粘貼到你的SQL編輯器里面,,稍微編輯一下,,就大功告成啦。 '&’在 Excel 公式里用于拼接字符串,、數(shù)值或單元格,。在本例的拼接過程中,使用的是單引號,。如果在某些編程語言中需要拼接出雙引號的效果,可以用下面的公式: SQL 連續(xù)處理多張數(shù)據(jù)表
有些數(shù)據(jù)庫因為使用了分表技術(shù),,同一類數(shù)據(jù)按既定規(guī)則保存在了某一張數(shù)據(jù)表中,,如果偶爾需要按條件處理一個數(shù)據(jù),就必須遍歷所有的表,。 比如,,現(xiàn)在有device_list_0到device_list_9 都用于存儲設(shè)備相關(guān)信息,如果臨時要刪除device_no為78262170fa33 的記錄,,事先不知道這條記錄具體在哪張表,,一個簡單的方法就是直接每張表都刪除一次。此時,,可以借助 Excel 批量構(gòu)造 SQL 語句,。 打開Excel,在A1單元格寫入公式: = "'device_list_"&ROW()-1&"'"
在B1單元格寫入公式: ="delete from "&A1&" where 'device_no' = '78262170fa33';"
這樣,,第一條語句就完成了,。 選中A1:B1,往下復(fù)制公式到 A10:B10,就得到了全部所需的 SQL 語句,! 利用這樣的拼接思路,,可以方便的完成各種程序語言里面的“重復(fù)代碼”,大家可以根據(jù)實際情況靈活處理,。
在開發(fā)和運維過程中,,不可避免的要面對重復(fù)數(shù)據(jù),雖然始作俑者不是自己,,但需要加班處理的多半是自己,。 比如業(yè)務(wù)部門提供的數(shù)據(jù)表中,device_no 可能有重復(fù)的,,這些重復(fù)還不能簡單的處理掉,,得先標記出來再人肉核對。 重復(fù)一遍重要的話:如果數(shù)據(jù)已經(jīng)在 Excel 里面了,,你要堅信 Excel 就是最有辦法最省力的工具,。 面對這種情況,只需要先選中數(shù)據(jù)表的任意單元格,,然后單擊【開始】選項卡下面的【條件格式】→【突出顯示單元格規(guī)則】→【重復(fù)值】就能解決,。嗯,,然后所有的重復(fù)的值就被標記出來了。 現(xiàn)在右擊B2,,也就是第一個被標記的單元格,,在彈出的快捷菜單中單擊【篩選】→【按所選單元格的顏色篩選】。 這樣就篩選出了所有的重復(fù)記錄,。 此外,,Excel還提供了“刪除重復(fù)項”功能可以直接刪除重復(fù)記錄,也可以使用 COUNTIF 函數(shù)排除第1次之后的重復(fù)項或者最后一次之前的重復(fù)項,,都非常方便,。
在Excel中,使用“分列”功能或者文本函數(shù)可以將字符串的內(nèi)容分拆到多個單元格中,。從Excel 2013開始,,更智能的“快速填充”功能出現(xiàn)了。 以下表為例,。 如果希望從B,、C列中將主型號和發(fā)布年份分拆到D、E列中,,可以這么操作: 在D2單元格中輸入FSA,,選中D3單元格,按<Ctrl+E>組合鍵,; 在E3單元格中輸入2016,,選中E3單元格,按<Ctrl+E>組合鍵,; 需要的信息瞬間就拆分出來了,。 假設(shè)新型號的命名規(guī)則是城市編碼-主型號-年,可以在F2單元格中輸入025-FSA-2016,,然后選中F3單元格,,按<Ctrl+E>組合鍵。 注意,,剛才的分拆操作對于計算新型號不是必須的,。這篇文章主要介紹了如何借助 Excel 快速處理一些數(shù)據(jù)問題,幫助程序員提升Excel 數(shù)據(jù)能力,。用程序員的話來說,,能用現(xiàn)成的輪子就用現(xiàn)成的,沒用必要重新造輪子,。既然數(shù)據(jù)在 Excel 里面,,而 Excel 已經(jīng)有了無數(shù)的輪子,我們?yōu)槭裁床挥媚兀?/span> 每個人遇到問題都會優(yōu)先使用自己最熟悉的工具來處理,因為這樣風(fēng)險最低,,效率最高,。但實際上每種工具都有自己的優(yōu)勢和適用場景,所以我們不要有局限性,,甚至有“鄙視”情節(jié),,多了解一些工具可以提升我們的面對各種問題的綜合應(yīng)對能力。 以上內(nèi)容基于我個人的經(jīng)驗,,對大家算是拋磚引玉吧,。我相信也有很多程序員的 Excel 水平比我厲害的多,希望你們也來分享一些秘技,! 微軟最有價值專家(MVP)
微軟最有價值專家是微軟公司授予第三方技術(shù)專業(yè)人士的一個全球獎項,。28年來,世界各地的技術(shù)社區(qū)領(lǐng)導(dǎo)者,,因其在線上和線下的技術(shù)社區(qū)中分享專業(yè)知識和經(jīng)驗而獲得此獎項。
MVP是經(jīng)過嚴格挑選的專家團隊,,他們代表著技術(shù)最精湛且最具智慧的人,,是對社區(qū)投入極大的熱情并樂于助人的專家。MVP致力于通過演講,、論壇問答,、創(chuàng)建網(wǎng)站、撰寫博客,、分享視頻,、開源項目、組織會議等方式來幫助他人,,并最大程度地幫助微軟技術(shù)社區(qū)用戶使用Microsoft技術(shù),。
|