macro de Excel aplicar fórmula si la celda está poblada


0

Aquí está mi problema de excel Tengo 3 pestañas, 1st tiene datos que se actualizan de vez en cuando y está cambiando el número de filas. La pestaña 2 tiene una fórmula, que se utiliza para deducir información específica de la pestaña 1. La pestaña tiene una tabla dinámica que usa datos de la pestaña 2 para mostrar los resultados.

El problema es que, la fórmula en la pestaña 2 se copia manualmente a la fila 500 para garantizar que cubra todos los datos ingresados ​​en la pestaña 1. Por lo tanto, se obtienen números totales incorrectos en el pivote, así como también se incluyen espacios en blanco debido a los resultados de pestaña 2.

Así que necesito una solución macro que debería hacer lo siguiente: 1. contar el número de filas rellenadas en la pestaña 1 2. aplique la fórmula necesaria para cada fila de forma continua hasta que alcance el número de filas en la pestaña 1, también cambie cada fila de la pestaña 2 para que se corresponda correctamente con cada fila en la pestaña 1.

Por ejemplo, alimente 100 filas en la pestaña 1, aplique 100 fórmulas para cada fila en la pestaña 2, que corresponden a cada fila en la pestaña 1 con las filas correctas (igual que copie la fórmula para cada fila).

Esto resolverá mi problema al no incluir espacios en blanco en el pivote, por lo que el número total siempre será igual al total de la pestaña 1.

PD He intentado hacer que el Pivot ignore espacios en blanco, 0s, errores, etc., pero todavía cuenta todas las filas que he copiado de la fórmula, sin importar lo que saque. Así que esto no funciona para mí.

Su ayuda es muy apreciada.


1
¿Qué has intentado hasta ahora? Este no es un servicio de escritura de guiones. Por favor, exponga lo que intentó y dónde se quedó con preguntas específicas, entonces alguien puede ayudarlo.
Eric F

Desafortunadamente, solo uso macros preparadas, no sé cómo escribirlas correctamente, pero tengo exactamente una idea de lo que necesito. También puedo modificar macros listas para que puedan coincidir, pero hasta ahora no tengo nada.
Borislav

En realidad, mirando tu pregunta, esto se puede lograr sin macros. ¿Por qué no solo escribe una fórmula en la pestaña 2 que tiene = si (A2 = "", "", su código) para que se detenga en la parte inferior de los datos
Eric F

De lo contrario, en VBA, Range ("'Sheet1'! A1"). Formula = "SUM (A2: A3)" es la forma en que asigna una fórmula a celdas específicas. (Por supuesto, ponga su propia fórmula en lugar de la suma y cambie el nombre y el rango de la hoja por su propia cuenta) Pruébelo y también mire mi respuesta aquí superuser.com/questions/1274128/… para darle alguna orientación general de VBA
Eric F

Gracias por la respuesta. Entonces estoy usando exactamente esta sintaxis, el problema es que cuando el resultado es "" en realidad deja una celda en blanco que es seleccionada por el pivote. Es por eso que si tiene 100 filas en la pestaña 1 y copia esta fórmula en la tab2 manualmente hasta la fila 200, el pivote las contará como registro simplemente porque hay una fórmula y el total en el pivote será 200, no el real 100 filas. Voy a probar el VBA :)
Borislav

Respuestas:


-1

Lo que he aprendido después de analizar el OP, es que solo tiene DOS problemas.

  1. Cuenta las filas pobladas es Tab1.

  2. Escribir y Ejecute la fórmula para cada fila poblada en la pestaña 2.

Para esto me gustaría mostrarle todo el proceso que no necesita VBA.

Para una mejor comprensión he tomado un rango de datos más pequeño.

enter image description here

La primera tarea es Contar filas no en blanco . Para esto puedes usar cualquiera de las Fórmulas.

= CONDADO (A8: B12)

= (FILAS (A8: A12) + FILAS (B8: B12)) - PATIO (A8: B12, "")

= FILAS (A8: B12) * COLUMNAS (A8: B12) -CUENTROBLANK (A8: B12)

NÓTESE BIEN: Cuenta de las filas que obtienes es 7 . De hecho, todas las fórmulas cuentan las celdas no en blanco para el rango de datos.

Si tú escribes,

= CountA (A1: A8) obtienes 4 .

Elija el adecuado, Preferiría el primer set , la razón es simple. Ya que necesitas poblar TAB2 con Fórmula. Y la Fórmula necesita valores en el rango de datos, por lo que técnicamente las filas tienen celdas en blanco, deben abandonar el ejercicio.

Ahora la segunda tarea, escriba la fórmula en Tab2.

= IF (AND (Hoja1! A8, Hoja1! B8 & lt; & gt; ""), Hoja1! A8 + Hoja1! B8, "La fila no tiene datos")

Arrastre la fórmula hasta que sea necesario.

Recuerda que es una fórmula de muestra, reemplázala con la tuya.

Esperanza, la solución está arreglando el problema. Deja el comentario si difiere.


Gracias por sus comentarios. Aunque tiene sentido, hay una parte final que estoy tratando de resolver. Como dijiste, "Arrastra la Fórmula hasta que se requiera". Y aquí es donde necesito que el conteo venga como una macro y llene automáticamente la fórmula, tantas veces como lo diga. Por ejemplo, ya que necesito que la fórmula se aplique en otra pestaña, o en! C3, necesito que se aplique exactamente tantas veces como sea necesario - 4.
Borislav
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.