Jak filtrować listę i wybierać losowo jeden z wynikowych rekordów w programie Excel?

2

Chcę losowo wybrać nazwę, która pasuje do określonych kryteriów. Zobacz na przykład obraz:

wprowadź opis zdjęcia tutaj

Jak mogę przefiltrować listę, z których każda zawiera powiązane dane w innych kolumnach, stosując podane kryteria, a następnie wybrać losowo jeden rekord?

W razie potrzeby mogę użyć VB, nie jestem ograniczony do formuł w komórkach.

Faraon
źródło
Czy masz na myśli „Jak losowo filtrować listę na podstawie wielu kryteriów w programie Excel?” || bo tytuł brzmiał „przefiltrowane”, ale „jak mogę filtrować ..” i „Losowe wybieranie komórki spośród prostej tablicy jest łatwe ..” znajduje się w treści pytania.
p._phidot_

Odpowiedzi:

0

Jak dotąd najlepszy wynik to:

  • Dane -> włącz filtr na liście
  • ustaw kryteria filtrowania za pomocą VBA:

    Sheets(mySheet).Range(myRange).AutoFilter Field:=2, Criteria1:="<>" & myValue

  • skopiuj tylko widoczne komórki do innego miejsca:

    Sheets(mySheet).Range(myRange).SpecialCells(xlCellTypeVisible).Copy Sheets(myNewSheet).Range(myNewRange).PasteSpecial Paste:=xlValues

  • wybierz losową komórkę z wynikowej listy:

    =INDEX('myNewSheet'!myNewRange;RANDBETWEEN(1;COUNTA('myNewSheet'!myNewRange)))

Faraon
źródło