SumIf на основе текущего месяца в столбце - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть эта таблица:

|       1       |       2       |       3       |       4       |       5       |       6       |
|------------------------------------------------------------------------------------------------------
| A | B | C | D | E | F | G | H | I | J | K | L | M | N | N | O | P | Q | R | S | T | U | V | W | X | Y
|------------------------------------------------------------------------------------------------------
| n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n
| n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n
| n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n
| n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n | n

, где число 1-6 (но на самом деле оно продолжается до 12) обозначает месяц, а "n" обозначает случайное число. Что мне нужно, это добавить столбец в конце и в каждой строке подсчитать данные из текущей строки и до текущего месяца (A, E, I, M, P, T, X, ...), но на основе текущего месяца, так что если currentmonth равен 4 (к сегодняшнему дню), то сумма «n» столбцов (A, E, I и M), если будет только февраль, то сумма только ячеек в этой единственной строке за текущий месяц (таким образом, суммируем только A и E) .

просто в VbA, но мне нужно это как формула Excel.

Понятия не имею, как мне начать

Ответы [ 3 ]

0 голосов
/ 30 апреля 2020

Вы можете использовать функцию SUMPRODUCT:

=SUMPRODUCT((A3:X3)*($A$1:$X$1<=MONTH(TODAY()))*($A$1:$X$1<>""))

enter image description here

0 голосов
/ 30 апреля 2020

Учитывая ваше расположение данных, если у вас последняя версия Excel, с функцией SEQUENCE вы можете использовать:

=SUM(INDEX(3:3, SEQUENCE(MONTH(TODAY()),,0,1)*4+1))

Если у вас нет функции SEQUENCE, попробуйте :

=SUM(INDEX(3:3,N(IF(1,(ROW(INDEX($A:$A,1,1):INDEX($A:$A,MONTH(TODAY()),1))-1)*4+1))))

Особенно с последней формулой вам, возможно, потребуется «подтвердить» эту формулу массива , удерживая нажатой ctrl + shift при нажатии введите . Если вы сделаете это правильно, Excel поместит фигурные скобки {...} вокруг формулы, как показано в строке формул

0 голосов
/ 30 апреля 2020

Вы говорите, что это просто в VBA, но вам нужна формула.
Когда вы объявляете функцию VBA как publi c в своем модуле (Public Function Calculate_Month(...) as ...), вы можете использовать эту функцию в качестве формулы:

=Calculate_Month(...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...