Promediar Columna calculada de un Datagridview
Hola amigos programadores, si talvez vieron unas de mis entradas anteriores "Sumar columna de Datagridview en Visual Basic Net" en aquella entrada hago referencia a una suma de columna de un grid(datagridview) usando una matriz que almacena los valores de la columna y la voy sumando a medida que el inputbox me pide valores. En esta ocasión hago algo parecido pero ingreso los datos poco a poco y sobre éstos calculo la suma y promedio, sin necesidad de almacenar en alguna matriz sino directamente sobre las filas actuales del grid, Bueno si saben como manipular la grid para ir ingresando filas a medida que lo nececiten, creo que solo queda sumar esas entradas..si no entienden, comprendo!, son mejores las imagenes.
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
Dim j As Integer
Dim n As Integer = grid.Rows.Count
j = 0
Do While n > j
Dim valor As Double = Val(InputBox("Ingrese valor"))
grid.Item(0, j).Value = valor
j = j + 1
Loop
Catch ex As Exception
MsgBox("Error al ingresar datos", vbCritical)
End Try
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
grid.Rows.Add(5)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Try
grid.Rows.Add(1)
Dim suma, promedio As Double
Dim ultimoitem As Integer = grid.Rows.Count - 1
For i As Integer = 0 To ultimoitem
suma = suma + +CDbl(grid.Item(0, i).Value)
Next
promedio = suma / ultimoitem
grid.Item(0, ultimoitem).Value = Format(promedio, "0.00")
Catch ex As Exception
End Try
End Sub
End Class
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
Dim j As Integer
Dim n As Integer = grid.Rows.Count
j = 0
Do While n > j
Dim valor As Double = Val(InputBox("Ingrese valor"))
grid.Item(0, j).Value = valor
j = j + 1
Loop
Catch ex As Exception
MsgBox("Error al ingresar datos", vbCritical)
End Try
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
grid.Rows.Add(5)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Try
grid.Rows.Add(1)
Dim suma, promedio As Double
Dim ultimoitem As Integer = grid.Rows.Count - 1
For i As Integer = 0 To ultimoitem
suma = suma + +CDbl(grid.Item(0, i).Value)
Next
promedio = suma / ultimoitem
grid.Item(0, ultimoitem).Value = Format(promedio, "0.00")
Catch ex As Exception
End Try
End Sub
End Class
Bueno lo que hace el código es ingresar datos mediante una variable fija, yo fije el valor = 5 o que tu puedes variar... luego calcula la suma de los valores presentes en la grid, una diferencia muy notable a la hora de calcular ya que almacenado en una matriz suele ocurrir el error de redondeo, donde la suma no es exacta y ende el promedio da error. Debo admitir que es una forma muy buena de calcular, mejor aun que mi entrada anterior mencionada y sin necesidad de intervenir en base de datos, etc. El promedio de acuerdo a la imagen anterior vista se halla al final de las filas.
Comentarios
Publicar un comentario