Мне нужна функция или формула листа или пользовательская функция VBA, чтобы получить сумму списка чисел, и результат будет вверху списка, а не внизу списка, как функция Autosum в Excel. Также будет два списка номеров в двух отдельных столбцах, поэтому я не хочу писать формулу для каждого списка номеров. Также на изображении желтые клетки будут пустыми в реальной жизни.
2 ответа
Используйте =SUM(START:END)
, Копировать / Вставить и / или Макрос
Чтобы сохранить ввод формулы для каждого списка, который вы могли бы использовать в первой «ячейке результата», вы можете использовать =SUM(B4:B10)
. Например:
Затем скопируйте и вставьте эту формулу в другие «ячейки результата», и формула обновит ссылки. Это предполагает, что списки, которые вы суммируете, имеют одинаковую длину.
Если вы выполняете это несколько раз - например, для отчетов - запись макроса поможет автоматизировать процесс.
При записи макроса средство записи макросов записывает все шаги в коде Visual Basic для приложений (VBA). Эти шаги могут включать в себя ввод текста или чисел, нажатие на ячейки или команды на ленте или в меню, форматирование ячеек, строк или столбцов или даже импорт данных из внешнего источника, например, Microsoft Access.
Если вы хотите написать свой собственный макрос, стоит посмотреть на .Select
и ActiveCell.Formula[A/R1C1]
, в соответствии с:
Worksheets("yourworksheet").Range("ResultCell").Formula = "=SUM(Range1:Range2)"
Замена и вставка ResultCell
мере необходимости.
Дальнейшее чтение
Есть много ресурсов там; Вы можете рассмотреть ресурс по формулам (из викибук). С этой страницы:
Формулы, используемые в электронных таблицах, автоматически обрабатывают данные так, как их видит пользователь. Формула берет данные из определенных областей электронной таблицы, обрабатывает их и помещает выходные данные в новую область электронной таблицы в зависимости от того, где написана формула. Формула может быть такой простой, как «= SUM(A10, A11)» (которая берет информацию в 10-й и 11-й ячейках строки A и выводит сумму), или настолько сложной, насколько этого пожелает пользователь. Функции, используемые для создания формулы (например, SUM), предварительно определяются программным обеспечением для работы с электронными таблицами.
Стоит кое-что почитать, поскольку это может значительно облегчить решение будущих проблем.
У Microsoft тоже есть страница о различных способах добавления ценностей ; но в этом случае SUM
должна справиться .
Создать этот макрос
Sub MacroSumDownward()
' Keyboard Shortcut: Ctrl+d
'
Selection.FormulaR1C1 = "=SUM(R[1]C:R[99999]C)"
End Sub
Вы можете записать любой макрос и назначить ему ярлык и скопировать выше:
Selection.FormulaR1C1 = "=SUM(R[1]C:R[99999]C)"
R [99999], чтобы выбрать любую ячейку в столбце и включить ее в сумму, которую вы можете изменить, поскольку у вас есть максимальное количество строк в ваших данных,
и удалите любую другую инструкцию, просто сохраните
Sub Macro()
Selection.FormulaR1C1 = "=SUM(R[1]C:R[99999]C)"
End sub
когда вы хотите запустить его, просто выделите ячейку над каждым столбцом (все одновременно) и используйте ярлык, который вы назначили для макроса (я использовал Ctrl+d
он сделает сумму
Лучше использовать другой столбец, если у вас нет фиксированного числа строк (или просто оставьте больше места, чем максимальное количество строк, которое вы написали в макросе)