Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel函数不区分某些阿拉伯字母_Excel_Excel Formula_Match_Vlookup_Arabic - Fatal编程技术网

Excel函数不区分某些阿拉伯字母

Excel函数不区分某些阿拉伯字母,excel,excel-formula,match,vlookup,arabic,Excel,Excel Formula,Match,Vlookup,Arabic,我有一个excel表格,里面有一些阿拉伯字母/单词及其id号;这是一个由两列组成的表: ID Letter ء 1 2 آ 3 أ 4 إ 5 لا 6 لإ 7 ئ 8 ا 9 ـا 10 لأ 11 ـلا 12 ب 13 ب

我有一个excel表格,里面有一些阿拉伯字母/单词及其id号;这是一个由两列组成的表:

ID          Letter
ء           1
2           آ
3           أ
4           إ
5           لا
6           لإ
7           ئ
8           ا
9           ـا
10          لأ
11          ـلا
12          ب
13          بـ
14          ـب
15           ـبـ
我想要的是在我将信件输入另一张纸后能够检索到信件的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$3:$E$145; 2; FALSE)
其中:
A2
有我输入的字母
满了$A$3:$E$145
是包含我的数据的表格
2
是我要从中获取数据的列的编号
False
因为我需要精确匹配


有什么问题吗?

我相信更聪明的人会想出更优雅的东西,但这里有一个适用于任何长度为3个或更少字符的示例:

  • 将第六列添加到表格中,并使用以下公式填充:

    =CHOOSE(LEN(B2),UNICODE(B2),UNICODE(B2) & UNICODE(MID(B2,2,1)),UNICODE(B2) & UNICODE(MID(B2,2,1)) & UNICODE(RIGHT(B2,1)))
    
  • (我假设列
    B
    是阿拉伯文文本在表中的位置)

  • 然后使用以下公式获取表中的行:

    =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$2:F$16,0)
    
  • (其中,
    A2
    是输入查找文本的位置,
    Full!F$2:F$16
    是步骤1中插入公式的列)

    一旦找到匹配项,就可以使用
    索引
    检索所需的任何数据。

    可以使用UNICODE()公式提供可以正确比较的id

    我在工作表“Full”上创建了一个新的a列(id现在移动到B列,阿拉伯语字母移动到C列),a列的公式如下所示,用于工作表Full中的单元格A25:

    =UNICODE(C25)
    
    那么检索id的公式是:

    =VLOOKUP(UNICODE(A2); Full!$A$3:$B$145; 2; FALSE)
    

    其中A2是你想知道id的阿拉伯字母所在的位置。

    你的公式是什么?我编辑了这个问题以包含这些信息我不会说也不会写阿拉伯语,但我知道同一个字符使用不同的字形,这取决于它在单词中的位置或它自己。这会导致问题吗?(即显示了某个标志符号,但Excel会查找“独立”标志符号?)我认为这可能是问题的原因,但我如何解决它?例如,第二个独立的阿拉伯文字母是ب。但在阿拉伯语中,字母可以连接起来,因此单词开头的同一个字母会转换为بـ,其中会添加一个额外的字母或图示符(看起来像是添加了下划线)。而在一个单词的结尾,你会发现这个字母看起来像: ب,它们的符号在前面。当字母在一个词的中间时,它在前后都有一个字形:α-两个快速问题:1)你是否愿意拥有一个辅助列?2) 这个问题是否也出现在单词上,还是仅出现在单个字符上?