Функции Excel не дифференцируют некоторые арабские буквы - PullRequest
3 голосов
/ 13 июня 2019

У меня есть таблица в Excel с несколькими арабскими буквами / словами с их идентификационными номерами;это таблица из двух столбцов как таковая:

ID          Letter
ء           1
2           آ
3           أ
4           إ
5           لا
6           لإ
7           ئ
8           ا
9           ـا
10          لأ
11          ـلا
12          ب
13          بـ
14          ـب
15           ـبـ

Я хочу иметь возможность получить идентификатор письма после того, как я введу письмо на другом листе.Я использовал функции 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 содержит букву, которую я ввожу Full!$A$3:$E$145 - это таблица с моими данными 2 - этономер столбца, из которого я хочу получить данные False, потому что я хочу точное совпадение

В чем может быть проблема?

Ответы [ 2 ]

2 голосов
/ 13 июня 2019

Я уверен, что кто-то умнее придумает что-то более изящное, но вот кладж, который подходит для любого образца длиной 3 или менее символов:

  1. Добавьте шестую колонку к вашей таблице, заполненную следующей формулой:

    =CHOOSE(LEN(B2),UNICODE(B2),UNICODE(B2) & UNICODE(MID(B2,2,1)),UNICODE(B2) & UNICODE(MID(B2,2,1)) & UNICODE(RIGHT(B2,1)))
    

(где я предположил, что в столбце B находится арабский текст в вашей таблице)

  1. Затем используйте следующую формулу, чтобы получить строку в таблице:

    =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)

После того, как у вас есть совпадение, вы можете использовать INDEX для получения любых необходимых вам данных.

0 голосов
/ 13 июня 2019

Вы можете использовать формулу UNICODE () для предоставления идентификатора, который можно сравнивать должным образом.

Я создал новый столбец A на листе "Полный" (идентификатор теперь перемещен в столбец B иАрабские буквы в столбце C), формула для столбца A выглядит следующим образом для ячейки A25 в листе Full:

=UNICODE(C25)

Тогда формула для получения идентификатора будет иметь вид:

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

где A2 - это место, где вы положили арабскую букву, которую хотите узнать, идентификатор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...