Как я могу вычислить сумму чисел двух столбцов только для части строк? - PullRequest
0 голосов
/ 14 октября 2019

Скажем, у меня есть лист Excel с 10000 строк и двух столбцов. Все 20 000 ячеек заполнены числами, и данные отсутствуют. Я хочу иметь третий столбец, значения которого являются суммой столбца A и столбца B. Например, C70 = A70 + B70 и C82 = A82 + 82 и т. П.

проблема в том, что я хочу сделать это только для части строк, скажем, от строки 125 до строки 8954. Меня не волнуют остальные значения. И я не хочу делать это, перетаскивая сетку с помощью мыши. Это возможно?

Ответы [ 3 ]

2 голосов
/ 14 октября 2019

Если у вас есть доступ к SEQUENCE () (в настоящее время доступно только для инсайдеров Office 365), тогда да, это возможно:

=INDEX(A:A,SEQUENCE(1000,,ROW(),1))+INDEX(B:B,SEQUENCE(1000,,ROW(),1))

Где 1000 - желаемое количество строк. Поместите формулу в первую ячейку и она автоматически заполнит остальные.

enter image description here

1 голос
/ 14 октября 2019

Полагаю, вам нужна логика в отношении того, что происходит, связанного с начальной и конечной строками.

Вы можете использовать if-statement или sumifs() для этого ... выполнит if-оператор, поэтому я могу указать, что требования не соответствуют нулю.

Если для параметра Строка начала задано значение 2, а для конца строки - 4 (см. изображение), можно использовать эту формулу и перетащить ее вниз к нижней части всех столбцов:

 =IF(AND(ROW(A2)<=F$2,ROW(A2)>=E$2),SUM(A2:B2),"")

enter image description here

Обратите внимание на изображение, что C5 не имеет значения;это связано с тем, что условие if ложно.

0 голосов
/ 14 октября 2019

Другая идея, простой макрос, который будет делать то, что вы хотите, спрашивая пользователя, какова начальная и конечная строка.

    Sub test()
    Dim startrow As Integer 'variable to hold first row
    Dim endrow As Integer 'variable to hold last row

    startrow = InputBox("Enter the start row")
    endrow = InputBox("Enter the end row")

    'loops through you desired range calculating what you want
    Dim i As Integer
    For i = startrow To endrow
        Cells(i, 4).Value = Cells(i, 1).Value + Cells(i, 2).Value
    Next

    End Sub

Просто измените значения в соответствии с вашими потребностями в тех ячейках, которые вы хотитесложите и куда вы хотите, чтобы сумма пошла.

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