We can't disagree on:

using 'select' slows down the code
using 'activate' slows down the code
worksheet interaction slows down the code

In the perspective of 'speed' (see the thread title) these ar the first 3 most influential recommendations: avoid 'select', avoid 'activate', avoid worksheet/document interaction.

After that improvements can be obtained by restructuring data, reducing loops,etc. but these are minor compared to the first 3 recommendations.

If you add the perspective 'TS knowledge' you introduce a perspective that is highly based on assumptions.
I can't tell by alias the competence level ot the TS.
From the start I therefore assume 'complete competence'.
That's why I give an answer without taking the 'TS competence' into account.
Only after the reaction of the TS on the provided suggestion I can make some assessment of his/her competence level.
If I get the impression the TS is intrigued by the suggestion and is willing to learn more I provide more explanation.

I also keep in mind that our suggestions are not only meant to serve the TS but also the 'thousands' of visitors [irony]that are looking for 'excellent examples' of VBA solutions in the decades to come[/irony].
The competence level of these visitors I am not aware of; so I prefer to provide them a suggestion that meets VBA criteria first.

BTW. rereading my code I still found 1 error (since it is so simple to read it is very simple to debug):

Sub M_snb() 
    sn = Sheets("Data").Cells(1).CurrentRegion 
    sp = Sheets("Mapping").UsedRange 
    sf= split("dddd_'mmm-yy_\Wk ww_\WB dd-mm-yyyy_\WE dd-mm-yyyy","_") 
     
    For j = 2 To UBound(sn) 
        For jj = 2 To UBound(sp) 
            If sn(j, 3) = sp(jj, 1) Then Exit For 
        Next 
        sn(j, 17) = sp(jj, 2) 
        sn(j, 18) = sp(jj, 4) 
        sn(j, 19) = sp(jj, 5) 
         
        For jj = 2 To UBound(sp) 
            If sn(j, 1) = sp(jj, 16) Then exit For 
        Next 
        sn(j, 20) = sp(jj, 20) 
        sn(j, 21) = sp(jj, 21) 
         
        w_00 = sn(j, 2) - Weekday(sn(j, 2)) 
        For jj = 22 To 28 
            If jj < 27 Then sn(j, jj - 10) = Format(Choose(jj - 21, sn(j, 2), sn(j, 2), sn(j, 2), w_00 + 1, w_00 + 7), sf(jj - 22)) 
            sn(j, jj) = Choose(jj - 21, sn(j, 5) * sn(j, 4), sn(j, 6) * sn(j, 4), sn(j, 7) * sn(j, 4), sn(j, 8) * sn(j, 4), sn(j, 9) / 600, sn(j, 10) / 60, sn(j, 11) / 60) 
        Next 
    Next 
     
    Sheets("Data").Cells(1).CurrentRegion.Offset(19) = sn 
End Sub