Um gráfico caule e folhas (também chamado de stemplot) é um tipo de diagrama usado para mostrar dados estatísticos. É uma forma de reter os pontos de dados individuais em um diagrama que muitas vezes desaparecem com outros métodos gráficos, como gráficos de pizza e histogramas. Por exemplo, se você traçar os números 10,11,12,13 e 14 em um gráfico de pizza, os números são colocados em uma categoria e você não pode ver os números individuais no gráfico. Com uma haste e da folha, você começa a ver todos os números originais.
Renomear uma planilha do Excel em branco "Dados" clicando na guia inferior para a planilha e digitar o novo nome.
Renomeie outra folha de cálculo do Excel em branco na pasta de trabalho "Haste" clicando na guia inferior para que a planilha e digitar o novo nome.
Digite sua lista de números na coluna A do "Dados" folha de trabalho.
pressione "Alt" e "F11" ao mesmo tempo para abrir o Editor do Visual Basic.
Duplo click "esta pasta de trabalho" em Objetos do Microsoft Excel no painel de navegação à esquerda para abrir uma janela de código em branco.
Cole o seguinte código VBA na janela em branco:
Sub StemAndLeaf ()
DataColumn = 1`Limpe tudo fora da planilha Stem.
Fichas de trabalho("Haste") .Cells.Clear"Olhe para a planilha de dados.
Fichas de trabalho("Dados").Ativar"Encontre o valor máximo.
RowPointer = 2
Fazer até que as células (RowPointer, 1) .Value = ""
RowPointer = RowPointer + 1
laço
Máximo = Cells (RowPointer - 1, DataColumn) .value`Definir o divisor para retirar folhas.
= 1 divisor
Do Until Máxima / divisor lt; = 10
divisor divisor = * 10
laço`Se o primeiro dígito do valor mais elevado é menor que 5, então
`Utilizar um divisor menor.
"Caso contrário, você pode acabar com quatro ou menos linhas na trama.
Se Fix (Máxima / divisor) lt; 5 Então divisor = divisor * 10`Calcular o valor do topo da haste.
topStem = Fix (Máxima / divisor)`Configurar a planilha Stem.
Fichas de trabalho("Haste").Ativar
As células (1, 1) = .Value "Contagem"
As células (1, 2) = .Value "Haste"
As células (1, 3) .Value = "Folhas"
Para RowPointer = 2 + 2 Para topStem
As células (RowPointer, 2) .Value = RowPointer - 2
As células (RowPointer, 3) .Value = "|"
Próximo RowPointer"Calcular as contagens.
`O código a seguir é mais lento do que ele precisa ser,
`, Mas um código mais rápido seria mais difícil de ler e compreender.
Fichas de trabalho("Dados").Ativar
RowPointer = 2
Fazer até que as células (RowPointer, DataColumn) .Value = ""
medição = Cells (RowPointer, DataColumn) .Value
Stem = Fix (medição / divisor)
Fichas de trabalho("Haste") .Cells (Stem + 2, 1) .Value = Worksheets ("Haste") .Cells (Stem + 2, 1) .Value + 1
RowPointer = RowPointer + 1
laço"Calcular o fator de contração.
Fichas de trabalho("Haste").Ativar
maximumCount = 0
Para RowPointer = 2 + 2 Para topStem
Se Cells (RowPointer, 1) .Value gt; maximumCount seguidamaximumCount = Cells (RowPointer, 1) .Value
Fim se
Próximo RowPointershrinkFactor = Fix (maximumCount / 50)
Se shrinkFactor lt; 1 Então shrinkFactor = 1
As células (1, 4) .Value = "Cada dígito representa" + Str (shrinkFactor) + " casos."`Voltar aos dados, e preencher as folhas à luz dos valores dos dados.
Fichas de trabalho("Dados").Ativar
RowPointer = 2
Fazer até que as células (RowPointer, DataColumn) .Value = ""
medição = Cells (RowPointer, DataColumn) .Value
Stem = Fix (medição / divisor)
folha = medição - Stem divisor
folha = Fix (folha 10 / divisor)Fichas de trabalho("Haste") .Cells (Stem + 2, 3) .Value = Worksheets ("Haste") .Cells (Stem + 2, 3) .Value + Trim (Str (folha))
RowPointer = RowPointer + shrinkFactor
laço`Get para a planilha Stem.
Fichas de trabalho("Haste").Ativar
End Subpressione "F5" para executar o código. O seu caule e folha enredo vai aparecer na "Haste" folha de trabalho.
dicas & avisos
- Se você alterar os seus dados e necessidade de gerar um novo caule e folha trama, basta executar o macro StemAndLeaf novamente.