La anemia por déficit de vitamina B12 se debe a la ausencia de una proteína que se produce en las células del estómago, el factor intrínseco a la que tiene que unirse la vitamina B12 para poder absorberse. Sin esta proteína, la vitamina B12 no se absorbe.
La anemia por falta de vitamina B12 es mucho menos frecuente que por falta de hierro. La vitamina B12 está en los alimentos de origen animal. Las personas con dietas vegetarianas no suelen tener problemas ya que algunos alimentos están fortificados con B12 y también la producen ciertas bacterias, además el organismo en condiciones normales tiene vitamina B12 almacenada para unos cuantos años. Es un tipo de anemia que aparece en personas de edad avanzada y que debe tratarse con vitamina B12 inyectada por vía intramuscular.