Периодическая таблица менделеева excel

Добрый день.

Дмитрий Иванович Менделеев  родился в г. Тобольск Тобольской губернии Российской  империи   8 февраля 1834 года в семье директора тобольской  гимназии.

В 1869 году, в возрасте 35 лет Д.И. Менделеев открыл закон природы, позднее названный в честь открывателя «Периодический закон Д.И. Менделеева ».

На основании открытого закона природы была создана «Таблица химических элементов Менделеева».

Сначала данная таблица имела не вполне приглядный вид. Сейчас эта таблица существует во  множестве вариантов оформления.

Один из наиболее удачных вариантов оформленных в виде таблицы «Excel» Вы можете скачать по ссылке ниже:

Таблица Менделеева в формате Excel/ бесплатно

Таблица полностью готова к печати, но гораздо удобнее ей пользоваться в электронном виде, так как при наведении курсора мыши на ячейки с элементами в «Excel» появляется всплывающая подсказка с подробным описанием элемента.

Описание элемента в таблице Менделеева

Описание элемента в таблице Менделеева

Тип: Программа

Программные средства: Microsoft Office Excel 2007

Описание: Данная программа представляет собой периодическую систему химических элементов Д. И. Менделеева, разработанную в среде Excel. В таблице содержатся не только основные сведения об элементах, но и дополнительная информация, появляющаяся в виде заметок при наведении курсора на верхний правый угол ячейки элемента. Элементы выделены цветом в зависимости от их свойств. Правила выделения указаны в «Справке» программы.

Практическое применение: Данной программой можно пользоваться не только индивидуально. Содержащиеся в ней данные будут полезны на уроках химии, а красочный дизайн даст наглядное представление о периодической системе элементов и вызовет дополнительный интерес, особенно у учеников первого года обучения химии. Также программу можно использовать на уроках информатики как пример таблицы, созданной в Excel.

Скачать:

Лучший ответ Сообщение было отмечено ЮрийТ как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
Function MolMassa(ByVal strFormula As String) As Double
    Dim i%, j%, k%, El, eM, S$, S1$, S2$, SubSum#(), OldEM#, OldEM2#, ReCalc As Boolean, LenFormula%, Chislo$, dic
    El = Split("Ac Ag Al Am Ar As At Au Ba Be Bi Bk Br Ca Cd Ce Cf Cl Cm Co Cr Cs Cu Dy Er Es Eu Fe Fm Fr Ga Gd Ge He Hf Hg Ho In Ir Kr La Li Lr Lu Md Mg Mn Mo Na Nb Nd Ne Ni No Np Os Pa Pb Pd Pm Po Pr Pt Pu Ra Rb Re Rh Rn Ru Sb Sc Se Si Sm Sn Sr Ta Tb Tc Te Th Ti Tl Tm Xe Yb Zn Zr B C F H I K N O P S U V W Y")
    eM = Array(227.028, 107.868, 26.982, 243.061, 39.948, 74.922, 209.987, 196.967, 137.33, 9.012, 208.98, 247.07, 79.904, 40.078, 112.41, 140.12, 251.08, 35.453, 247.07, 58.933, 51.996, 132.905, 63.546, 162.5, 167.26, 252.083, 151.96, 55.847, 257.095, 223.02, 69.723, 157.25, 72.59, 4.003, 178.49, 200.59, 164.93, 114.82, 192.22, 83.8, 138.906, 6.941, 260.105, 174.967, 258.099, 24.305, 54.938, 95.94, 22.99, 92.906, 144.24, 20.179, 58.69, 259.101, 237.048, 190.2, 231.036, 207.2, 106.42, 144.913, 208.982, 140.908, 195.08, 244.064, 226.025, 85.468, 186.207, 102.906, 222.018, 101.07, 121.75, 44.956, 78.96, 28.086, 150.36, 118.71, 87.62, 180.948, 158.925, 97.907, 127.6, 232.038, 47.88, 204.383, 168.934, 131.29, 173.04, 65.39, 91.224, 10.811, 12.011, 18.998, 1.008, 126.905, 39.098, 14.007, 15.999, 30.974, 32.066, 238.029, 50.942, 183.85, 88.906)
    strFormula = strFormula & "#"
    LenFormula = Len(strFormula)
    ReDim SubSum(1)
    Set dic = CreateObject("Scripting.Dictionary")
    For j = 0 To UBound(El)
        dic(El(j)) = eM(j)
    Next j
    k = 1
    i = 1
    Do
        S1 = Mid(strFormula, i, 1)
        ReCalc = True
        OldEM2 = OldEM
        Select Case S1
            Case "("
            Case ")", "#"
            Case "0" To "9"
                Chislo = Chislo & S1
                ReCalc = False
            Case Else
                S2 = Mid(strFormula, i, 2)
                S = ""
                If dic.Exists(S2) Then
                    S = S2
                ElseIf dic.Exists(S1) Then
                    S = S1
                End If
                If S <> "" Then
                    OldEM = dic(S)
                    i = i - 1 + Len(S)
                End If
        End Select
        If ReCalc Then
            If Chislo = "" Then Chislo = "1"
            SubSum(k) = SubSum(k) + OldEM2 * Val(Chislo)
            Chislo = ""
        End If
        Select Case S1
            Case "("
                OldEM = 0
                k = k + 1
                ReDim Preserve SubSum(k)
                SubSum(k) = 0
            Case ")"
                OldEM = SubSum(k)
                k = k - 1
        End Select
        i = i + 1
    Loop While i <= LenFormula
    MolMassa = SubSum(1)
    Set dic = Nothing
End Function
 
Sub Test_MolMassa()
    Debug.Print "H", MolMassa("H")
    Debug.Print "O", MolMassa("O")
    Debug.Print "H2O", MolMassa("H2O")
    
    Debug.Print "S", MolMassa("S")
    Debug.Print "Al2", MolMassa("Al2")
    Debug.Print "SO4", MolMassa("SO4")
    Debug.Print "(SO4)3", MolMassa("(SO4)3")
    Debug.Print "Al2(SO4)3", MolMassa("Al2(SO4)3")
 
    Debug.Print "H2(SO4)3", MolMassa("H2(SO4)3")
 
    Debug.Print "(CH3)3", MolMassa("(CH3)3")
    Debug.Print "(CH3)3N", MolMassa("(CH3)3N")
    Debug.Print "((CH3)3N)2", MolMassa("((CH3)3N)2")
End Sub

Вариант не для Windows без словаря

Кликните здесь для просмотра всего текста

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Function MolMassa2(ByVal strFormula As String) As Double ' Медленный вариант не под Windows
    Dim i%, j%, k%, El, eM, S$, S1$, S2$, SubSum#(), OldEM#, OldEM2#, ReCalc As Boolean, LenFormula%, Chislo$
    El = Split("Ac Ag Al Am Ar As At Au Ba Be Bi Bk Br Ca Cd Ce Cf Cl Cm Co Cr Cs Cu Dy Er Es Eu Fe Fm Fr Ga Gd Ge He Hf Hg Ho In Ir Kr La Li Lr Lu Md Mg Mn Mo Na Nb Nd Ne Ni No Np Os Pa Pb Pd Pm Po Pr Pt Pu Ra Rb Re Rh Rn Ru Sb Sc Se Si Sm Sn Sr Ta Tb Tc Te Th Ti Tl Tm Xe Yb Zn Zr B C F H I K N O P S U V W Y")
    eM = Array(227.028, 107.868, 26.982, 243.061, 39.948, 74.922, 209.987, 196.967, 137.33, 9.012, 208.98, 247.07, 79.904, 40.078, 112.41, 140.12, 251.08, 35.453, 247.07, 58.933, 51.996, 132.905, 63.546, 162.5, 167.26, 252.083, 151.96, 55.847, 257.095, 223.02, 69.723, 157.25, 72.59, 4.003, 178.49, 200.59, 164.93, 114.82, 192.22, 83.8, 138.906, 6.941, 260.105, 174.967, 258.099, 24.305, 54.938, 95.94, 22.99, 92.906, 144.24, 20.179, 58.69, 259.101, 237.048, 190.2, 231.036, 207.2, 106.42, 144.913, 208.982, 140.908, 195.08, 244.064, 226.025, 85.468, 186.207, 102.906, 222.018, 101.07, 121.75, 44.956, 78.96, 28.086, 150.36, 118.71, 87.62, 180.948, 158.925, 97.907, 127.6, 232.038, 47.88, 204.383, 168.934, 131.29, 173.04, 65.39, 91.224, 10.811, 12.011, 18.998, 1.008, 126.905, 39.098, 14.007, 15.999, 30.974, 32.066, 238.029, 50.942, 183.85, 88.906)
    strFormula = strFormula & "#"
    LenFormula = Len(strFormula)
    ReDim SubSum(1)
    k = 1
    i = 1
    Do
        S1 = Mid(strFormula, i, 1)
        ReCalc = True
        OldEM2 = OldEM
        Select Case S1
            Case "("
            Case ")", "#"
            Case "0" To "9"
                Chislo = Chislo & S1
                ReCalc = False
            Case Else
                S2 = Mid(strFormula, i, 2)
                For j = 0 To UBound(El)
                    If Len(El(j)) = 1 Then S = S1 Else S = S2
                    If S = El(j) Then
                        OldEM = eM(j)
                        i = i - 1 + Len(El(j))
                        Exit For
                    End If
                Next j
        End Select
        If ReCalc Then
            If Chislo = "" Then Chislo = "1"
            SubSum(k) = SubSum(k) + OldEM2 * Val(Chislo)
            Chislo = ""
        End If
        Select Case S1
            Case "("
                OldEM = 0
                k = k + 1
                ReDim Preserve SubSum(k)
                SubSum(k) = 0
            Case ")"
                OldEM = SubSum(k)
                k = k - 1
        End Select
        i = i + 1
    Loop While i <= LenFormula
    MolMassa2 = SubSum(1)
End Function



6



Function MolMassa(ByVal strFormula As String) As Double
    Dim i%, j%, k%, El, eM, S$, S1$, S2$, SubSum#(), OldEM#, OldEM2#, ReCalc As Boolean, LenFormula%, Chislo$, dic
    El = Split("Ac Ag Al Am Ar As At Au Ba Be Bi Bk Br Ca Cd Ce Cf Cl Cm Co Cr Cs Cu Dy Er Es Eu Fe Fm Fr Ga Gd Ge He Hf Hg Ho In Ir Kr La Li Lr Lu Md Mg Mn Mo Na Nb Nd Ne Ni No Np Os Pa Pb Pd Pm Po Pr Pt Pu Ra Rb Re Rh Rn Ru Sb Sc Se Si Sm Sn Sr Ta Tb Tc Te Th Ti Tl Tm Xe Yb Zn Zr B C F H I K N O P S U V W Y")
    eM = Array(227.028, 107.868, 26.982, 243.061, 39.948, 74.922, 209.987, 196.967, 137.33, 9.012, 208.98, 247.07, 79.904, 40.078, 112.41, 140.12, 251.08, 35.453, 247.07, 58.933, 51.996, 132.905, 63.546, 162.5, 167.26, 252.083, 151.96, 55.847, 257.095, 223.02, 69.723, 157.25, 72.59, 4.003, 178.49, 200.59, 164.93, 114.82, 192.22, 83.8, 138.906, 6.941, 260.105, 174.967, 258.099, 24.305, 54.938, 95.94, 22.99, 92.906, 144.24, 20.179, 58.69, 259.101, 237.048, 190.2, 231.036, 207.2, 106.42, 144.913, 208.982, 140.908, 195.08, 244.064, 226.025, 85.468, 186.207, 102.906, 222.018, 101.07, 121.75, 44.956, 78.96, 28.086, 150.36, 118.71, 87.62, 180.948, 158.925, 97.907, 127.6, 232.038, 47.88, 204.383, 168.934, 131.29, 173.04, 65.39, 91.224, 10.811, 12.011, 18.998, 1.008, 126.905, 39.098, 14.007, 15.999, 30.974, 32.066, 238.029, 50.942, 183.85, 88.906)
    strFormula = strFormula & "#"
    LenFormula = Len(strFormula)
    ReDim SubSum(1)
    Set dic = CreateObject("Scripting.Dictionary")
    For j = 0 To UBound(El)
        dic(El(j)) = eM(j)
    Next j
    k = 1
    i = 1
    Do
        S1 = Mid(strFormula, i, 1)
        ReCalc = True
        OldEM2 = OldEM
        Select Case S1
            Case "("
            Case ")", "#"
            Case "0" To "9"
                Chislo = Chislo & S1
                ReCalc = False
            Case Else
                S2 = Mid(strFormula, i, 2)
                S = ""
                If dic.Exists(S2) Then
                    S = S2
                ElseIf dic.Exists(S1) Then
                    S = S1
                End If
                If S <> "" Then
                    OldEM = dic(S)
                    i = i - 1 + Len(S)
                End If
        End Select
        If ReCalc Then
            If Chislo = "" Then Chislo = "1"
            SubSum(k) = SubSum(k) + OldEM2 * Val(Chislo)
            Chislo = ""
        End If
        Select Case S1
            Case "("
                OldEM = 0
                k = k + 1
                ReDim Preserve SubSum(k)
                SubSum(k) = 0
            Case ")"
                OldEM = SubSum(k)
                k = k - 1
        End Select
        i = i + 1
    Loop While i <= LenFormula
    MolMassa = SubSum(1)
    Set dic = Nothing
End Function
 
Sub Test_MolMassa()
    Debug.Print "H", MolMassa("H")
    Debug.Print "O", MolMassa("O")
    Debug.Print "H2O", MolMassa("H2O")
    
    Debug.Print "S", MolMassa("S")
    Debug.Print "Al2", MolMassa("Al2")
    Debug.Print "SO4", MolMassa("SO4")
    Debug.Print "(SO4)3", MolMassa("(SO4)3")
    Debug.Print "Al2(SO4)3", MolMassa("Al2(SO4)3")
 
    Debug.Print "H2(SO4)3", MolMassa("H2(SO4)3")
 
    Debug.Print "(CH3)3", MolMassa("(CH3)3")
    Debug.Print "(CH3)3N", MolMassa("(CH3)3N")
    Debug.Print "((CH3)3N)2", MolMassa("((CH3)3N)2")
End Sub

$begingroup$

Sorry for the FAQ, but I really don’t know where to find a full spreadsheet for element properties. I mean a table that has one row for each element, and the columns are its properties, such as name, atomic number, density, melting point, etc. I know that there are many sites or references for that, but I need it in tabular format, because I want to analyze data, make charts, etc.

jonsca's user avatar

jonsca

2,9377 gold badges31 silver badges56 bronze badges

asked Dec 18, 2012 at 15:25

Mostafa Farzán's user avatar

$endgroup$

4

$begingroup$

Well, here’s a CSV file that I parsed out of the JSON data provided by Paul Nathan’s website, which in turn was produced from gPeriodic data in response to this question. gPeriodic is FOSS, so I can only assume that the element data contained within is good to share, though I have no idea of its provenance.

The parser uses the python json module to read the data, which I then wrote into comma separated values, which should be readable by any halfway competent spreadsheet program.

Here it is: Pastebin Link

save it as elementdata.csv and you’re good to go.

Some gotchas:

  • This reproduces the gPeriodic data, warts and all. I make no guarantees regarding its correctness, recency, etc. I just munged the data.
  • Some of the data is augmented with tildes, notes about temperature/polymorph/state etc. I’ve left these as they are but you may need to trim them if you want to plot them as numeric values.
  • Argon had an atomic radius of ‘2-‘, whatever that means. I cut it.
  • Excel is joke software and habitually interprets numbers wrapped in parentheses as negatives, because apparently some accountants decided that surrounding numbers in parens is a more sensible option than using a minus sign. Needless to say, this is wrong. I’ve addressed the problem by wrapping the affected numbers in angle brackets.
  • There are no ionic radii in the source data. At all. Not my fault.
  • The columns inherit the units of the source data. I’ve left the units out on purpose because I wanted each column to have no spaces in the name for ease of processing in R or whatever. Furthermore, the units in the source file have some inconvenient characters from an encoding perspective.

Tried plotting Z versus covalent radius in R from this data — looks alright:

enter image description here

Some of the data points are missing, some are not read by R because they are wrapped in <> — pre-process to your heart’s content.

Community's user avatar

answered Dec 19, 2012 at 11:22

Richard Terrett's user avatar

Richard TerrettRichard Terrett

10.7k1 gold badge49 silver badges67 bronze badges

$endgroup$

5

$begingroup$

Fine, here’s my data taken from the reference mentioned in my above comment.
I cannot vouch for it’s accuracy.
This is in the .csv file format for its wide use as enlightened by Richard Terrett. You can combine certain ranges from this csv/spreadsheet to the one prepared by Richard, because it contains certain properties not contained in Richard’s source.
Also there are certain properties in Richard’s file which are absent/improper in mine so this file is best used in conjunction with Richard’s file.

Community's user avatar

answered Dec 22, 2012 at 12:12

Aditya Sriram's user avatar

$endgroup$

3

$begingroup$

I found a nice json database here (it may have errors, I wouldn’t know, but there are links to the original sources).

Best visualised with Chernoff faces IMO,

enter image description here

library(jsonlite)
library(ggplot2)
library(ggChernoff)

# https://github.com/Bowserinator/Periodic-Table-JSON
d <- fromJSON('PeriodicTableJSON.json')[["elements"]]

ggplot(d, aes(xpos,10-ypos)) + 
  geom_chernoff(aes(fill=category, size = phase, smile = density, brow = molar_heat)) +
  geom_text(aes(label=symbol), vjust=2.5) +
  guides(fill=guide_legend(ncol=2)) +
  theme_void() +
  scale_brow_continuous(breaks = c(10, 25, 50))+
  theme(legend.position = 'right', panel.background = element_rect(colour="black"))

answered Dec 29, 2017 at 8:58

baptiste's user avatar

baptistebaptiste

1991 silver badge4 bronze badges

$endgroup$

$begingroup$

I’ve collected a lot data on the elements from several sources and built a small python package around it called mendeleev. The data is contained in a SQLite3 database from which you can easily extract csv files of individual tables.

Most of the data if properly referenced so you can trace back its origin.

Moreover since the interface is written in Python you can easily plot and analyze the data if needed.

M.A.R.'s user avatar

M.A.R.

10.5k19 gold badges68 silver badges90 bronze badges

answered Oct 10, 2016 at 10:35

bedevere's user avatar

$endgroup$

$begingroup$

answered Oct 22, 2017 at 0:43

Hopper Kremer's user avatar

$endgroup$

Понравилась статья? Поделить с друзьями:
  • Период окупаемости формула excel дисконтированный
  • Период окупаемости проекта формула excel
  • Период окупаемости в excel функция
  • Период между двумя датами в excel
  • Период в ячейки excel