Средневзвешенное

270
user943150

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

Вот формула:

=IF([@[Total Feeding]]=0,"",IF(SUM([@[G_Tokens]],[@[Lo_Tokens]],  [@[CZ_Tokens]],[@[Le_Tokens]],[@[C_Tokens]],[@[Rh_Tokens]],[@[H_Tokens]],[@[Aux_Tokens]])=0,0, (IF(D3="",0,D3/VLOOKUP([@Year],RedRate,MATCH(D$1,RedRate[#Headers],0),FALSE))+IF(G3="",0,G3 /VLOOKUP([@Year],RedRate,MATCH(G$1,RedRate[#Headers],0),FALSE))+IF(J3="",0,J3 /VLOOKUP([@Year],RedRate,MATCH(J$1,RedRate[#Headers],0),FALSE))+IF(M3="",0,M3 /VLOOKUP([@Year],RedRate,MATCH(M$1,RedRate[#Headers],0),FALSE))+IF(Q3="",0,Q3 /VLOOKUP([@Year],RedRate,MATCH(P$1,RedRate[#Headers],0),FALSE))+IF(T3="",0,T3 /VLOOKUP([@Year],RedRate,MATCH(T$1,RedRate[#Headers],0),FALSE))+IF(X3="",0,X3 /VLOOKUP([@Year],RedRate,MATCH(W$1,RedRate[#Headers],0),FALSE))+IF(AB3="",0,AB3 /VLOOKUP([@Year],RedRate,MATCH(AA$1,RedRate[#Headers],0),FALSE))) /SUM([@[G_Tokens]],[@[Lo_Tokens]],[@[CZ_Tokens]],[@[Le_Tokens]],[@[C_Tokens]], [@[Rh_Tokens]],[@[H_Tokens]],[@[Aux_Tokens]]))) 

Примечание: добавлены возврат каретки для удобства чтения; удалите их, чтобы скопировать и вставить всю формулу.

Вы знаете, как я могу сократить или просто это?

0
I would recommend you create multiple helper columns and break your formula down in to smaller pieces across the helper columns. This will assist with readability as well as formula maintenance when you come back a couple of month later and are wondering what the heck the formula was doing. Forward Ed 6 лет назад 2
Лучше поделитесь образцами данных с нами и укажите, для каких значений вы хотите получить средневзвешенное значение. ☺ Rajesh S 6 лет назад 2
It's hard for people to follow such a long formula, especially when we don't know what any of the cell references represent, or what the components are supposed to do. Can you add some explanation? fixer1234 6 лет назад 2
@fixer1234, it's okay ☺ Rajesh S 6 лет назад 0

0 ответов на вопрос

Похожие вопросы