Уравнение Excel, чтобы определить, соответствует ли каждое значение в одном диапазоне значению в другом диапазоне - PullRequest
0 голосов
/ 25 апреля 2018

В качестве проверки полноты для пользователя финансовой модели мне нужно уравнение, которое скажет, была ли учтена каждая иерархия продуктов.Это означает, что каждое значение в диапазоне B1: B100 на Tab1 должно учитываться в диапазоне C2: c200 на Tab2.Если это условие выполнено, формула должна сказать «Завершено», если не «Неполноценно».Кто-нибудь знает, как создать такую ​​функцию?

=if(Every value in tab1!b1:b100 has a match in tab2!c2:c200, "Complete", "Incomplete")

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

просто чтобы добавить решение VBA

Sub columnsMatch()
    Dim filters As Variant
    filters = Application.Transpose(Worksheets("Sheet2").Range("C2:C200").Value)

    With Worksheets("Sheet1").Range("b1:b100") 'reference "Sheet1" sheet range B1:B100
        .AutoFilter Field:=1, Criteria1:=filters, Operator:=xlFilterValues ' filter referenced range with values from "Sheet2" sheet range C2:C200
        .Parent.Range("M1").Value = IIf(Application.WorksheetFunction.Subtotal(103, .Cells) = .Count And Not IsError(Application.Match(.Cells(1, 1).Value, filters, 0)), "Complete", "Incomplete")
        .Parent.AutoFilterMode = False ' remove filters
    End With
End Sub
0 голосов
/ 25 апреля 2018

Ну, чтобы считать количество совпадений, мы можем использовать:

=SUMPRODUCT(COUNTIF(Sheet1!B1:B100,Sheet2!C2:C200))

Чтобы проверить, можно ли найти все на первом листе на втором листе:

=SUMPRODUCT(COUNTIF(Sheet1!B1:B100,Sheet2!C2:C200)) = COUNTA(Sheet1!B1:B100)

или

=SUMPRODUCT(COUNTIF(Sheet1!B1:B100,Sheet2!C2:C200)) = 100

, если нет пробелов или спадов.

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