Spreadsheet: 853720d1703675238-list-all-values-with-a-specific-sub-string-logbook2
Sheet: list boulders by date

start date | end date | number |  |  |  |  |  |  |  |  | list by letter | k | # |  |  |  |  | list by first # letters | 3 | la | # |  |  | super | # |  | - confirmed, there are 12 problems with "super" somewhere in them, either at the start or in the middle
2021-10-01 00:00:00 | 2021-10-31 00:00:00 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | if(isnumber(search("v",A2)),"ok","not ok")
 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | {=INDEX($E$1:$E$4;MATCH(1;SEARCH($D$1:$D$4;A1);-1))} |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | IFERROR(INDEX('all boulders'!$D$12:$D$7263,SMALL(IF(LEFT('all boulders'!$D$12:$D$7263,1)=$M$1,ROW('all boulders'!$D$12:$D$7263)),ROW(1:1))-11,1),"")
date | name | F | B | V | solo | location | area | [NAME] | comment2 |  |  | name |  | sector | area | date |  | name |  | sector | area | date
 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | - finds first "super" |  | {INDEX('all boulders'!D:D,MATCH(1,SEARCH($Y$1,'all boulders'!D:D),-1))}
 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | using * |  |  |  | IFERROR(INDEX('all boulders'!$D:$D,AGGREGATE(15,6,ROW('all boulders'!$D$12:$D$8000)/(LEFT('all boulders'!$D$12:$D$8000,$W$1)=$X$1),ROWS(X$5:X5))),"")
 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | using ? |  |  |  | IFERROR(INDEX(the values I want to get back,AGGREGATE(15,6,ROW(the row they're on)/(the criterion they must meet=$X$1),a counter- 1,2,3...)),"")
 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | Red - when the criterion is met
 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | Green the row number(s) is/are returned
 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | [NAME] in ascending row order number
 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | Blue starting with the lowest matching row number
 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | Orange, finaly returning the value in that row from this column
 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | Black return blanks when no (further) matches are found.
 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | IFERROR(INDEX('all boulders'!$D$12:$D$7263, SMALL(IF(('all boulders'!$A$12:$A$7263<=$B$2)*('all boulders'!$A$12:$A$7263>=$A$2), MATCH(ROW('all boulders'!$A$12:$A$7263), ROW('all boulders'!$A$12:$A$7263)), ""), ROW('all boulders'!$A1)), COLUMN('all boulders'!$A1)),"")
 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | IFERROR(INDEX('all boulders'!$D$12:$D$7263,SMALL(IF(LEFT('all boulders'!$D$12:$D$7263,1)=$M$1,ROW('all boulders'!$D$12:$D$7263)),ROW(1:1))-11,1),"")
 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | =INDEX(A:A,AGGREGATE(15,6,ROW($A$2:$A$5)/(ISNUMBER(SEARCH($A$2:$A$5,C2))),1))
 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | IFERROR(INDEX('all boulders'!$D$12:$D$7263,SMALL(IF(LEFT('all boulders'!$D$12:$D$7263,1)=$M$1,ROW('all boulders'!$D$12:$D$7263)),ROW(1:1))-11,1),"")
 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | IFERROR(INDEX('all boulders'!$D$12:$D$7263,small(if(match(1,search($Y$1,'all boulders'!$D$12:$D$7263),-1),1),ROW('all boulders'!$D$12:$D$7263),(ROW(1:1)-11,1))),"") |  |  |  |  |  |  |  |  |  |  |  |  |  |  | - problem with this formula