在Excel中将字符串编码为数字

时间:2018-07-12 19:36:53

标签: excel

我想将字符串代码转换为整数代码

这是我的Excel文件

Level1	Level2	Level3	Level4	Time1	Time2	Time3	Time4
A	B	E	C	12	14	12	13
D	D	E	C	11	17	16	9
E	C	C	B	14	13	19	8
C	E	B	D	11	12	10	7
B	A	A	D	10	11	7	6

A = 4,B = 3,C = 2,D = 1,E = 0

在sheet2中获取它

Level1	Level2	Level3	Level4	Time1	Time2	Time3	Time4
4	3	0	2	12	14	12	13
1	1	0	2	11	17	16	9
0	2	2	3	14	13	19	8
2	0	3	1	11	12	10	7
3	4	4	1	10	11	7	6
可能吗?

4 个答案:

答案 0 :(得分:2)

使用ASCII表和一些基本数学。

dim i as long

for i=65 to 69
    worksheets("sheet1").cells.replace what:=chr(i), replacement:=(69-i)
next i

答案 1 :(得分:1)

这不像字典那样快,但是它在4列中的10,000行的时钟为1秒。

从A到D列搜索到最后一行(由A列确定)

Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
Dim SearchRange As Range: Set SearchRange = ws.Range("A2:D" & ws.Range("A" & ws.Rows.Count).End(xlUp).Row)

Application.ScreenUpdating = False
    SearchRange.Replace What:="A", Replacement:=4, LookAt:=xlWhole
    SearchRange.Replace What:="B", Replacement:=3, LookAt:=xlWhole
    SearchRange.Replace What:="C", Replacement:=2, LookAt:=xlWhole
    SearchRange.Replace What:="D", Replacement:=1, LookAt:=xlWhole
    SearchRange.Replace What:="E", Replacement:=0, LookAt:=xlWhole
Application.ScreenUpdating = True

答案 2 :(得分:0)

使用您选择的字母到数字的映射来设置任何工作表(例如Sheet2)的区域,如下所示:

+--------+-------+
| Letter | Value |
+--------+-------+
| A      |     4 |
| B      |     3 |
| C      |     2 |
| D      |     1 |
| E      |     0 |
+--------+-------+

然后,假设在您的一个主要工作表上,您在单元格B3="D"中有一个字母。您可以使用查找公式C3将公式输入到其他单元格(可能是单元格=VLOOKUP(B3,Sheet2!A2:B10,2,FALSE))中。 (在这种情况下,范围A2:B10将替换为整个字母数字表的范围)。公式将返回数字值。

答案 3 :(得分:0)

在Sheet2!A2中输入此内容

=IF(ISNUMBER(Sheet1!A2),Sheet1!A2,69-CODE(Sheet1!A2))

根据需要填充/填充。