Мне нужно игнорировать пустые ячейки в минимальном массиве Excel 2007, но я продолжаю получать 0

#excel #excel-2007 #worksheet-function #array-formulas

#excel #excel-2007 #worksheet-функция #массив-формулы

Вопрос:

Вот массив, который у меня есть:

 {=MIN(IF('APRIL 2011'!E3:E999<>"",'APRIL 2011'!E3:E999  
 *('APRIL 2011'!E3:E999*('APRIL 2011'!D3:D999='APRIL TOTALS'!A2))))}  
  

Он по-прежнему возвращает нули с пустыми ячейками!

Ответ №1:

Вы можете использовать функцию ISBLANK () для проверки наличия пустых ячеек. ЕСЛИ ячейка A1 пуста, то =A1="" вычисляется как true, и так же =A1=0

Я не знаю выражения для возврата пустого значения в ячейку, поэтому я использую «» вместо этого, вот так:

 =IF(ISBLANK([expression]), "", [expression])
  

Ответ №2:

Вложите ваши условия. Вы пытаетесь объединить критерии IF с (ЗНАЧЕНИЕМ) * (TRUE / FALSE), а когда значение TRUE / FALSE равно FALSE, вы умножаете на ноль. Таким образом, вы отбрасываете пустые ячейки, но искусственно заполняете свой результирующий набор нулями для каждой строки, где столбец D <> ‘ИТОГИ за АПРЕЛЬ’!A2.

В виде формулы массива,

 =MIN(IF('APRIL 2011'!E3:E999<>"", IF('APRIL 2011'!D3:D999='APRIL TOTALS'!A2, 'APRIL 2011'!E3:E999)))
  

Формулы массива должны быть завершены с помощью Ctrl Shift Enter↵ (но вы уже знали это!).

Ответ №3:

Проблема с вашей формулой заключается в том, что вы возвращаете минимум массива логических произведений. Поскольку это логические произведения, произведения с ЛОЖНЫМ множителем (те, которые вы собираетесь исключить) считаются равными 0.

Я вижу способ обойти это, пока столбец E не содержит нулевых значений. Я внес два больших изменения в вашу исходную формулу:

  1. Чтобы устранить проблему с логическим множителем, я использовал оператор IF для выбора множителей вместо 1 и 0 для TRUE и FALSE. Значение TRUE по-прежнему равно 1, но значение FALSE теперь равно большому числу — сделайте его больше любого значения в столбце E. Таким образом, пустые записи будут иметь минимальное значение, только если они являются единственным значением.
  2. Чтобы учесть случай, когда будет возвращено большое число, я сделал так, что минимальное значение вычисляется только в том случае, если в столбце E есть непустые значения для значений Col D = A2. Если таких значений нет, возвращается «».

      {=IF(COUNT(IF('APRIL 2011'!D3:D999='APRIL TOTALS'!A2,  
       IF('APRIL2011'!E3:E999<>"",'APRIL2011'!D3:D999)))=0,""  
       MIN(IF('APRIL2011'!E3:E999<>"",'APRIL2011'!E3:E999,10000000000)  
       *IF('APRIL 2011'!D3:D999='APRIL TOTALS'!A2,1,1000000000000)))}