#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 не содержит нулевых значений. Я внес два больших изменения в вашу исходную формулу:
- Чтобы устранить проблему с логическим множителем, я использовал оператор IF для выбора множителей вместо 1 и 0 для TRUE и FALSE. Значение TRUE по-прежнему равно 1, но значение FALSE теперь равно большому числу — сделайте его больше любого значения в столбце E. Таким образом, пустые записи будут иметь минимальное значение, только если они являются единственным значением.
-
Чтобы учесть случай, когда будет возвращено большое число, я сделал так, что минимальное значение вычисляется только в том случае, если в столбце 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)))}