Страницы: 1
RSS
Как заставить работать ВПР с длинными текстами?
 
Добрый день! Подскажите пожалуйста, почему функция ВПР и СЧЕТЕСЛИ не работают в данном случае? Что я делаю не правильно, из-за чего при наборе формулы вылезает эта дурацкая #ЗНАЧ!
 
dim284, работает, но для свыше 255 символов нет)
Изменено: Mershik - 29.04.2020 13:41:38
Не бойтесь совершенства. Вам его не достичь.
 
Оказывается такие данные (длиной 1542) ВПР не любит. Это если отвечать на вопрос буквально.
А вообще ищите не то или не там :(
 
Аааа, вот почему яблоки и груши складывает а 255 символов не складывает. Вот засада. Придется что-то придумать. Уже спасибо за "255".
 
Можно в допстолбец получить хэш, и искать по нему.
скрин
Изменено: Hugo - 29.04.2020 13:58:24
 
Огромное спасибо Hugo! Во-первых все работает, а во-вторых давно подумывал как бы перевести эти "длинные" четыре буквы во что-то более короткое. Оказывается решение этого было - GetHash.
Может кому-нибудь понадобится сама функция, прикрепляю её код. Результат совпал с результатом Hugo.

Код
Function GetHash(ByVal txt$) As String     Dim oUTF8, oMD5, abyt, i&, k&, hi&, lo&, chHi$, chLo$     Set oUTF8 = CreateObject("System.Text.UTF8Encoding")     Set oMD5 = CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider")     abyt = oMD5.ComputeHash_2(oUTF8.GetBytes_4(txt$))     For i = 1 To LenB(abyt)         k = AscB(MidB(abyt, i, 1))         lo = k Mod 16: hi = (k - lo) / 16         If hi > 9 Then chHi = Chr(Asc("a") + hi - 10) Else chHi = Chr(Asc("0") + hi)         If lo > 9 Then chLo = Chr(Asc("a") + lo - 10) Else chLo = Chr(Asc("0") + lo)         GetHash = GetHash & chHi & chLo     Next     Set oUTF8 = Nothing: Set oMD5 = Nothing End Function
 
Да, у меня этот же код в надстройке лежит, вероятно один источник.
Кстати если вдруг у кого не взлетает без библиотек - тут есть варианты:
https://www.sql.ru/forum/1305893/poluchenie-md5-hesha-v-vba
И там ссылка на источник этого кода, а там ещё ссылки...
Изменено: Hugo - 29.04.2020 15:30:05
 
А не проще использовать не ВПР вообще тогда? Формулы массива ИНДЕКС(ПОИСКПОЗ, например....
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх