ChatGPT玩上瘾了,想着如何给自己减轻工作量,尝试让ChatGPT帮忙做图标。
拿了一组简单数据,看看他能不能给我把图像做出来。
我想做出类似下图的甜甜圈图表,之前的文章中,我有提到如何手工生成这样的图表,如果机器可以自动生成,那就减少不少工作量,想想也开心。尝试开始让机器做数据,当然Chatgrp只是对话类工具,我能想到的是用VBA自动生成,跟他的对话如下,
我有一组KPI数据如下:
Material Availability: 80%
Delivery Reliability: 75%
Delivery Capabilities: 54%
我需要通过VBA自动判断有多少个KPI数据,自动生成多少个甜甜圈,不同的KPI用不同的颜色,Material Availability用红色,Delivery Reliability用蓝色,Delivery Capabilities用绿色。
整个一个甜甜圈,一圈是100%,自动计算不到100%的数值,并设置为相同的颜色透明度为50%,每个指标的title需要大写加粗并与图像颜色相同。
得出的图像:

看来是我没描述清楚,绞尽脑汁,修改我的对话如下:
我有一组KPI数据,数据第一列是KPI的名字,第二列是KPI数据,数据展例如下:
Material Availability: 80%
Delivery Reliability: 75%
Delivery Capabilities: 54%
我需要通过VBA自动判断有多少个KPI数据,自动生成多少个甜甜圈,不同的KPI用不同的颜色。
整个一个甜甜圈,一圈是100%,自动计算不到100%的数值,颜色与当前甜甜圈一样,颜色透明度为50%,甜甜圈的title为数据第一列的KPI名字,每个指标的title需要大写加粗并与甜甜圈颜色相同。
当我重新输入这段对话时,系统显示不能对话,系统出错,估计是账号原因,只能重新登录网页,继续得到VBA代码,系统显示bug☹,让他重新生成代码,这次没有完全生成完成,程序非常复杂,只能重新再生成,这次比较成功,运行结果如下:(完全理解错误)
至少他开始学习用循环了,不错,虽然图像完全错了,但至少也是进步,修改要求,继续。
我有一组KPI数据,数据第一列是KPI的名字,第二列是KPI数据,数据展例如下:
Material Availability: 80%
Delivery Reliability: 75%
Delivery Capabilities: 54%
每一个KPI需要生成一个甜甜圈,有多少个KPI生成多少个甜甜圈,不同的KPI用不同的颜色。
每个甜甜圈,一整圈是100%,自动计算不到100%的数值,颜色与当前甜甜圈一样,颜色透明度为50%,甜甜圈的title为数据第一列的KPI名字,每个指标的title需要大写加粗并与甜甜圈颜色相同。
结果一样。我放弃了,简化需求,直接生成三个表吧,ChatGRP给出如下回答
最后excel运行结果如下,虽然不尽如人意,至少能满足最基本需求。
下面是程序自动提供的最后一个源代码,至少可以根据你的需要做些简单修改,就可以用了。怎么说呢,没有网上吹嘘的那么智能,他的智能是在能理解你的需求的情况下,是可以给你要的东西,但理解这个字要做起来很难,特别是对中文的理解没有对英文的那么好。系统反应的速度也相对比较慢。这是我的感觉。但这依然是一款非常非常不错的AI产品,对于很多需求,现在网上有很多直接做好的,你只需要稍微做修改就可以用了。
这方面,我依然是菜鸟,只看了两天,但我相信,将来AI取代人类是可能的,至少是部分工作岗位。
Sub create_donut_charts()
Dim MaterialAvailability As Integer
Dim DeliveryReliability As Integer
Dim DeliveryCapabilities As Integer
'设置KPI数据
MaterialAvailability = 80
DeliveryReliability = 75
DeliveryCapabilities = 54
'创建甜甜圈图表对象
Dim MaterialAvailabilityChart As ChartObject
Dim DeliveryReliabilityChart As ChartObject
Dim DeliveryCapabilitiesChart As ChartObject
Set MaterialAvailabilityChart = ActiveSheet.ChartObjects.Add(Left:=10, Width:=200, Top:=10, Height:=200)
Set DeliveryReliabilityChart = ActiveSheet.ChartObjects.Add(Left:=250, Width:=200, Top:=10, Height:=200)
Set DeliveryCapabilitiesChart = ActiveSheet.ChartObjects.Add(Left:=490, Width:=200, Top:=10, Height:=200)
'设置甜甜圈图表属性
With MaterialAvailabilityChart.Chart
.ChartType = xlDoughnut
.SeriesCollection.NewSeries
.SeriesCollection(1).Values = Array(MaterialAvailability, 100 - MaterialAvailability)
.SeriesCollection(1).Points(2).Format.Fill.Transparency = 0.5
.SeriesCollection(1).Points(2).Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
.HasTitle = True
.ChartTitle.Characters.Text = "MATERIAL AVAILABILITY"
.ChartTitle.Characters.Font.Bold = True
.ChartTitle.Characters.Font.Color = RGB(255, 0, 0)
End With
With DeliveryReliabilityChart.Chart
.ChartType = xlDoughnut
.SeriesCollection.NewSeries
.SeriesCollection(1).Values = Array(DeliveryReliability, 100 - DeliveryReliability)
.SeriesCollection(1).Points(2).Format.Fill.Transparency = 0.5
.SeriesCollection(1).Points(2).Format.Fill.ForeColor.RGB = RGB(0, 0, 255)
.HasTitle = True
.ChartTitle.Characters.Text = "DELIVERY RELIABILITY"
.ChartTitle.Characters.Font.Bold = True
.ChartTitle.Characters.Font.Color = RGB(0, 0, 255)
End With
With DeliveryCapabilitiesChart.Chart
.ChartType = xlDoughnut
.SeriesCollection.NewSeries
.SeriesCollection(1).Values = Array(DeliveryCapabilities, 100 - DeliveryCapabilities)
.SeriesCollection(1).Points(2).Format.Fill.Transparency = 0.5
.SeriesCollection(1).Points(2).Format.Fill.ForeColor.RGB = RGB(0, 255, 0)
.HasTitle = True
.ChartTitle.Characters.Text = "DELIVERY CAPABILITIES"
.ChartTitle.Characters.Font.Bold = True
.ChartTitle.Characters.Font.Color = RGB(0, 255, 0)
End With
End Sub