Hello,
Yes you have to edit the products one by one and select that attribute or that specific category in which you add the html block shortcode in description.
Filter by attribute is the only way to use your custom filter in your categories list to display the on sale items.
Currently that functionality is not available that if you set a sale price of some product and it automatically goes to on sale filter.
The default Woocommerce does not have such an option, unfortunately. Our theme does not have such option either. You will have to find a plugin or customize.
Best Regards.