Несколько критериев уникальных значений - PullRequest
0 голосов
/ 14 декабря 2018

enter image description here У меня есть две проблемы, с которыми мне нужна помощь.

Первая - создать динамический список уникальных идентификационных номеров для элементов, соответствующих «Лошади», встолбец J на ​​листе 2 !, «Шарик» в столбце I на листе 2 !, и который не содержит слова «собака» в столбце A на листе 2!В приведенном ниже примере это вернуло бы идентификационные номера 48 и 56

Во-вторых, пока я вычислил количество активов, отвечающих этому критерию (3), используя

= COUNTIFS (Sheet2! $ A: $ A, " <> Dog ", Sheet2! $ J: $ J, "Horse", Sheet2! $ I: $ I, "Ball")

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

1 Ответ

0 голосов
/ 15 декабря 2018

Итак, я понимаю, что вы решили свою вторую проблему.Что касается динамического списка, я считаю, что самый быстрый способ сделать это - использовать макрос.Если вы хотите, чтобы ваш уникальный список идентификаторов помещался в Sheet3, он бы выглядел так:

Sub list()

Dim pet, toy, animal As String
Dim ID, row As Integer

'pointing where list of unique ids will begin
Sheets("Sheet3").Activate
Range("A2").Select

'pointing beginig of the table with data
Sheets("Sheet2").Activate
Range("A2").Select

'loop to look for the ids
Do While IsEmpty(ActiveCell) = False
    pet = ActiveCell.Value
    ID = ActiveCell.Offset(0, 2).Value
    toy = ActiveCell.Offset(0, 8).Value
    animal = ActiveCell.Offset(0, 9).Value

    If ((pet <> "dog") And (toy = "ball") And (animal = "horse")) Then
        Sheets("Sheet3").Activate
        ActiveCell.Value = ID
        ActiveCell.Offset(1, 0).Select
        Sheets("Sheet2").Activate
    End If

    ActiveCell.Offset(1, 0).Select
Loop

'removing duplicates from our list
Sheets("Sheet3").Activate
row = ActiveCell.row
ActiveSheet.Range("$A$2:$A$" & row).RemoveDuplicates Columns:=1, Header:=xlNo

End Sub
...