|
|
|
EXCEL: Формула массивов, упростить ИЛИ
|
|||
|---|---|---|---|
|
#18+
Добрый день, прошу совета. В качестве примера, креплю упрощенный вариант того, что нужно получить. Есть три колонки (параметры) - 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 и т.д., то есть формула разрастается очень сильно и потом сложно разобраться даже с открытыми закрытыми скобками, а если потом через какое-то время что-то нужно будет поменять, пол-дня придется разбираться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2010, 13:16 |
|
||
|
EXCEL: Формула массивов, упростить ИЛИ
|
|||
|---|---|---|---|
|
#18+
Для упрощения формулы примените именованные диапазоны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2010, 14:58 |
|
||
|
EXCEL: Формула массивов, упростить ИЛИ
|
|||
|---|---|---|---|
|
#18+
viktturДля упрощения формулы примените именованные диапазоны пример, который я привел - упрощенный вот, один из вариантов, которые есть в реальном файле: Код: plaintext Использование именованного диапазона заменит только $A$1:$A$100, что практически никак не повлияет на сложность формулы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2010, 15:18 |
|
||
|
EXCEL: Формула массивов, упростить ИЛИ
|
|||
|---|---|---|---|
|
#18+
Volder, из того, что увидел в Вашем примере: ПРАВСИМВ(ЛЕВСИМВ()) поменяйте на ПСТР() например... по сабжу, а можно всю формулу посмореть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2010, 15:32 |
|
||
|
EXCEL: Формула массивов, упростить ИЛИ
|
|||
|---|---|---|---|
|
#18+
mightersПРАВСИМВ(ЛЕВСИМВ()) поменяйте на ПСТР() например... это не одно и то же. например, если длина значения меньше, чем позиция, с которой нужно получить символ - то ПСТР вернет пусто, а ПРАВСИМВ(ЛЕВСИМВ()) все равно вернет 1 символ справа - нужно последнее поведение. Касательно всей формулы - она просто набор перемножающихся условий аналогичными тому, что уже привел как пример. вот еще пример всей формулы: Код: plaintext 1. 2. на самом деле формул много разных - это только одна из ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2010, 15:44 |
|
||
|
EXCEL: Формула массивов, упростить ИЛИ
|
|||
|---|---|---|---|
|
#18+
Volder, а если вот так попробовать: Код: plaintext файл с условиями прикрепил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2010, 16:07 |
|
||
|
EXCEL: Формула массивов, упростить ИЛИ
|
|||
|---|---|---|---|
|
#18+
Чувствую, там есть какие-то подводные камни, но смогу рассмотреть только завтра.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2010, 16:08 |
|
||
|
EXCEL: Формула массивов, упростить ИЛИ
|
|||
|---|---|---|---|
|
#18+
mightersЧувствую, там есть какие-то подводные камни, но смогу рассмотреть только завтра..Спасибо за попытку помочь, БДСУММ() не пойдет, там нужно первым аргументом указывать именно диапазон, у меня как видите выше - там еще обрабатываются значения из ячеек предварительно (ПРАВСИМВ(ЛЕВСИМВ())). Пример изначальный упрощенный. Второй отрицательный момент - это то, что всю параметризацию нужно прописывать отдельными таблицами, а так как различных формул много - то это только усугубит положение вещей. Параметры логичней на мой взгляд прописывать в теле формул. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2010, 16:26 |
|
||
|
EXCEL: Формула массивов, упростить ИЛИ
|
|||
|---|---|---|---|
|
#18+
Volder, по первому приведенному примеру, условия прописываются в отдельных ячейках (I1:I3, J1:J3 и K1:K3): =СУММ(СЧЁТЕСЛИ(I1:I3;A2:A6)*СЧЁТЕСЛИ(J1:J3;B2:B6)*СЧЁТЕСЛИ(K1:K3;C2:C6)*D2:D6) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2010, 17:48 |
|
||
|
EXCEL: Формула массивов, упростить ИЛИ
|
|||
|---|---|---|---|
|
#18+
DV68Volder, по первому приведенному примеру, условия прописываются в отдельных ячейках (I1:I3, J1:J3 и K1:K3): =СУММ(СЧЁТЕСЛИ(I1:I3;A2:A6)*СЧЁТЕСЛИ(J1:J3;B2:B6)*СЧЁТЕСЛИ(K1:K3;C2:C6)*D2:D6)спасибо за вариант, но к сожалению, не подходит по тем же причинам, что и БДСУММ выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2010, 17:50 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=36745387&tid=2177874]: |
0ms |
get settings: |
6ms |
get forum list: |
22ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
195ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 527ms |

| 0 / 0 |
