Molliere Diagram for Steam

Mollier Diagram for Steam

Steam tables are an important ingredient in many engineering calculations and in case of Excel based calculations, great quality improvement and time saving can be achieved if steam table data can be retrieved automatically rather than input manually. This is especially true if a calculation needs to be updated and steam conditions have to be varied.

Many commercial solutions can be found on the internet and these are either standalone programs or compiled excel addins. However, it is less known that there is a freeware alternative using the industrial standard IAPWS-IF97. It was coded in visual basic by Bernhard Spang from Hamburg in Germany.

Water97_v13.xla is an Add-In for MS Excel which provides a set of functions for calculating thermodynamic and transport properties of water and steam using the industrial standard IAPWS-IF97. For more information about IAPWS-IF97, underlying equations and references see

Available functions

Functions are available for calculating the following properties in the single-phase (vapor or liquid) state for temperatures 273.15 K ≤ T ≤ 1073.15 K and pressures 0 < p ≤ 1000 bar

  • density
  • specific internal energy
  • specific enthalpy
  • specific entropy
  • specific isobaric heat capacity
  • specific isochoric heat capacity
  • dynamic viscosity
  • thermal conductivity

Additionally there are functions for calculating the boiling point temperature as a function of pressure and the vapor pressure as a function of temperature as well as for the above eight properties for the saturated liquid and vapor state both as a function of temperature and pressure between 273.16 K or 611.657 Pa and 647.096 K or 220.64 bar (critical point).

Terms of use

The addin may be redistributed for free, but may not be changed or sold without the author’s explicit permission. It is provided “as is” without warranty of any kind.

25 Responses to “Steam Tables in Excel VBA”

  • Tomaz Stare:

    Dear Sirs,

    i should be very glad, if you can send me your
    steam tables.

    Regards, Tomaz Stare

  • Tomaz, just click the link Water97_v13.xla in the above log post. Good Luck!

  • Steven Blake:

    Does the water97 xla work with Excel 2010?

    Thank you.

  • Yes Steven, the water97 xla should work just fine in Excel 2010.
    It is a collection of user defined functions and does not make use of any version dependent system calls to the excel object.

  • Dave Marquis:

    Hello Mr Spang

    I tried to email you about the add-in. I’ve found a small bug I wanted to let you know about. I also wanted to send a copy of my spreadsheet for your reference.

    I’ve downloaded and have been used your spreadsheet add-in for a small simulation project I am working. First, let me commend you on the product. It is very easy to use and I thank you for making it freely available.

    I’m writing because I actually found a small hole (bug) in the system. I’ve attached the spreadsheet I built for your reference. It occurs on the 375C iso-line, from 199-207 bar segment in the T_vs_h tab.

    I haven’t had the time to debug the problem, but I thought I’d tell you about it anyway.

    Again, thank you for a overall wonderful product.

    Best regards

  • Hello Dave,

    I’m afraid I have to pass on the praise as the author, mr Spang is not in any way linked to the Falchemist. This site is just passing on his gift to the engineering society. I am however interested in your bug report so I will contact you by email.

    The Falchemist

  • Tom Kendall:

    Excellent add-in. Unfortunately, in the United States, “customary” units are ubiquitous. Water97 was created for the SI system of units. I’ve created a set of unit conversion routines and companion functions that work with Water97_v13 that allow the user to input “customary” units (Btu, deg F, etc.) and get output in customary units. I’ve attempted to contact Mr. Spang at his listed e-mail address, but it was bounced. Hopefully I’ll be able to reach him through CheResources to see if he wishes to include the expansion pack.

    I’ve seen some posts where people wished they could provide other inputs (e.g. Pressure and Entropy) to get outputs such as enthalpy. While Water97 does not have this ability (consistent with IAPWS-IF97), using the Goal Seek capability of Excel provides this ability. Simply solve for Temperature using pressure and entropy, and then use the temperature to call the appropriate function in Water97. If you are willing to do a little visual basic programming, it can even be automated.

  • James Norberg:

    Is this program compatible with Apple/Mac?

  • James, it should be, provided you have MS-Excel on your MAC. Anyway, just download and try. The only thing you stand to loose is a couple of minutes of your time! Would apreciate a comment back if it works or not by the way.

    The Falchemist

  • K.Ramdas:

    I am a retired Mechanical Engineer related to working in fluids particularly in Steam. During my active days we have to refer to the steam properties only through tedious time consuming tables. I am fascinated by the idea of having a steam table in a computer for quick and easy reference that too in Excel.
    Please provide me with a copy of your steam table. I am from India and we are more familiar with Metric Units. Hope your excel add on would be in metric version too.
    Thank you in anticipation.

  • Mr Ramdas,
    please use the download link (Water97_v13.xla) in the above blog post. You will download an add-in that can be loaded into Excel and it is in Metric units.

    The Falchemist

  • J. Gassmann:


    great addin I used a lot in office 2003. But now – in Office 2010 it does not wor anymore! The functions like tSatW produce an error (I think because variables like bet are not declared). Option Explicit is off!

    Regards, Jochen.

  • Hello Jochen,

    I’m not sure what’s wrong because I have been able to run the code on Office 2010 without any problems.
    In response to your query I’ve also checked the missing declarations and included all missing ones. No typo’s appeared in the code. Obviously if there were, the results would not have been likely to pass my comparisons against the ‘real’ steam tables.
    So concluding a can only assume there’s something wrong in either your settings within excel or in your office installation.

    The Falchemist

  • Bo Matic:

    Hello. I am working on a project that uses several functions on this add-in, and it works fine in Excel. However I am creating an Access document, and need to have access to these same formulas in Access. Has anyone successfully implemented this in Access?

  • Husain:

    Can anyone help find T(p,s) using the water97.xla tool. I have tried the Excel’s Goal & seek method, but results are not accurate enough compared to other online tools.

  • Dear Husain,

    The best suggestion I can give is to write an additional user defined function using the Newton Raphson method (see for instance You can then find the desired temperature by trial & error on the function entropyW(P,T) to get the specified S at constant P and varied T. By writing your own function you have total control over the accuracy.

    In case NR gives issues at breakpoints between the entropy regions, you can also try Regula Falsi, Bisection or hybrid mixes of methods. Also dampening of iteration steps may help (use Google to find VBA code examples).

    An alternative would be to try and modify the analytical equations to get T explicit as a function of S and P (using Matlab or similar software) but this may or may not be possible. You’d also need to validate the results to be sure so I’d recommend the numerical solution method.

    Good luck,

    The Falchemist.

  • Inaam:

    Dear publisher,
    The add-in isnt working we me. I am using it in my excel file where i calculated boiler efficiency. The add-in is loaded, but whenever i change the value it gives an error. I am using excel 2013 by the way.

  • Dear Inaam, I have verified that the add-in works in Excel 2013. Please verify your trust center settings and make sure you provide input in the correct units of measurement (kelvin and bar abs).

  • francis:

    sir, do you have a set of equations that can be used solve manually the steam properties?

  • There are many on the web but this is one:
    And of course a very quick and dirty one (just for saturation temperature) T[°C] = 100 * (P[atm])^0.25

  • James:

    sir, Can anyone help find steam/vapor quality x(p,t) using the water97.xla tool ? p=pressure ; t=temperature ; x=fraction/quality

  • Dear James, the steam/water quality is not a function of p and t. It depends on the specific enthalpy also. You can use the available functions to solve for the correct mixture enthalpy by varying x. The MS Excel Solver can be used for this purpose.
    There’s another blog post that can help you :

  • HuaWu Liu:

    Dera Tom Cendall,

    I’m working on a power plant steam bypass valve control logics. We need to use known steam enthalpy and pressure to determine the corresponding steam temperature and density. We use imperial units, psi, oF, btu/lb and lb/ft3.
    I were wonder if you could send me the steam table excel spreadsheet in “Customary” units. We need to built the steam table function into our DCS for auto-calculation.



  • Dear HuaWu,

    All the Visual basic code behind the spreadsheet is programmed in SI units. Changing this would not be an easy task and be error prone. As the spreadsheet is supplied ‘as is’ I suggest you convert your input in Customary units to the units accepted by the spreadsheet, and then convert the answers back. This can be done easily in excel. However, if you need to build the functionality into your DCS, you will need to find a way to transport all visual basic code into it as well because without this code it does not work.

    It might be easier to do some curve fitting on results of the spreadsheet and use polynomial functions in your DCS as I presume the window of operating conditions is kind of fixed.

    Good luck

    The Falchemist

  • J. Gassmann:

    Hello, well it worked so far even in excel 2013. But in the newest office versions its given up. I’ve got office 365 now and its not working. I’m able to activate it, but i Cant use any formula. Its not listet in the menu.
    Will there be an update for the new VBA version?

Leave a Reply

Time limit is exhausted. Please reload the CAPTCHA.