данных в TheRange {1 "" 1 "" 1 "" 1 "" 2}Excel Match Ошибка в разреженном диапазоне с повторяющимися ключами
= матч (2, TheRange , 1) возвращает 9, как и ожидалось
= Match (1.5, TheRange, 1) возвращает 7, как и ожидалось
= Match (1, TheRange, 1) возвращает 5, который не ожидается
Любой встретить это ? Кто-нибудь получил исправление?
Кроме того, если я использую Worksheet.Function.Match в VBA, я получаю более неожиданные результаты.
BTW все работает нормально, если мы поставляем разреженный массив с не дублирующимися ключами, например. {1 "" 2 "" 3 "" 4 "", 5}. Он также работает с различными размерами массивов, например. {1 "" 1 "" 1 "" 1 "" 2 "", 2}. – DangerMouse
Это правда, что двоичный поиск на несортированных данных иногда по-прежнему получает правильный ответ, но это зависит от того, что именно выполняется поиск и что ищут. Например. MATCH (1, {1,42,3}, 1) «работает», но MATCH (1, {1, -42,3}, 1) этого не делает. – jtolle