Excel 不区分某些阿拉伯字母的函数
Excel Functions not Differentiating Some Arabic Letters
我在 excel 中有一个 table 和一些阿拉伯语 letters/words 以及他们的身份证号码;这是两列的 table:
ID Letter
ء 1
2 آ
3 أ
4 إ
5 لا
6 لإ
7 ئ
8 ا
9 ـا
10 لأ
11 ـلا
12 ب
13 بـ
14 ـب
15 ـبـ
我想要的是在另一个sheet中输入字母后能够检索到该字母的id。
我同时使用了 match 和 vlookup excel 函数,它们似乎工作正常。但是,问题是它不能正确识别字母。
So, for example, if I enter ء I get 1 - which is correct.
If I enter آ I get 2 - which is correct.
If I enter أ I get 2 - which is incorrect, it should return 3
If I enter إ I get 2 - which is incorrect, it should return 4
If I enter ب I get 12 - which is correct.
If I enter بـ I get 13 - which is correct.
If I enter ـب I get 13 - which is incorrect, it should return 14
If I enter ـبـ I get 12 - which is incorrect, it should return 15
我用于 vlookup 的公式:
=VLOOKUP(A2; Full!$A:$E5; 2; FALSE)
其中:A2
有我输入的字母
Full!$A:$E5
是 table 我的数据
2
是我要从中获取数据的列的编号
False
因为我想要完全匹配
可能是什么问题?
我相信更聪明的人会想出更优雅的东西,但这里有一个适用于任何长度为 3 个或更少字符的示例:
将第六列添加到您的 table 并使用以下公式填充:
=CHOOSE(LEN(B2),UNICODE(B2),UNICODE(B2) & UNICODE(MID(B2,2,1)),UNICODE(B2) & UNICODE(MID(B2,2,1)) & UNICODE(RIGHT(B2,1)))
(我假设第 B
列是阿拉伯语文本在您的 table 中的位置)
然后使用下面的公式得到table中的行:
=MATCH(CHOOSE(LEN(A2),UNICODE(A2),UNICODE(A2) & UNICODE(MID(A2,2,1)),UNICODE(A2) & UNICODE(MID(A2,2,1)) & UNICODE(RIGHT(A2,1))),Full!F:F,0)
(其中 A2
是您输入查找文本的位置,Full!F:F
是在步骤 1 中插入公式的列)
匹配后,您可以使用 INDEX
检索您需要的任何数据。
您可以使用 UNICODE() 公式提供一个可以正确比较的 id。
我在Sheet"Full"上新建了A列(id现在移到B列,阿拉伯字母移到C列),A列单元格公式如下sheet中的A25全:
=UNICODE(C25)
那么检索 ID 的公式为:
=VLOOKUP(UNICODE(A2); Full!$A:$B5; 2; FALSE)
其中 A2 是您输入要知道 ID 的阿拉伯字母的位置。
我在 excel 中有一个 table 和一些阿拉伯语 letters/words 以及他们的身份证号码;这是两列的 table:
ID Letter
ء 1
2 آ
3 أ
4 إ
5 لا
6 لإ
7 ئ
8 ا
9 ـا
10 لأ
11 ـلا
12 ب
13 بـ
14 ـب
15 ـبـ
我想要的是在另一个sheet中输入字母后能够检索到该字母的id。 我同时使用了 match 和 vlookup excel 函数,它们似乎工作正常。但是,问题是它不能正确识别字母。
So, for example, if I enter ء I get 1 - which is correct.
If I enter آ I get 2 - which is correct.
If I enter أ I get 2 - which is incorrect, it should return 3
If I enter إ I get 2 - which is incorrect, it should return 4
If I enter ب I get 12 - which is correct.
If I enter بـ I get 13 - which is correct.
If I enter ـب I get 13 - which is incorrect, it should return 14
If I enter ـبـ I get 12 - which is incorrect, it should return 15
我用于 vlookup 的公式:
=VLOOKUP(A2; Full!$A:$E5; 2; FALSE)
其中:A2
有我输入的字母
Full!$A:$E5
是 table 我的数据
2
是我要从中获取数据的列的编号
False
因为我想要完全匹配
可能是什么问题?
我相信更聪明的人会想出更优雅的东西,但这里有一个适用于任何长度为 3 个或更少字符的示例:
将第六列添加到您的 table 并使用以下公式填充:
=CHOOSE(LEN(B2),UNICODE(B2),UNICODE(B2) & UNICODE(MID(B2,2,1)),UNICODE(B2) & UNICODE(MID(B2,2,1)) & UNICODE(RIGHT(B2,1)))
(我假设第 B
列是阿拉伯语文本在您的 table 中的位置)
然后使用下面的公式得到table中的行:
=MATCH(CHOOSE(LEN(A2),UNICODE(A2),UNICODE(A2) & UNICODE(MID(A2,2,1)),UNICODE(A2) & UNICODE(MID(A2,2,1)) & UNICODE(RIGHT(A2,1))),Full!F:F,0)
(其中 A2
是您输入查找文本的位置,Full!F:F
是在步骤 1 中插入公式的列)
匹配后,您可以使用 INDEX
检索您需要的任何数据。
您可以使用 UNICODE() 公式提供一个可以正确比较的 id。
我在Sheet"Full"上新建了A列(id现在移到B列,阿拉伯字母移到C列),A列单元格公式如下sheet中的A25全:
=UNICODE(C25)
那么检索 ID 的公式为:
=VLOOKUP(UNICODE(A2); Full!$A:$B5; 2; FALSE)
其中 A2 是您输入要知道 ID 的阿拉伯字母的位置。