在Excel中将HEX转换为RGB

10
我有一个"HEX"列和三个列"R"、"G"和"B"。
如何将HEX转换为RGB,例如ff0000转换为R=255G=0B=0
我知道前两个字符ff归属于"R",接下来的两个00归属于"G",最后的两个00归属于"B"。因此,我需要使用=LEFT(A1, 2)获取"R",=RIGHT(LEFT(A1, 4), 2)获取"G",以及=RIGHT(A1, 2)获取最后的"B"。
但是,如何将ff转换为255,将00转换为0等等?我猜我需要做一些从十六进制(基数16)到十进制(基数10)的解析工作?
我希望不使用VBA来完成这个任务。
4个回答

18
您可以尝试使用=Hex2Dec(A1),但应该将其输入拆分为3个部分:一个用于R,一个用于G,另一个用于B。考虑到您始终会以这种格式获取它们ff0000
=HEX2DEC(LEFT(B1,2))&"-"&HEX2DEC(MID(B1,3,2))&"-"&HEX2DEC(RIGHT(B1,2))

这是公式计算的结果:

enter image description here


OP已经说明他们将把十六进制字符串分割成其组成部分。 - Diado

10
您可以使用HEX2DEC()函数将十六进制转换为十进制。例如:
=HEX2DEC(A1)

当单元格A1包含字符串FF时,函数返回255

更多详细信息请点击此处


2
我已经成功创建了一个 Excel 电子表格,可以将十六进制转换成三列 RGB 值:红色、绿色和蓝色。以下是代码: 红色:=HEX2DEC(LEFT([单元格],2)) 绿色:=HEX2DEC(MID([单元格],3,2)) 蓝色:=HEX2DEC(RIGHT([单元格],2)) 至今为止,我没有发现这个代码的任何限制。 我还编写了 RGB 转换成十六进制的代码: =DEC2HEX(([红色]*65536)+([绿色]*256)+[蓝色],6) 希望这能回答您的问题。

-1

2
OP并不想在Excel中显示颜色,因此这似乎与问题无关。 OP的问题是如何在Excel中将十六进制颜色值转换为RGB颜色值,可以使用HEX2DEC()函数来实现(除了十六进制颜色代码之外,没有任何对可能颜色数量的限制)。 - Diado

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接