首页 / 办公软件 / Excel / Excel-模拟二进制、四进制、八进制

Excel-模拟二进制、四进制、八进制

  在Excel中有进制转换的函数:BIN2DEC、BIN2HEX、BIN2OCT、DEC2BIN、DEC2HEX、DEC2OCT等,非常方便好用。这次来自行以公式模拟将二进制、四进制、八进制转成十进制,来练习SUMPRODUCTINDIRECT等函数。

  单元格B2:=SUMPRODUCT(–MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1),2^(LEN(A2)-ROW(INDIRECT("1:"&LEN(A2)))))

  LEN(A2):取得单元格A2中字符串长度。(本例以字符串长度6来练习)

  INDIRECT("1:"&LEN(A2)):依单元格A2中字符串长度,生成一段列的范围。

  ROW(INDIRECT("1:"&LEN(A2)):例如单元格A2中字符串长度为6,则生成ROW(1:6)。

  MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1):相当于MID(A2,1,1)、MID(A2,2,1)、…、MID(A2,6,1)。即可以将单元格A2中的每一个字取出,变成一个6个元素的数组。

  2^(LEN(A2)-ROW(INDIRECT("1:"&LEN(A2)))):可以生成2的5次方、2的4次方、…、2的0次方。

  通过SUMPRODUCT函数,将单元格A2中的第1个数X2的5次方、第2个数X2的4次方、…、第6个数X2的0次方,并且全部加总即为十进制的结果。
 

图1

  同理:

  单元格D2:=SUMPRODUCT(–MID(C2,ROW(INDIRECT("1:"&LEN(C2))),1),4^(LEN(C2)-ROW(INDIRECT("1:"&LEN(C2)))))

  单元格F2:=SUMPRODUCT(–MID(E2,ROW(INDIRECT("1:"&LEN(E2))),1),8^(LEN(E2)-ROW(INDIRECT("1:"&LEN(E2)))))
 

评论

您的电子邮件不会被公布必填字段标记为 *

*