Disaggregated final energy consumption in industry - quantities by NACE Rev. 2 activity

Data - Eurostat

Info

Last observation: Annual: 2024 (N = 135,895)

First observation: Annual: 2017 (N = 99,635)

Last data update: 23 jul 2026, 22:52. Last compile: 24 jul 2026, 03:10

Structure

Total Final Energy Consumption in Industry

Germany, France, Italy, Spain, Poland

Code
nrg_d_indq_n %>%
  filter(geo %in% c("DE", "FR", "IT", "ES", "PL"),
         siec == "TOTAL",
         nace_r2 == "TOTAL",
         unit == "TJ_NCV",
         values > 0) %>%
  year_to_date %>%

  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(values = values/1000) %>%
  mutate(color = ifelse(geo == "FR", color2, color)) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  theme_minimal() + scale_color_identity() + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(2000, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Total energy consumption, industry (PJ, NCV)")

Germany: Energy Consumption by Industrial Sector

Chemicals, Basic Metals, Non-metallic Minerals, Paper

Code
nrg_d_indq_n %>%
  filter(geo == "DE",
         siec == "TOTAL",
         nace_r2 %in% c("C20", "C24", "C23", "C17"),
         unit == "TJ_NCV",
         values > 0) %>%
  year_to_date %>%

  mutate(values = values/1000) %>%
  ggplot + geom_line(aes(x = date, y = values, color = Nace_r2)) +
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(2000, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = "bottom",
        legend.title = element_blank()) +
  guides(color = guide_legend(nrow = 2)) +
  xlab("") + ylab("Energy consumption (PJ, NCV)")

Latest Year by Country and Sector

Code
latest_y <- nrg_d_indq_n %>%
  filter(geo == "DE",
         siec == "TOTAL",
         nace_r2 == "TOTAL",
         unit == "TJ_NCV",
         values > 0) %>%
  summarise(m = max(time)) %>%
  pull(m)

nrg_d_indq_n %>%
  filter(geo %in% c("DE", "FR", "IT", "ES", "PL"),
         siec == "TOTAL",
         nace_r2 %in% c("C20", "C24", "C23", "C17"),
         unit == "TJ_NCV",
         time == latest_y) %>%
  mutate(values = values/1000) %>%
  select(Geo, Nace_r2, values) %>%
  spread(Geo, values) %>%
  print_table_conditional()
Nace_r2 France Germany Italy Poland Spain
Manufacture of basic metals 93.08189 328.5647 166.04824 71.22642 100.20459
Manufacture of chemicals and chemical products 166.90757 469.3017 98.11328 84.66797 129.08820
Manufacture of other non-metallic mineral products 97.97116 223.7281 182.66516 114.23095 164.05504
Manufacture of paper and paper products 74.94667 183.3290 78.39235 62.63087 76.82406