Мне нужна функция или формула листа или пользовательская функция VBA, чтобы получить сумму списка чисел, и результат будет вверху списка, а не внизу списка, как функция Autosum в Excel. Также будет два списка номеров в двух отдельных столбцах, поэтому я не хочу писать формулу для каждого списка номеров. Также на изображении желтые клетки будут пустыми в реальной жизни.

На изображении я попытался привести пример.Я надеюсь, что это поможет вам.

2 ответа2

0

Используйте =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 должна справиться .

0

Создать этот макрос

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 он сделает сумму
Лучше использовать другой столбец, если у вас нет фиксированного числа строк (или просто оставьте больше места, чем максимальное количество строк, которое вы написали в макросе)

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