我有一列“HEX”和三列“R”,“G”和“B”。
如何将HEX转换为RGB(例如ff0000到R = 255,G = 0和B = 0)?
我知道前两个字符“ff”属于“R”,下一个2“00”属于“G”,最后2“00”属于“B”。
所以我必须使用=LEFT(A1, 2)
代表“R”,=RIGHT(LEFT(A1, 4), 2)
和=RIGHT(A1, 2)
作为最后一个。
但是如何将ff
转换为255
和00
转换为0
等?我想我必须做一些事情从十六进制(基数16)解析到十进制(基数10)?
我想在没有VBA的情况下这样做。
答案 0 :(得分:6)
您可以使用HEX2DEC()函数将十六进制转换为十进制。例如:
= HEX2DEC(A1)
如果单元格A1包含字符串' FF',则返回255。
此处有更多详情:https://support.office.com/en-gb/article/HEX2DEC-function-8c8c3155-9f37-45a5-a3ee-ee5379ef106e
答案 1 :(得分:5)
您可以尝试使用Hex2Dec()
,但您应该将其输入分为3部分。一个用于 R ,一个用于 G ,一个用于 B ,考虑到您总是以这样的格式获取它们 ff0000 < /强>
=HEX2DEC(LEFT(B1,2))&"-"&HEX2DEC(MID(B1,3,2))&"-"&HEX2DEC(RIGHT(B1,2))
这是公式的结果:
答案 2 :(得分:1)
有些网页会产生(w3SCHOOL PICKER),但在excel中你可以做到这一点
如果您尝试不使用vba,您只能使用56种颜色。 (如果使用单元格中的颜色)
答案 3 :(得分:0)
我设法创建了一个Excel电子表格,该表格可以在三列中将Hex转换为RGB;红色,绿色和蓝色。下面是它的代码:
红色:=HEX2DEC(LEFT([Cell],2))
绿色:=HEX2DEC(MID([Cell],3,2))
蓝色:=HEX2DEC(RIGHT([Cell],2))
到目前为止,我还没有发现对此代码的任何限制。
我还为RGB编写了十六进制代码:
=DEC2HEX(([Red]*65536)+([Green]*256)+[Blue],6)
我希望这能回答您的问题。