Нужно найти правильную формулу на нескольких листах - PullRequest
0 голосов
/ 10 октября 2019

Я новичок в формулах, VBA, Pivots, у меня есть рабочая книга с несколькими листами (все отформатированы одинаково), я хочу найти общее количество каждого элемента, используемого для каждого отдела

I 'Я пробовал сводные таблицы, без радости. Я пробовал сводные таблицы, без радости. Я пробовал SUMIf, Countif, косвенные таблицы, все, без радости. Я погуглил его до смерти, но просто не могу заставить что-либо работать !!!

=SUMIF('Steven Bradley:Adam Cockroft'!A3:N31,B2,'Steven Bradley:Adam Cockroft'!N4:N31)

Значение # ошибки, Ref # ошибки

......... у меня болит голова

destination range

1 Ответ

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

Я думаю, что ваш синтаксис для просмотра листов правильный, проблема только в том, что он не пересекает листы. Аналогично с другими функциями массива.

Самый разумный ответ для меня будет сделать SUMIF на каждом листе, а затем сумму.

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

Если вы настаивали на том, чтобы обходиться без этого подхода, вы могли бы использовать этот UDF. Мне это не очень нравится, так как он не фиксирует изменения на других листах, даже с application.volatile.

Function sumifAcrossSheets(addressRng1 As Range, _
    conditionToCount As Variant, _
            sumRng As Range) As Double
    Application.Volatile
    Dim ws As Worksheet

    For Each ws In ThisWorkbook.Worksheets
     sumifAcrossSheets = sumifAcrossSheets + _
            Application.WorksheetFunction.SumIf( _
            ws.Range(addressRng1.Address), _
            conditionToCount, _
            ws.Range(sumRng.Address))
    Next ws


End Function

Вот некоторые заметки, которые я пролежал в этом процессе (игнорируйте язвительные комментарии:

enter image description here

...