powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / EXCEL: Формула массивов, упростить ИЛИ
10 сообщений из 10, страница 1 из 1
EXCEL: Формула массивов, упростить ИЛИ
    #36745025
Volder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, прошу совета.

В качестве примера, креплю упрощенный вариант того, что нужно получить.
Есть три колонки (параметры) - A,B,C, и колонка, значения которой нужно просуммировать - D.

Причем суммироваться должны значения из D, если в колонке А значения 3 или 5, в колонке B - 4, 5 или 6, а в колонке C - 3.

Использую формулу массивов {=СУММ(((A2:A6=3)+(A2:A6=5))*((B2:B6=4)+(B2:B6=5)+(B2:B6=6))*(C2:C6=3)*D2:D6)}
все считается корректно.

Но вопрос в следующем - можно ли как-то упростить, чтобы A2:A6 и B2:B6 не повторялись, что-то вроде (A2:A6 in (3;5))*(B2:B6 in (4;5;6))*...
или (A2:A6={3;5})*(B2:B6={4;5;6})

просто в реальном файле там идут ссылки на внешний файл и справа в условиях не простые 3,4,5 и т.д., то есть формула разрастается очень сильно и потом сложно разобраться даже с открытыми закрытыми скобками, а если потом через какое-то время что-то нужно будет поменять, пол-дня придется разбираться.
...
Рейтинг: 0 / 0
EXCEL: Формула массивов, упростить ИЛИ
    #36745280
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для упрощения формулы примените именованные диапазоны
...
Рейтинг: 0 / 0
EXCEL: Формула массивов, упростить ИЛИ
    #36745347
Volder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
viktturДля упрощения формулы примените именованные диапазоны
пример, который я привел - упрощенный
вот, один из вариантов, которые есть в реальном файле:
Код: plaintext
...((ПРАВСИМВ(ЛЕВСИМВ('[file_path]115Proc_agg'!$A$ 1 :$A$ 100 ; 8 ); 1 )="1") + (ПРАВСИМВ(ЛЕВСИМВ('[file_path]115Proc_agg'!$A$ 1 :$A$ 100 ; 8 ); 1 )="3"))...

Использование именованного диапазона заменит только $A$1:$A$100, что практически никак не повлияет на сложность формулы.
...
Рейтинг: 0 / 0
EXCEL: Формула массивов, упростить ИЛИ
    #36745387
mighters
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Volder,

из того, что увидел в Вашем примере:

ПРАВСИМВ(ЛЕВСИМВ()) поменяйте на ПСТР() например...

по сабжу, а можно всю формулу посмореть?
...
Рейтинг: 0 / 0
EXCEL: Формула массивов, упростить ИЛИ
    #36745421
Volder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mightersПРАВСИМВ(ЛЕВСИМВ()) поменяйте на ПСТР() например...
это не одно и то же.
например, если длина значения меньше, чем позиция, с которой нужно получить символ - то ПСТР вернет пусто, а ПРАВСИМВ(ЛЕВСИМВ()) все равно вернет 1 символ справа - нужно последнее поведение.

Касательно всей формулы - она просто набор перемножающихся условий аналогичными тому, что уже привел как пример.
вот еще пример всей формулы:
Код: plaintext
1.
2.
{=СУММ((ЛЕВСИМВ('[file_path]301_agg'!$A$1:$A$100;6)="_"&B994)
*((ПРАВСИМВ(ЛЕВСИМВ('[file_path]301_agg'!$A$1:$A$100;12);1)="1")+(ПРАВСИМВ(ЛЕВСИМВ('[file_path]301_agg'!$A$1:$A$100;12);1)="3")+(ПРАВСИМВ(ЛЕВСИМВ('[file_path]301_agg'!$A$1:$A$100;12);1)="4"))
*'[file_path]301_agg'!$B$ 1 :$B$ 100 )}

на самом деле формул много разных - это только одна из
...
Рейтинг: 0 / 0
EXCEL: Формула массивов, упростить ИЛИ
    #36745489
mighters
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Volder,

а если вот так попробовать:
Код: plaintext
=БДСУММ(A1:D6;D1;M1:O4)

файл с условиями прикрепил
...
Рейтинг: 0 / 0
EXCEL: Формула массивов, упростить ИЛИ
    #36745493
mighters
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чувствую, там есть какие-то подводные камни, но смогу рассмотреть только завтра..
...
Рейтинг: 0 / 0
EXCEL: Формула массивов, упростить ИЛИ
    #36745542
Volder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mightersЧувствую, там есть какие-то подводные камни, но смогу рассмотреть только завтра..Спасибо за попытку помочь,
БДСУММ() не пойдет, там нужно первым аргументом указывать именно диапазон, у меня как видите выше - там еще обрабатываются значения из ячеек предварительно (ПРАВСИМВ(ЛЕВСИМВ())).

Пример изначальный упрощенный.

Второй отрицательный момент - это то, что всю параметризацию нужно прописывать отдельными таблицами, а так как различных формул много - то это только усугубит положение вещей. Параметры логичней на мой взгляд прописывать в теле формул.
...
Рейтинг: 0 / 0
EXCEL: Формула массивов, упростить ИЛИ
    #36745741
DV68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Volder,
по первому приведенному примеру, условия прописываются в отдельных ячейках (I1:I3, J1:J3 и K1:K3):
=СУММ(СЧЁТЕСЛИ(I1:I3;A2:A6)*СЧЁТЕСЛИ(J1:J3;B2:B6)*СЧЁТЕСЛИ(K1:K3;C2:C6)*D2:D6)
...
Рейтинг: 0 / 0
EXCEL: Формула массивов, упростить ИЛИ
    #36748868
Volder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DV68Volder,
по первому приведенному примеру, условия прописываются в отдельных ячейках (I1:I3, J1:J3 и K1:K3):
=СУММ(СЧЁТЕСЛИ(I1:I3;A2:A6)*СЧЁТЕСЛИ(J1:J3;B2:B6)*СЧЁТЕСЛИ(K1:K3;C2:C6)*D2:D6)спасибо за вариант, но к сожалению, не подходит по тем же причинам, что и БДСУММ выше.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / EXCEL: Формула массивов, упростить ИЛИ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]