Добрый день! помогите настроить формулу. на листе свод нужно подтянуть данные в зависимости от даты и от наименования продукции, это я могу)), но проблема в том, что массив заказы в каждой ячейке имеет несколько уникальных артиклей (которые подтягиваются через переходник). пробовала счетеслимн, не получилось, формулу Query изучала, но применить ее пока не ни разу не могу ((
Добрый день! помогите настроить формулу. на листе свод нужно подтянуть данные в зависимости от даты и от наименования продукции, это я могу)), но проблема в том, что массив заказы в каждой ячейке имеет несколько уникальных артиклей (которые подтягиваются через переходник). пробовала счетеслимн, не получилось, формулу Query изучала, но применить ее пока не ни разу не могу ((
[/vba] ОГРАНИЧЕНИЕ: Предполагается уникальность артикула в одной ячейке, т.е. конкретный артикул может встретиться в одной ячейке только один раз (возможно, среди других артикулов). Если в одной ячейке один и тот же артикул встретится более одного раза, то формула все равно учтет его только один раз.
[p.s.]ПРЕОДОЛЕНИЕ ОГРАНИЧЕНИЯ[/p.s.] Следующая формула, введенная в ту же ячейку D7 на листе "свод", позволяет посчитать несколько одинаковых артикулов в одной ячейке листа "заказы": [vba]
[/vba] Здесь сначала по датам выбираются нужные ячейки листа "заказы" (без учета артикулов). Далее эти ячейки очищаются от "мусора", оставляя в них только артикулы, разделенные пробелом. Затем с помощью JOIN все ячейки сливаются в одну длинную строку, которая содержит все артикулы (из нескольких строк "заказов" за период), разделенные пробелом. После этого с помощью SPLIT по пробелу строка превращается в горизонтальный массив, который затем разворачивается вертикально с помощью TRANSPOSE. Таким образом, в считающую функцию COUNTIF поступают два вертикальных массива: массив артикулов для выбранной категории с листа "переходник" и "очищенный" массив артикулов, встретившихся во всех строках "заказов" за заданный период. Окончательно функция SUM "собирает" все частные результаты COUNTIF по элементам "очищенного" массива артикулов.
Формула для ячейки D7 на листе "свод" - формула копируема (протягиваема) на остальные зеленые ячейки этого листа: [vba]
[/vba] ОГРАНИЧЕНИЕ: Предполагается уникальность артикула в одной ячейке, т.е. конкретный артикул может встретиться в одной ячейке только один раз (возможно, среди других артикулов). Если в одной ячейке один и тот же артикул встретится более одного раза, то формула все равно учтет его только один раз.
[p.s.]ПРЕОДОЛЕНИЕ ОГРАНИЧЕНИЯ[/p.s.] Следующая формула, введенная в ту же ячейку D7 на листе "свод", позволяет посчитать несколько одинаковых артикулов в одной ячейке листа "заказы": [vba]
[/vba] Здесь сначала по датам выбираются нужные ячейки листа "заказы" (без учета артикулов). Далее эти ячейки очищаются от "мусора", оставляя в них только артикулы, разделенные пробелом. Затем с помощью JOIN все ячейки сливаются в одну длинную строку, которая содержит все артикулы (из нескольких строк "заказов" за период), разделенные пробелом. После этого с помощью SPLIT по пробелу строка превращается в горизонтальный массив, который затем разворачивается вертикально с помощью TRANSPOSE. Таким образом, в считающую функцию COUNTIF поступают два вертикальных массива: массив артикулов для выбранной категории с листа "переходник" и "очищенный" массив артикулов, встретившихся во всех строках "заказов" за заданный период. Окончательно функция SUM "собирает" все частные результаты COUNTIF по элементам "очищенного" массива артикулов.Gustav