Excel несколько условий для каждой строки в нескольких строках (приветствуются решения массивов или скриптов) (Пороги производительности предприятия)

Я собираю листы, которые подсчитывают, соответствует ли группа предприятий определенным порогам оборота в нескольких странах.

Колонка A – это страны (строка 2 = глобальная, строка 4-34 = страны-члены ЕС); столбцы CH – это обороты каждого предприятия (в глобальном масштабе и в каждом государстве-члене ЕС).

Должны быть соблюдены четыре критерия: я борюсь без (iii). В качестве фона критерием (ii) является:

(ii) совокупный оборот всех объединяющих фирм более чем на 100 млн. евро в каждом из по меньшей мере трех государств-членов

Я нашел решение для этого здесь .

{=IF(SUM(IF(MMULT(C4:H31+0;TRANSPOSE(COLUMN(C4:H31)^0))>=100*10^6; 1; 0))>=3; TRUE; FALSE)} 

Критерий (iii)

(iii) оборот более 25 млн. евро для каждой из по меньшей мере двух фирм в каждом из трех государств-членов, включенных в (ii)

При расщеплении двух критериев в своих собственных массивах я получаю правильные истинные / ложные значения для каждой страны: комбинированный оборот более 100 миллионов в государстве-члене

 {=IF(MMULT(C4:H31+0;TRANSPOSE(COLUMN(C4:H31)^0))>=100*10^6;TRUE;FALSE)} 

а также

оборот для каждой из по меньшей мере двух фирм из более чем 25 млн. человек в государстве-члене

 {=IF((MMULT(IF(C4:H31>=25*10^6;1;0);TRANSPOSE(COLUMN(C7:H34)^0)))>=2;TRUE;FALSE)} 

Однако объединение этих двух формул в одно с IF (AND ()) не работает

 {=IF(AND(MMULT(C4:H31+0;TRANSPOSE(COLUMN(C4:H31)^0))>=100*10^6;(MMULT(IF(C4:H31>=25*10^6;1;0);TRANSPOSE(COLUMN(C4:H31)^0)))>=2);TRUE;FALSE)} 

Есть ли способ сделать это, используя либо массивы (предпочтительные), либо VBA?

Большое спасибо!

ElEsido

Ваши две формулы работают отлично, как вы говорите. То, что они оба делают, – это дать вам вектор-столбец из 1 и 0, из которого вы можете получить счет, просто суммируя элементы.

Чтобы объединить их, вам нужно сделать скаляр умножить каждую пару элементов, чтобы вы получили другой вектор-столбец, который вы можете считать таким же образом, чтобы он выглядел так:

 =SUM(IF(MMULT(C4:H10+0,TRANSPOSE(COLUMN(C4:H10)^0))>=100, 1, 0)*IF((MMULT(IF(C4:H10>=25,1,0),TRANSPOSE(COLUMN(C7:H10)^0)))>=2,1,0)) 

Чтобы все было просто, я тестировал его только на нескольких строках данных, поэтому вам нужно будет масштабировать его до ваших фактических данных и вернуть миллионы.

введите описание изображения здесь

  • Именованный диапазон последовательных случайных чисел
  • Эффективная формула Excel для возврата нескольких совпадений из большого количества строк
  • Измените цвет табуляции листов Excel с помощью рубина
  • Рельсы не доступны для доступа к объекту В контроллере с использованием Roo для импорта Excel / CSV и PGSQL DB
  • Массив в Excel 2007 с использованием PHPExcel
  • Преобразование диапазона Excel в переменную в Python
  • Interesting Posts

    Как написать сценарий VB, чтобы найти несколько ключевых слов во всех ячейках и выделить каждое ключевое слово?

    Openpyxl: определение того, какой символ в значении ячейки зачеркнут

    Службы Analysis Services Excel KPI не отображается

    Как сделать масштабируемую диаграмму в Excel 2013

    Можно ли использовать OLEDB для вставки формулы?

    VBA – Зацикливание по пользовательским типам

    VBA Excel – SQL-запрос через ADO возвращает бесконечный нулевой набор записей

    Объекты Excel OLE встраиваемых путей

    VBA Вставить значения и пропустить таблицы во время цикла

    Проверка данных Excel не отображается в списке

    Как перемещать строки с датами в них на другой лист?

    excel превращает мои даты, которые настраиваются на цифры при использовании в формуле

    Легко использовать данные Excel в SQL Server

    Определение того, соответствует ли случай двум квалификаторам, когда один квалификатор требует гибкости при определении правильности совпадения

    Excel 2010 показывает элементы в выпадающем списке, где выполняются критерии

    Давайте будем гением компьютера.