Я создал формулу, индекс которой соответствует разным рабочим листам, а затем сложил их вместе.

Есть ли возможность сделать кодировку меньше или лучше? Я пытался и потерпел неудачу, но не получил результатов :(

,

У меня есть следующий код;

=IFERROR(INDEX('Report 1'!BC:BC,MATCH(B13,'Report 1'!$A:$A,0)),"0")
+IFERROR(INDEX('Report 2'!BC:BC,MATCH(B13,'Report 2'!$A:$A,0)),"0")
+IFERROR(INDEX('Report 3'!BC:BC,MATCH(B13,'Report 3'!$A:$A,0)),"0")
+IFERROR(INDEX('Report 4'!BC:BC,MATCH(B13,'Report 4'!$A:$A,0)),"0")
+IFERROR(INDEX('Report 5'!BC:BC,MATCH(B13,'Report 5'!$A:$A,0)),"0")

2 ответа2

1

Чтобы получить результаты из вашей формулы, удалите " около 0 чтобы формула не пыталась добавить текстовые строки.

но мы можем сократить формулу с помощью 3D SUMIF

С именами нужных листов в списке и ссылками на них с помощью команды INDIRECT в SUMIF:

=SUMPRODUCT(SUMIF(INDIRECT("'" & D1:D5 & "'!A:A"),B13,INDIRECT("'" & D1:D5 & "'!BC:BC")))

0

Есть ли возможность сделать кодировку меньше или лучше?

На самом деле, нет:(

Хотя вы можете использовать некоторые обходные пути:

  • именованный диапазон: вы можете определить имена для своих диапазонов и ссылаться на них
  • Ячейка поддержки: используйте другую ячейку для хранения результата вашей функции MATCH , поэтому не нужно запускать ее несколько раз
  • UDF: используйте макрос для создания пользовательской функции, где вы можете написать более хороший код, чем ваша текущая формула

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .