¿Cómo puedo descontar los dos valores mínimos de dos columnas?

Me gustaría si me pudieras ayudar, el problema que tengo es que tengo datos en 10 columnas de la A1 hasta LA J10, en la columna K10 tengo la suma total de esas columnas, pero necesito descontar en ese total los dos valores mínimos de las columnas A1 a la J10,.

2 Respuestas

Respuesta
1
Me quedé pensando si tu problema consiste en que no encuentras la función sugerida o si -encontrada- el resultado arrojado no es el esperado.
Si utilizas el Asistente de Funciones (Insertar | Función) busca la función en la categoría "Estadísticas". Si no la encuentras deberías habilitar el complemento que las contiene.
Vé a "Herramientas" | "Complementos" y busca en la lista "Herramientas para análisis" y "Herramientas para análisis - VBA". MArca ambas y cierra este cuadro de diálogo.
Vuelve a insertar | función y fíjate si las agregó.
---
Estaba revisando tu planteo y noté que el área que mencionas tiene varias columnas y varias filas (A1 a J10). Sin embargo, mencionas que "en la columna K10 (sic) tengo la suma total de esas columnas". Si estuviera de más la palabra "columna", ña respuesta anterior es válida: en la celda K10 puedes tener la suma de ese rango rectangular y K.ESIMO.MENOR. debería encontrar esos dos valores mínimos y, desde luego, restarlos al valor de K10.
En cambio si los cómputos de los valores mínimos fuese por fila o columna deberías tener para cada columna (o fila) una fórmula totalizadora que reste esos dos valores mínimos de esa columna (o fila). Luego K10 deberá sumar esos totales parciales...
De todos modos, si persiste el problema, envíame el archivo a la dirección indicada.
Buen fin de semana!
Fernando
Hola Fernando, agradezco tu respuesta pero me sigue sin salir, si eres tan amable y me indicas tu e-mail, te envío el fichero y de esta manera igual lo ves más claro. Gracias
Estoy probando si hoy puedo contestarte o si volveré a recibir mensaje de error del servidor...
Parece que solo pasa por partes... en fin.
Para el caso que planteas, será útil una función estadística interna de MS Excel llamada K.ESIMO.MENOR
Envíame el archivo pero considera que durante los fines de semana no me es posible acceder a mi cuenta. Pero el lunes próximo, podré ocuparme de él.
, esta fórmula consta de dos argumentos: El rango a considerar y la posición de menor a mayor que deseas considerar. Así, si este segundo argumento fuese 1, tomará el mínimo valor, mientras que si este fuese 2, tomaría el menor número siguiente a aquel mínimo.
La fórmula final que sume el rango y descuente estos dos valores sería entonces:
=K10-K.ESIMO.MENOR(A1:J10,1)-K.ESIMO.MENOR(A1:J10,2)
[Considera si sueles usar comas o punto y coma para separar argumentos de las funciones. Yo usé ","]
Ayer, el sitio estuvo un tanto errático.
Intenté unas siete veces contestarte esta pregunta.
Luego la vi en el tablón público y te envié nuevamente la respuesta
En ambos casos, todas las veces me devolvió un error de servidor. (¿Será qué borraste la pregunta antes de que pudiera responderte?)
Intento por esta vía para ver si así te llega la respuesta.
Acabo de enviarte el archivo con la función sugerida originalmente, aplicada a tu caso. Como intuía esta debía aplicarse por cada fila y no para todo el blocque de celda como parecía sugerir tu pregunta.
Espero que te sirva.
Un abrazo!
Fernando
Respuesta
1
La siguiente rutina suma te colocará en la celda K10 la suma de las columnas (A1 a J10) menos los 2 valores mínimos que ha encontrado en ese rango.
He agregado la siguiente información, para que puedas ubicar los resultados:
En K11 y K12 los valores mínimos del rango
En K13 y K14 las direcciones de esos valores.
Dim direc As String, direc1 As String
Dim resultado As Integer, otravez As Integer, minimo1 As Integer, minimo2 As Integer
direc1 = ""
resultado = 0
otravez = 1
While otravez < 3
Set rango = Range("A1:J10")
For Each celda In rango.Cells
If celda.Value <> "" And celda.Value <> 0 And celda.Address <> direc1 Then
If resultado = 0 Then
resultado = celda.Value
direc = celda.Address
ElseIf resultado > celda.Value Then
resultado = celda.Value
direc = celda.Address
End If
End If
Next celda
If otravez = 1 Then
minimo1 = resultado
direc1 = direc
Else
minimo2 = resultado
End If
resultado = 0
otravez = otravez + 1
Wend
Range("K11").Value = minimo1
Range("K12").Value = minimo2
Range("K13").Value = direc1
Range("K14").Value = direc
Range("K10").Formula = "=+SUM(A1:J10)-SUM(K11:K12)"
End Sub
NO se incluye el cero ni las celdas vacías. Si debe considerarlas, borrá la opción en la línea que dice:
If celda.Value <> "" And celda.Value <> 0 And celda.Address <> direc1 Then
Dejando solamente :
If celda.Address <> direc1 Then
Espero que esto sea lo que necesites. Cualquier cosa me volvés a escribir.
Si sos nuevo usuario quizás no sepas que es muy importante que finalices la consulta con una puntuación y comentario a gusto, para que no nos quedemos bloqueados para atender otras consultas, tuyas o de otros.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas