【應(yīng)用篇 Excel 第二課】用 ChatGPT 處理復(fù)雜 Excel 數(shù)據(jù)
這節(jié)課我們學(xué)習(xí)用 ChatGPT 處理復(fù)雜 Excel 數(shù)據(jù)
一、用ChatGPT 處理復(fù)雜 Excel 數(shù)據(jù)的方法
由于目前 ChatGPT 還不支持上傳文件以及對(duì)大數(shù)據(jù)量的處理,
所以我們只能換一種思路結(jié)合 Excel 和 ChatGPT 的協(xié)作
1.整體思路
我們告訴 ChatGTP 我們想要實(shí)現(xiàn)什么樣的效果,
讓 ChatGPT 告訴我們結(jié)果、公式 和 vba 代碼,
我們直接按照 ChatGTP 給出的方法執(zhí)行就行
接下來我們還是通過一個(gè)案例來進(jìn)行講解
2.數(shù)據(jù)案例
我們還是使用上節(jié)課的數(shù)據(jù),大約30條,數(shù)據(jù)如下:

3.希望通過數(shù)據(jù)分析出什么
這是一次活動(dòng)推銷的結(jié)果的數(shù)據(jù),希望通過分析數(shù)據(jù):
a.需要分析出哪些維度對(duì)推銷結(jié)果的影響最大
b.如何確定銀行定期產(chǎn)品推銷中最具價(jià)值的客戶
c.優(yōu)化的建議有哪些
d.實(shí)行完優(yōu)化建議后,預(yù)期的效果會(huì)是什么樣
4.清理無用數(shù)據(jù)的方法
一般我們會(huì)先把垃圾數(shù)據(jù)刪掉,比如:惡意填寫、錯(cuò)填、漏填的數(shù)據(jù)。
我喜歡把表格中的無效數(shù)據(jù)稱為:unknown
清理無效數(shù)據(jù)的方法如下
發(fā)送給 ChatGPT:
我有一個(gè) microsoft excel 文件,如果每一行任意一列中包含了 unknown 的數(shù)據(jù),那么就把這一行刪除掉,使用 vba 代碼實(shí)現(xiàn),不需要解釋代碼
(VBA :通過這種代碼可以實(shí)現(xiàn) Excel 的復(fù)雜邏輯)
ChatGPT 回復(fù):

如果不會(huì)用 VBA 代碼,
可以發(fā)送給 ChatGPT:
如何在 microsoft excel 中使用這段 vba 代碼
ChatGPT 回復(fù)如下:
您可以按以下步驟在 Microsoft Excel 中使用 VBA 代碼:
打開 Excel 文件,按下 Alt+F11 進(jìn)入 Visual Basic 編輯器。
在左邊的“項(xiàng)目”窗口中,雙擊您要向其添加代碼的工作簿,然后在新窗口中插入一個(gè)新的模塊。
在新模塊中,復(fù)制上面給出的 VBA 代碼。
回到 Excel 工作表,按下 Alt+F8 打開宏窗口。
選擇您剛剛添加的代碼,并單擊“運(yùn)行”按鈕。
當(dāng)代碼運(yùn)行完成后,將關(guān)閉 Visual Basic 編輯器并返回 Excel 工作表。請(qǐng)檢查您的數(shù)據(jù)集以確定未知值是否已被刪除。
請(qǐng)注意,運(yùn)行 VBA 代碼可能會(huì)直接修改您的 Excel 文件,因此在運(yùn)行代碼之前,請(qǐng)務(wù)必備份您的數(shù)據(jù)集。
接下來我們把 VBA 代碼按照使用方式復(fù)制到 VBA 編輯框中

點(diǎn)擊:執(zhí)行

最后我們關(guān)閉這個(gè) vba 編輯框,
可以發(fā)現(xiàn)我們的數(shù)據(jù)已經(jīng)清理干凈,
沒有 unknown 的數(shù)據(jù)了

5.維度分析
同樣我們告訴 ChatGPT
希望讓它按照維度來幫我們分析,并告訴我們?cè)撛趺醋?/p>
比如我們希望先分析一下年齡、學(xué)歷和資產(chǎn)余額維度這幾個(gè)維度對(duì)推銷結(jié)果的影響最大,
那我們可以
發(fā)送給 ChatGPT:
這個(gè) excel 是一次營銷活動(dòng)的數(shù)據(jù),目的是為了分析哪些維度對(duì)推銷結(jié)果的影響最大,請(qǐng)先根據(jù)年齡、學(xué)歷和資產(chǎn)余額維度進(jìn)行分析哪個(gè)維度對(duì)推銷結(jié)果的影響最大,寫一段 vba 代碼用于分析結(jié)果,并將結(jié)果放在 Sheet2,如果 Sheet 2 不存在需要通過 vba 代碼創(chuàng)建,不要解釋代碼的意思,我是 mac Microsoft excel,需要考慮到代碼的兼容性,請(qǐng)使用比較簡(jiǎn)潔的代碼編寫。
下面列出了數(shù)據(jù)的結(jié)構(gòu)和對(duì)應(yīng)的解釋
"""
Feature Description
age 年齡(數(shù)值)
job 職業(yè)(分類:admin, bluecollar, entrepreneur, housemaid, management, retired, self-employed, services,student, technician, unemployed, unknown)
marital 婚姻狀況(分類:divorced, married, single, unknown)
education 學(xué)歷(分類:primary, secondary, tertiary and unknown)
default 失信狀況(分類:yes, no)
balance 資產(chǎn)余額(數(shù)值)
housing 房屋貸款(分類:yes, no, unknown)
loan 個(gè)人貸款(分類:yes, no, unknown)
contact 聯(lián)系方式(分類:cellular, telephone)
day 最后一次電話營銷的日期(數(shù)值:月份中的哪一天)
month 最后一次電話營銷的月份(分類:jan, feb, mar, apr,…,nov, dev)
duration 通話時(shí)長(數(shù)值:以秒為單位,0的話最終輸出結(jié)果必然是0)
campaign 聯(lián)系次數(shù)(數(shù)值:此活動(dòng)中聯(lián)系該客戶的次數(shù))
pdays 距上次聯(lián)系完客戶后的天數(shù)(數(shù)值:999代表未聯(lián)系過該客戶)
previous 這次活動(dòng)前與這位客戶聯(lián)系的次數(shù)(數(shù)值)
poutcome 上次營銷的結(jié)果(分類:yes, no, unknown)
deposit 定期存款(分類:yes, no)客戶是否已購買定期存款
ChatGPT 回:

同樣,
在 Excel 中按下 Alt+F11 ,我們把代碼放入到 Excel 中的 VBA 編輯框

最后我們?cè)?Sheet 2 中
就可以得到分析出來的結(jié)果

6.看不懂?dāng)?shù)據(jù)怎么辦?
我們?cè)趤韱枂?ChatGPT
發(fā)送給 ChatGPT:
分析出來的有四列,F(xiàn)eature Mean Variance Standard Deviation 解釋一下都代表什么意思
ChatGPT回:
Feature: 數(shù)據(jù)的特征,即所分析的維度
Mean: 平均值,是該特征所有樣本值的總和除以樣本個(gè)數(shù),它可以表示該特征的集中趨勢(shì)。
Variance: 算術(shù)平均數(shù)與各觀察值偏差平方和的算術(shù)平均數(shù)。也就是說,每個(gè)數(shù)值與特征平均值的差值的平方之和的平均值,可以反映出樣本的離散程度。
Standard Deviation:標(biāo)準(zhǔn)差是更常用的的用以衡量變量之間的差異性的統(tǒng)計(jì)量。簡(jiǎn)單的說,標(biāo)準(zhǔn)差是方差的算術(shù)平方根。標(biāo)準(zhǔn)差越小,則表示從平均數(shù)開始,每個(gè)數(shù)據(jù)都比較接近平均水平。反之,則表示很多數(shù)據(jù)離平均水平較遠(yuǎn)。
7.可視化分析
前面 ChatGPT 分析出來的結(jié)果是表格形式不易理解,
也不清楚哪個(gè)維度影響最大,
如果我們也不知道該如何可視化進(jìn)一步分析,那我們可以接著問:
發(fā)送給 ChatGPT:
你認(rèn)為該以什么樣的圖形化展示比較好
ChatGPT回:
根據(jù)這三個(gè)維度的數(shù)據(jù),可以采用多條柱形圖(Multi-Bar Plot)進(jìn)行可視化展示,將每個(gè)維度的平均值、標(biāo)準(zhǔn)差分別繪制成一條柱形,并按大小排序,以便于觀察哪個(gè)維度對(duì)推銷結(jié)果的影響最大。另外,也可以考慮使用散點(diǎn)圖(Scatter Plot)進(jìn)行可視化展示,將每個(gè)樣本的三個(gè)維度的值展示在平面坐標(biāo)系中,以便于觀察每個(gè)樣本在三個(gè)維度上的分布情況和特征之間的關(guān)系。
希望進(jìn)一步分析,再發(fā)送給 ChatGPT:
那基于 Sheet2 分析出來的數(shù)據(jù),使用 多條柱形圖 進(jìn)一步分析出來哪一個(gè)維度對(duì)推銷結(jié)果的影響最大,并以圖形在 Sheet3 展示,如果 Sheet3不存在請(qǐng)自行創(chuàng)建;請(qǐng)用比較簡(jiǎn)潔的 vba 代碼實(shí)現(xiàn)
ChatGPT 回:

同樣,在 Excel 中按下 Alt+F11 ,我們把代碼放入到 Excel 中的 VBA 編輯框

最后,
我們可以得到 Sheet3 的可視化表

8.基于分析結(jié)果得出結(jié)論
當(dāng) ChatGPT 生成了可視化的分析,
進(jìn)一步讓 ChatGPT 幫我們分析出來結(jié)論
發(fā)送給 ChatGPT:
這是分析出來的結(jié)果,解釋分析一下
"""
Feature Mean Standard Deviation
age 42.47619048 18.35
education 3.047619048 1.45
balance 22080.95238 34856.84
ChatGPT 回:
根據(jù) Sheet2 分析的數(shù)據(jù)結(jié)果,我們可以得出如上的表格。
Feature: 數(shù)據(jù)的特征,即所分析的維度,包括 age, education 和 balance。
Mean: 該維度所有樣本值的平均值,代表該特征的集中趨勢(shì)。
Standard Deviation: 標(biāo)準(zhǔn)差是用以衡量變量之間的差異性的統(tǒng)計(jì)量,表示該特征的樣本數(shù)據(jù)的離散程度。
通過對(duì)比不同特征的標(biāo)準(zhǔn)差,我們可以判斷不同特征對(duì)推銷結(jié)果的影響,標(biāo)準(zhǔn)差越大,說明該特征對(duì)推銷結(jié)果的影響越大。
結(jié)合上表,我們可以發(fā)現(xiàn) balance 的標(biāo)準(zhǔn)差遠(yuǎn)大于其他兩個(gè)特征,因此,資產(chǎn)余額這一特征對(duì)推銷結(jié)果的影響最大。
9.提出優(yōu)化建議和預(yù)測(cè)
有了分析出來的結(jié)論后,那
可以讓 ChatGPT 給出優(yōu)化的建議,并且預(yù)測(cè)數(shù)據(jù)
發(fā)送給 ChatGPT:
a.基于這個(gè)結(jié)果,給出優(yōu)化建議
b.列出幾個(gè)可行的措施
c.如果落實(shí)了這幾個(gè)措施,會(huì)對(duì)結(jié)果產(chǎn)生多大影響,用一句話總結(jié),并給出一個(gè)大致的比例

二、總結(jié)
基于上述案例我們做了什么?
我們可以再次讓 ChatGPT 幫我們總結(jié)
發(fā)送給 ChatGPT:
分析一下這次的對(duì)話,列出步驟
ChatGPT 回:
以下是這次對(duì)話的步驟:
第一個(gè)問題的提出:用戶提出了一個(gè) Excel 相關(guān)的問題和需求。
第一個(gè)問題的回答:AI 幫助回答了用戶的第一個(gè)問題。
第二個(gè)問題的提出:用戶向 AI 提出了一個(gè)新的問題和需求,希望得到一段 VBA 代碼,實(shí)現(xiàn)對(duì) Excel 文件中的數(shù)據(jù)進(jìn)行篩選。
第二個(gè)問題的回答:AI 給出了一段簡(jiǎn)潔的 VBA 代碼來實(shí)現(xiàn)用戶的需求。
第三個(gè)問題的提出:用戶向 AI 提出了另一個(gè)需求,希望根據(jù)年齡、學(xué)歷和資產(chǎn)余額這三個(gè)維度進(jìn)行分析,以便找出哪個(gè)維度對(duì)推銷結(jié)果的影響最大。
第三個(gè)問題的回答:AI 根據(jù)用戶的需求給出了一段 VBA 代碼,并解釋了代碼的作用,同時(shí)也提供了多條柱形圖和散點(diǎn)圖的可視化方式,以便更好地展現(xiàn)和分析數(shù)據(jù)。
對(duì)分析結(jié)果的解釋和優(yōu)化建議:AI 解釋了根據(jù)分析結(jié)果得出的結(jié)論,并提供了可行的幾個(gè)措施來優(yōu)化推銷的效果。
對(duì)落實(shí)措施的影響進(jìn)行分析:AI 對(duì)采取措施后推銷成功率的提高進(jìn)行了預(yù)測(cè)。
ChatGPT 和 Excel 的協(xié)議可以說非常的強(qiáng)大,
但前提是需要我們準(zhǔn)確的告訴 ChatGPT 應(yīng)該做什么,以什么的格式去做,
特別是對(duì)于 Excel 的術(shù)語(比如第一行,第一列、第一個(gè)Sheet... 等)
因?yàn)?ChatGPT 沒辦法知道計(jì)算出來的結(jié)果是什么,
所以我們希望 ChatGPT 基于什么樣的結(jié)果進(jìn)行分析時(shí),
則需要把通過代碼算出來的結(jié)果再次告訴 ChatGPT。
三、當(dāng)然你也可以直接用我剛才的案例數(shù)據(jù)練手
1.案例數(shù)據(jù)下載鏈接
https://temp-1257364845.cos.ap-nanjing.myqcloud.com/%E8%A7%A3%E9%94%81excel%E6%A1%88%E4%BE%8B%E5%88%86%E6%9E%90.xlsx
2.或者讓 ChatGPT 幫你生成新的案例數(shù)據(jù)
發(fā)送給 ChatGPT:
根據(jù)下面這個(gè)信息,根據(jù)每個(gè)字段和描述生成30條數(shù)據(jù),并以表格方式展示
"""
字段名 理解
age 年齡(數(shù)值)
job 職業(yè)(分類:admin, bluecollar, entrepreneur, housemaid, management, retired, self-employed, services,student, technician, unemployed, unknown)
marital 婚姻狀況(分類:divorced, married, single, unknown)
education 學(xué)歷(分類:primary, secondary, tertiary and unknown)
default 失信狀況(分類:yes, no)
balance 資產(chǎn)余額(數(shù)值)
housing 房屋貸款(分類:yes, no, unknown)
loan 個(gè)人貸款(分類:yes, no, unknown)
contact 聯(lián)系方式(分類:cellular, telephone)
day 最后一次電話營銷的日期(數(shù)值:月份中的哪一天)
month 最后一次電話營銷的月份(分類:jan, feb, mar, apr,…,nov, dev)
duration 通話時(shí)長(數(shù)值:以秒為單位,0的話最終輸出結(jié)果必然是0)
campaign 聯(lián)系次數(shù)(數(shù)值:此活動(dòng)中聯(lián)系該客戶的次數(shù))
pdays 距上次聯(lián)系完客戶后的天數(shù)(數(shù)值:999代表未聯(lián)系過該客戶)
previous 這次活動(dòng)前與這位客戶聯(lián)系的次數(shù)(數(shù)值)
poutcome 上次營銷的結(jié)果(分類:yes, no, unknown)
deposit 定期存款(分類:yes, no)客戶是否已購買定期存款
"""
四、注意事項(xiàng)
在對(duì)話的過程中可能會(huì)出現(xiàn)字?jǐn)?shù)超長的情況,
可以嘗試把已經(jīng)無用的代碼記錄刪除掉