Buscar encabezado si el valor es mayor a cero

Tengo una tabla en la cual hay varias filas y varias columnas como ejemplo mas o menos así:

51100310    51100615   51101407   51100305

             0                0       390000               0

      26000                0                0               0

             0        -50000                0               0

             0                 0       -24000               0

Con la formula sumar.si.conjunto me da los valores de cada fila, lo que quiero es que en la columna cinco (5) de la derecha, deseo utilizar una formula que al comparar el mayor valor de la fila me ponga el encabezado de esa columna por ejemplo valor 390000 el encabezado 51101407 en esa fila, en el valor 26000 el encabezado 51100310, en el valor -50000 el encabezado 51100615 y así sucesivamente. Hasta ahora los valores en cada fila corresponden a una cifra mayor a cero y los demás resultados son cero. Le agradecería su amable atención y gracias.

Atentamente.,

ROITSAN

1 Respuesta

Respuesta
1

Creo haberlo entendido y esta sería la solución: he puesto tus datos en una hoja en el rango A1:D5. Después tienes que seleccionar la celda A2 y ejecutar esta macro y te pondrá los encabezados en la columna E obedeciendo a tus instrucciones, es decir, solo el valor máximo y mayor que cero.

(Recuerda finalizar y puntuar mi labor)

Sub proceso()

Do While ActiveCell.Value <> ""

Range(ActiveCell, ActiveCell.End(xlToRight)).Select

For Each celda In Selection

máxima = Application.WorksheetFunction.Max(Selection)

If celda.Value = máxima And celda.Value > 0 Then

ActiveCell.Offset(0, 4).Value = celda.End(xlUp)

End If

Next

ActiveCell.Offset(1, 0).Select

Loop

End Sub

La utilice y me funciona perfectamente bien pero lo que pasa es que cada mes que vaya pasando se va incrementar el numero de filas y de columnas, por eso es que pedía una formula, estuve mirando respuestas que usted ha dado antes y encontré una formula en la respuesta BuscarV con distintos Rangos! donde aparece la formula coincidir así que la modifique a mis requerimientos así =COINCIDIR((MAX(A2:D2));A2:D2;0) y me coloca el numero de la columna donde ubico el valor mayor a cero, ahora quiero enlazarla con otra formula que me coloque el encabezado de la columna donde se ubica. Esta petición es porque no conozco casi de VB, sin embargo modifique las instrucciones de (0, 4) por las columnas de mi archivo y me coloco los encabezados pero es que como dije antes las filas pueden aumentar según el numero de registros y lo mismo las columnas por eso es que quiero la formula para acondicionarla al numero de registros. Gracias

Si aumentan las lineas y las columnas puedes seguir usando mi macro con una ligera modificación, que te marco aquí:

Donde dice:

ActiveCell.Offset(0, 4).Value = celda.End(xlUp)

tienes que poner

ActiveCell.End(xlToRight).Offset(0, 1).Select

Recuerda que antes de ejecutar la macro, te tienes que posicionar en el primer valor de la tabla, en mi caso era la celda A2.

Pues le modifique la linea que me dices y no hace nada. Actualmente tengo una tabla de la columna A a la columna AV y además 84 filas y me funciona con la instrucción anterior modificando el numero de la columna en (0,4) por (0,48) y funciona colocando el encabezado una vez me sitúo en A2 y ejecuto la macro. Pues yo creo que con eso es mas que suficiente; te agradezco tu diligencia y muchas gracias me ha servido muchísimo. Y te añado como experto favorito

ROITSAN

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas