Marble and granite are quite porous. Since the stain is from a soap, try putting a wet cloth over the stain for a while to see if it will dilute.
I’d get a hand towel dripping wet and leave it for an hour or so. Check it after an hour, if the stain is still there, but changed, do it again. I doubt you’ll get it all out. I had a grease stain on a piece of granite that I was able to lighten, but I didn’t get it all the way out.
I’d try this, first. A good absorbing powder is, of all things, Plaster of Paris (the dry powder, of course.) I use it to clean flux from my stained glass after soldering. It’s fairly inexpensive. Be sure you brush it off before getting it wet, it sets up pretty fast. It may work well.
Or get another bottle or two of shampoo, and create similar stains all over the counter, in a nice marble pattern. Then it’ll look like they are supposed to be there; that they’re part of the design in the marble.
I read that acid can etch marble, so it wasn’t on the list of “to try”. A friend pointed out that if worst comes to worst, I can possibly have it polished out. I have no idea what that entails, though.
If it doesn’t work on the marble, try it on any number of other stains you haven’t been able to remove (or have been able to remove, but not without a lot of work). It gets soap scum off of my shower stall with a mere swipe. (No, I’m not an employee of the company, and am not paid to say such things. I just loves me my Magic Eraser).