診断メーカーで16進数を10進数に変換

診断メーカーで16進数を10進数に変換する物を作ったので、コードを載せておきます。

何かの参考になれば,,,(多分何にもならない)

(https://shindanmaker.com/786832)

 

[USER]さんにおすすめのカラーコードは「[LIST1][LIST1_2][LIST1_3][LIST1_4][LIST1_5][LIST1_6]」です。
10進数に直すと「 =CALC( =IF( [LIST1] = a , 10 , =IF( [LIST1] = b , 11 , =IF( [LIST1] = c , 12 , =IF( [LIST1] = d , 13 , =IF( [LIST1] = e , 14 , =IF( [LIST1] = f , 15 , [LIST1] ) ) ) ) ) ) * 16 +
=IF( [LIST1_2] = a , 10 , =IF( [LIST1_2] = b , 11 , =IF( [LIST1_2] = c , 12 , =IF( [LIST1_2] = d , 13 , =IF( [LIST1_2] = e , 14 , =IF( [LIST1_2] = f , 15 , [LIST1_2] ) ) ) ) ) ) ) , =CALC( =IF( [LIST1_3] = a , 10 , =IF( [LIST1_3] = b , 11 , =IF( [LIST1_3] = c , 12 , =IF( [LIST1_3] = d , 13 , =IF( [LIST1_3] = e , 14 , =IF( [LIST1_3] = f , 15 , [LIST1_3] ) ) ) ) ) ) * 16 +
=IF( [LIST1_4] = a , 10 , =IF( [LIST1_4] = b , 11 , =IF( [LIST1_4] = c , 12 , =IF( [LIST1_4] = d , 13 , =IF( [LIST1_4] = e , 14 , =IF( [LIST1_4] = f , 15 , [LIST1_4] ) ) ) ) ) ) ) , =CALC( =IF( [LIST1_5] = a , 10 , =IF( [LIST1_5] = b , 11 , =IF( [LIST1_5] = c , 12 , =IF( [LIST1_5] = d , 13 , =IF( [LIST1_5] = e , 14 , =IF( [LIST1_5] = f , 15 , [LIST1_5] ) ) ) ) ) ) * 16 +
=IF( [LIST1_6] = a , 10 , =IF( [LIST1_6] = b , 11 , =IF( [LIST1_6] = c , 12 , =IF( [LIST1_6] = d , 13 , =IF( [LIST1_6] = e , 14 , =IF( [LIST1_6] = f , 15 , [LIST1_6] ) ) ) ) ) ) ) 」です
=CHART(
TYPE:PIE,
DATA:[
こんな色です:[LIST2],
],
COLOR:[ [LIST1][LIST1_2][LIST1_3][LIST1_4][LIST1_5][LIST1_6] ],
TOTAL:1
)

リスト1には1~f、リスト2には1を入れてあります。

 

IFを使ってaなら10、bなら11、cなら12,,,fなら15というようにちまちまやってます。

a~fに当てはまらなかった場合は数字なので元の数字をそのまま使います。

出てきた数字を

1の位なら16の0乗(つまり1なので何もしなくていい)

16の位なら16の1乗(×16)

256の位なら16の2乗(×256)

4096の位なら16の3乗(×4096)

という風にして出てきた数字を足すとようやく16進数にすることができます

 

RGBの場合はいっぺんに変えてしまうと違う数になってしまうので、2桁ずつ変換しましょう。