Аномалия формулы массива Excel - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть формула массива в Excel, которая отлично работает во всех ячейках массива , за исключением , когда происходит изменение в условных тестах, и я не уверен, почему.Формула массива:

{=TEXT(VALUE(Header!$A$2)+VALUE(ReadingID)
*(IF(EventID="2", 1,IF(EventID="4", 1,0))*(VALUE(Header!$N$2)/86400)
+IF(EventID="2", 0, IF(EventID="4", 0, 1))*(VALUE(Header!$M$2)/86400))
, "#.000000")}

Типичные данные для значения ячеек формулы:

  • Заголовок! $ A $ 2 = '43432.40434' # Серия Excelномер даты / времени в виде текста.
  • ReadingID = # текстовые числа в виде текста, например, «1000», «1001» и т. д.
  • EventID =# Значения 1, 2, 3 или 4 как текст.
  • Заголовок! $ M $ 2 = 60 # как текст.
  • Заголовок! $ N $ 2 = 10 # в виде текста.

Столбцы ReadingID и EventID имеют тот же размер, что и столбец формулы массива.Типичные результаты, когда EventID изменяется, скажем, с "2" на "3", следующие:

ReadingID EventID  Result        Diff
  '1540     '2     43432.582581  0.000116
  '1541     '2     43432.582696  0.000115
  '1542     '3     43433.475173  0.892477
  '1543     '3     43433.475868  0.000695
  '1544     '3     43433.476562  0.000694

В столбце Diff просто отображаетсяувеличивается от строки к строке и соответствует любой стороне перехода в значении EventID (например, от «2» до «3»).Та же самая аномалия возникает во всех точках, где изменяется значение EventID (то есть от «1» до «2»; от «3» до «4»).

Формула массива охватывает несколько тысяч ячееки возвращает ожидаемый результат во всех других строках, , за исключением при изменении EventID .

Изначально я пытался использовать функцию OR для выполнения добавочной суммы, но это нене работают, поэтому вложенные операторы IF.

Кто-нибудь может подсказать, если что-то не так с формулой массива, или как избежать этого мошеннического результата?

ПРИМЕЧАНИЕ: Данные представлены в текстовом формате, поскольку они импортируются из других источников в формате CSV, и я хотел бы сохранить исходный импорт.

...