第四章 數(shù)據(jù)處理
上次我們了解了數(shù)據(jù)處理第一步數(shù)據(jù)清洗疮薇,這次我們進(jìn)入數(shù)據(jù)加工
對(duì)于經(jīng)過數(shù)據(jù)分析后的數(shù)據(jù)字段蛤织,并不能滿足我們的數(shù)據(jù)分析需求担锤,所以需要對(duì)現(xiàn)有的字段抽取乱顾,計(jì)算或轉(zhuǎn)換形式成為我們分析需要的新字段
1.數(shù)據(jù)抽取:包括字段分列/字段合并/字段匹配
字段分列:如“姓名”分為“姓和名”
法1):菜單法:[數(shù)據(jù)]中的[數(shù)據(jù)工具]中的[分列]選擇[分隔符號(hào)]中的[下一步]完成
法2):函數(shù)法:有時(shí)绪妹,我們需要提取特定的幾個(gè)字符甥桂,或者其中的第幾個(gè)字符,這時(shí)就要用到left()和right()函數(shù)
left(text邮旷,[num_chars]):第一個(gè)參數(shù)表示要抽取的文本黄选,第二個(gè)表示需要提取字符串左起多少個(gè)字符
right(text,[num_chars]):基本同上婶肩,就是從右起多少個(gè)字符
字段合并:有時(shí)我們需要抽取幾個(gè)數(shù)據(jù)列創(chuàng)建成為一個(gè)句子办陷,比如要給用戶發(fā)送信函,這是就有大量用戶的信息要輸入律歼,我們可以使用字段合并得到文本化的文字利用concatenate()函數(shù)
concatenate(text1,text2,...)懂诗,比如我們表里A2=小王,B2=5次苗膝,(遲到5次)我們就可以使用concatenate(A2殃恒,“遲到”,B2辱揭,“次”)离唐,這樣就得到“小明遲到5次”的句子
字段匹配:要從其他數(shù)據(jù)表中獲取字段,比如想截取B中的字段“住址”到A中问窃,我們可以使用vlookup()函數(shù)
vlookup(lookp_value, ? ?table_array, ? ?col_index_num, ? ?range_lookup)第一個(gè)參數(shù)表示要在表格或區(qū)域的第一列中查找的值亥鬓,第二個(gè)表示查找區(qū)域,第三個(gè)表示希望返回的值的列號(hào)域庇,第四個(gè)為布爾類型嵌戈,為“1”表示近似匹配,為“0”表示精確匹配听皿,一般使用為0
2.數(shù)據(jù)計(jì)算 ?:簡單計(jì)算/函數(shù)計(jì)算
簡單計(jì)算:有時(shí)我們需要的字段不能直接從表中獲得熟呛,要通過加減乘除計(jì)算得到,我想這里大家應(yīng)該都很清楚
函數(shù)計(jì)算:平均值/求和/日期的加減法
這里主要說下日期的加減法:哭訴輸入當(dāng)前日期尉姨,可以使用today()和now()還可以使用ctrl+庵朝;和ctrl+;再按空格接著按ctrl+shift+;這里公式可以插入動(dòng)態(tài)時(shí)間九府,快捷鍵是靜態(tài)時(shí)間
我們經(jīng)常會(huì)遇到需要日期增減的問題椎瘟,例如我們希望通過添加兩周時(shí)間來調(diào)整一個(gè)項(xiàng)目的計(jì)劃日期,此時(shí)我們只需要用到+侄旬,-即可肺蔚,但有時(shí)我們要對(duì)一個(gè)某年某月某日進(jìn)行處理,可以用到date()函數(shù) date(year(A2)+5,month(A2)-6,day(A2)+6);還可以使用dateif()計(jì)算工齡有時(shí)需要了解員工的工齡和某些信息的關(guān)系
date(start date儡羔,and_data宣羊,unit)第一個(gè)參數(shù)表示起始時(shí)間,第二個(gè)表示終止時(shí)間笔链,unit有6種形式段只,Y整年腮猖,M整月鉴扫,D整天,YD天數(shù)的差澈缺,YM月數(shù)的差坪创,MD年數(shù)的差
3.數(shù)據(jù)分組
首先準(zhǔn)備一個(gè)分組表,分組表里應(yīng)該至少有字段“闕值”姐赡,“分組標(biāo)識(shí)”莱预,“備注(分組條件)”
使用vlookup()函數(shù)通過對(duì)分組表里闕值的查找,返回分組表中的分組標(biāo)識(shí)字段
4.數(shù)據(jù)轉(zhuǎn)換:數(shù)據(jù)表的行列轉(zhuǎn)置/多選題幾種錄入方式之間的轉(zhuǎn)換
1)數(shù)據(jù)表的行列轉(zhuǎn)置
通過[選擇性粘貼]解決轉(zhuǎn)置项滑,還可以選擇性粘貼格式依沮,公式,甚至還能選擇數(shù)值將它們批量成負(fù)數(shù)或者對(duì)要粘貼的數(shù)和原數(shù)還可以進(jìn)行加減乘除
選擇性粘貼法1)先復(fù)制好數(shù)據(jù)區(qū)域枪狂,[開始]中的[剪貼板]到[粘貼]中選擇[選擇性粘貼]
法2)ctrl+alt+v快捷鍵會(huì)彈出危喉,勾選轉(zhuǎn)置
法3)直接復(fù)制,然后在粘貼出現(xiàn)的圖標(biāo)種選擇轉(zhuǎn)置
2)多選題的錄入方式之間的轉(zhuǎn)換
前面說道過對(duì)于多選題我們使用“0”和“1”標(biāo)識(shí)是否被選中(二分法)州疾,還可以通過對(duì)每個(gè)選項(xiàng)用數(shù)字表示辜限,多重法,但是多重法在Excel里無法分析严蓖,所以要將多重轉(zhuǎn)化為二分
法1)使用if(isnumber(hlookup()),1,0)薄嫡,這里的hlookup()函數(shù)和vlookup()函數(shù)長得很像,其實(shí)功能上也很像颗胡,vlookup()是按列在指定區(qū)域查找毫深,hlookup()函數(shù)是按行在指定區(qū)域查找
hlookup(lookp_value,? ? table_array,? ? col_index_num,? ? range_lookup)第一個(gè)參數(shù)表示要在表格或區(qū)域的第一行中查找的值,第二個(gè)表示查找區(qū)域毒姨,第三個(gè)表示希望返回的值的行號(hào)费什,第四個(gè)為布爾類型,為“1”表示近似匹配,為“0”表示精確匹配鸳址,一般使用為0瘩蚪,這里注意如果找到會(huì)返回你指定的行號(hào),如果沒有找到會(huì)返回一個(gè)非數(shù)字
isnumber()函數(shù)很明顯字面上就是判斷是不是數(shù)稿黍,所以先使用isnumber(hlookup())判斷是否返回了數(shù)字從而判斷這一行里是否有該選項(xiàng)疹瘦,再利用if()函數(shù),如果是數(shù)字巡球,則if()返回一個(gè)1,不是則返回一個(gè)0言沐,這樣就發(fā)現(xiàn)選中的選項(xiàng)位置會(huì)放上1,未選中的會(huì)放上0酣栈,那把多重法轉(zhuǎn)化為二分法的目的就這樣達(dá)到了
法2)使用if(isnumber(search("t",區(qū)域)),1,0),這里使用search()直接在區(qū)域里查找“1”在嗎险胰,在返回1,不在返回0矿筝,然后依次查找就能夠把多重轉(zhuǎn)為二分
但有時(shí)我們輸入的多個(gè)選項(xiàng)變量會(huì)在一個(gè)單元格里起便,如下圖,這是我們利用search()函數(shù)直接在單元格中查找
search(find_text,within_text,start_num),這里第一個(gè)參數(shù)表示要查找的字符串窖维,第二個(gè)為要在哪個(gè)字符串中查榆综,這里填要查的單元格就好,第三個(gè)參數(shù)指出從單元格中字符串的哪個(gè)位置開始找铸史,它會(huì)返回要查找的字符串在原始字符串中首次出現(xiàn)的位置鼻疮,(還是一個(gè)數(shù)字),也就是說找到就會(huì)返回一個(gè)數(shù)琳轿,找不到返回一個(gè)非數(shù)字
5.數(shù)據(jù)抽樣
分為普查和抽樣調(diào)查判沟,一般公司都采用抽樣,這里使用一個(gè)rand()函數(shù)崭篡,產(chǎn)生隨機(jī)數(shù)函數(shù)挪哄,來選取隨機(jī)樣本
rand()產(chǎn)生[0,1]之間媚送,rand()*a+b產(chǎn)生[b,a+b]之間的隨機(jī)數(shù) ? ? int(rand()*a+b))這里int()表示取整中燥,例如我們要在5000人里產(chǎn)生1000個(gè)隨機(jī)人做調(diào)查,這時(shí)使用隨機(jī)數(shù)函數(shù)塘偎,先給5000人編號(hào)疗涉,編好號(hào)后可以利用rand()在1000個(gè)單元格產(chǎn)生1000個(gè)[1,5000]的隨機(jī)數(shù)吟秩,從而找到要抽樣的人