`ReplacePart` works with named pattern : ReplacePart[tab, {i_, 2} :> Position[votes[[i, All]], ff][[1, 1]]] Do not forget to use a delayed rule (`:>` instead of `->` ) `ReplacePart` is not memory/speed optimal. It may be slow and memory consuming with large data sets.