Gostaria de ver se você pode fazer isso em um banco de dados tradicional (SQL ou similar) ou em algo como um console R. Se o problema está na plotagem, e não no cálculo, eu tentaria fazer algum tipo de filtragem (não tenho certeza de que tipo de dados você tem, ou como ele está espalhado, mas em qualquer caso você não precisa de 500k + pontos de dados em um gráfico) para se livrar de muitos pontos de dados desnecessários para o gráfico. Isso tornará a plotagem mais rápida (e você pode usar R ou gnuplot para a plotagem real se o Excel estiver muito lento)