Sheldahl liegt im westlichen Zentrum Iowas, rund 10 km östlich des Des Moines River, einem rechten Nebenfluss des Mississippi.
Die geografischen Koordinaten von Sheldahl sind 41°51′52″ nördlicher Breite und 93°41′50″ westlicher Länge. Die Stadt erstreckt sich über eine Fläche von 2,18 km² und verteilt sich über die Palestine Township des Story County, die Lincoln und die Union Township des Polk County sowie die Garden Township des Boone County.
Nachbarorte von Sheldahl sind Slater (an der nordöstlichen Stadtgrenze), Huxley (11,4 km ostnordöstlich), Cambridge (17,7 km in der gleichen Richtung), Alleman (11,7 km südöstlich), Ankeny (23 km südsüdöstlich), Polk City (11,1 km südlich), Granger (22,3 km südwestlich), Madrid (11,6 km westnordwestlich), Luther (21,8 km nordwestlich), Kelley (12,2 km nordnordöstlich) und Ames (25 km in der gleichen Richtung).
Der Iowa State Highway210 führt in West-Ost-Richtung am nördlichen Stadtrand von Sheldahl vorbei. Alle weiteren Straßen sind untergeordnete Landstraßen, teils unbefestigte Fahrwege sowie innerörtliche Verbindungsstraßen.
Nach der Volkszählung im Jahr 2010 lebten in Sheldahl 319 Menschen in 124 Haushalten. Die Bevölkerungsdichte betrug 146,3 Einwohner pro Quadratkilometer. In den 124 Haushalten lebten statistisch je 2,57 Personen.
Ethnisch betrachtet bestand die Bevölkerung mit vier Ausnahmen nur aus Weißen. Unabhängig von der ethnischen Zugehörigkeit waren 0,9 Prozent der Bevölkerung spanischer oder lateinamerikanischer Abstammung.
24,4 Prozent der Bevölkerung waren unter 18 Jahre alt, 59,3 Prozent waren zwischen 18 und 64 und 16,3 Prozent waren 65 Jahre oder älter. 49,2 Prozent der Bevölkerung waren weiblich.
Das mittlere jährliche Einkommen eines Haushalts lag bei 42.500 USD. Das Pro-Kopf-Einkommen betrug 24.043 USD. 2.2 Prozent der Einwohner lebten unterhalb der Armutsgrenze.[6]