Chcę losowo wybrać nazwę, która pasuje do określonych kryteriów. Zobacz na przykład obraz:
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.
microsoft-excel
list
Faraon
źródło
źródło
Odpowiedzi:
Jak dotąd najlepszy wynik to:
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)))
źródło