Функция сопоставления Excel, выдающая противоречивые результаты - PullRequest
0 голосов
/ 16 октября 2018

Следующие вопросы в stackoverflow.com были прочитаны, но не помогли:
1. Формула Excel - Непоследовательное поведение для INDEX (MATCH ())
2. Excel - Почему это приложение.Match () несовместимо?
3. Непредсказуемый вывод из Excel Index-Match
4. Функция сопоставления Excel (меньше чем) ведет себя непоследовательно
5. excel - Почему Application.Match () несовместимо?
6. функция листа - несоответствующая формула возвращается в Excel

Мне нужно понять и исправить причину несогласованного поведения функции MATCH при использовании match_type 1 в различных LOOKUP_ARRAY с в электронной таблице

Чтобы еще больше прояснить проблему, я вставил ниже соответствующее описание match функции с match_type 1:

Match-type:1 или опущено

Поведение: MATCH находит наибольшее значение, которое меньше или равно lookup_value.Значения в аргументе lookup_array должны быть расположены в порядке возрастания

Когда я выполняю следующее:

Command                                Result
---------------------------------------------

=CORRESP(96;{0;91,2;92,8;94,4;96};1)   5                
=CORRESP(72;{0;69;70;71;72};1)         5                

Приведенные выше результаты верны, и я не ставлю их под сомнение.

В простой электронной таблице в ссылке я воспроизвожу использование функции сопоставления =MATCH(LOOKUP_VALUE,LOOKUP_ARRAY,1) в четырех диапазонах: PVc, PV, TPDc и TPD и с различными значениями внесколько ячеек, но проблема возникает только с LOOKUP_VALUE 72 в LOOKUP_ARRAYS TPDc и TPD.

Я считаю, что проблема четко объяснена в файле Excel по ссылке.

https://1drv.ms/x/s!AlpItI7re-Sdi_NP8XD-TVxkPXVbhw

1 Ответ

0 голосов
/ 23 октября 2018

Существует проблема со значениями, хранящимися в вашем листе Excel.Если я скачаю его и распакую (просто переименуйте *.xlsx в *.zip), в файле xl/worksheets/sheet1.xml появится следующее:

<row r="9" spans="1:26">
  <c r="A9" s="3" t="s">
    <v>8</v>
  </c>
  <c r="B9" s="5">
    <v>0</v>
  </c>
  <c r="C9" s="5">
    <v>67.833333333333314</v>
  </c>
  <c r="D9" s="5">
    <v>68.666666666666643</v>
  </c>
  <c r="E9" s="5">
    <v>69.499999999999972</v>
  </c>
  <c r="F9" s="5">
    <v>70.3333333333333</v>
  </c>
  <c r="G9" s="5">
    <v>71.166666666666629</v>
  </c>
  <c r="H9" s="5">
    <v>71.999999999999957</v>
  </c>
  <c r="I9" s="5">
    <v>71.999999999999957</v>
  </c>
  <c r="J9" s="5">
    <v>71.999999999999957</v>
  </c>
  ...
</row>

Я не знаю, как был создан ваш Excel, ноочевидно, сохраненные числа не являются точными.

Просто попробуйте перейти в ячейку H9 и наберите 7 2 Введите .Затем ячейки H10 и H11 пересчитываются и содержат ожидаемый результат.

Как советует Антуан де Сент-Экзюпери:

То, что важно, невидимо дляeye.

Другими словами, если вы чувствуете, что Excel дает вам неожиданные результаты, всегда идите в тупик :) Вы можете взглянуть на другой пример странного поведения, которое можно решить таким же образом:https://stackoverflow.com/a/49731873/2886891

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