Como hacer para que esta fórmula sea una macros en excel




Ojala me puedan ayudar con esto, tengo una fórmula en excel donde que el **estado** en la columna I al presionar el botón calcula se me genere los datos mediante una macros de manera indefinida.

Esta es la fórmula que tengo en excel que la deseo aplicar con macros:


```
=SI(O(Y(TEXTO(E8;"MM")=G$3;G8="01");Y(TEXTO(E8;"MM")=G$3;G8="12");Y(TEXTO(E8;"MM")=G$3;G8="14"));1;SI(O(Y(TEXTO(E8;"MM")<>G$3;G8="01");Y(TEXTO(E8;"MM")<>G$3;G8="12");Y(TEXTO(E8;"MM")<>G$3;G8="14"));6;SI(O(G8="02";G8="03";G8="16");0;"")))
```
![](//blob.todoexpertos.com/uploads/md/817402b27f6710e0ade56928321d1198.png)
Quieres que la macro verifique las condiciones y ponga el resultado o quieres que la macro ponga la fórmula.

Cuál opción quieres, ¿la primera o la segunda?
amigos les comparto la solución:

si alguien conoce que valores se le puede poner al campo i\_sgfunct por que con la “c” te muestra el paso a paso del proceso.

observen:

[[image]](https://foros.consultoria-sap.com/uploads/db7262/original/3x/c/5/c5599222f216c73cbaa60eba0c4ce2d109725223.png "image")
[[image]](https://foros.consultoria-sap.com/uploads/db7262/original/3x/f/0/f068ab9b0e27a375b953093037dd8a7bd1072a30.png "image")
[[image]](https://foros.consultoria-sap.com/uploads/db7262/original/3x/d/4/d448f934275234f3c7f8757fb1d4963123777dc9.png "image")

paso 1:

[[image]](https://foros.consultoria-sap.com/uploads/db7262/original/3x/9/b/9bcdcb9a236d604a71fd0e56bc2ca844d5fc8f4b.png "image")

paso 2:

[[image]](https://foros.consultoria-sap.com/uploads/db7262/original/3x/e/8/e859f68266fadd858aca3fef5ad15782fd65df02.png "image")

paso 3:

[[image]](https://foros.consultoria-sap.com/uploads/db7262/original/3x/c/f/cf4eaa2b483c117668b07c17e8e93c6d503ef805.png "image")

paso 4:

[[image]](https://foros.consultoria-sap.com/uploads/db7262/original/3x/0/f/0f52f083bd907828651e6fe3c760eb3e7c6fb977.png "image")

paso 5:

[[image]](https://foros.consultoria-sap.com/uploads/db7262/original/3x/0/7/07422411c986279788cc7ce415eb5e8f266280b3.png "image")

paso… no cursor, mientras lazo, o por el usuario función necesaria.sólo necesito ser creativo con for xml y trayectoria.[nota: esta solución sólo funciona en sql 2005 y posteriores. pregunta original no ha especificado la versión en uso.]create table #yourtable ([id] int, [name] char(1), [value] int) insert into #yourtable ([id],[name],[value]) values (1,'a',4) insert into #yourtable ([id],[name],[value]) values (1,'b',8) insert into #yourtable ([id],[name],[value]) values (2,'c',9) select [id], stuff(( select ', ' + [name] + ':' + cast([value] as varchar(max)) from #yourtable where (id = results.id) for xml path(''),type).value('(./text())[1]','varchar(max)') ,1,2,'') as namevalues from #yourtable results group by id drop table #yourtable Aquí está la solución. Puede utilizar el siguiente código: 


```
context.Table.Where(x => x.Field1 > 0).Update(y => new Table { Field2 = y.Field2 + 1 });

```
  Espero que ayude. <p>sí.</p><pre><code>thisworkbook.refreshall </code></pre><p>o, si su versión de excel es lo suficientemente antigua,</p><pre><code>dim sheet as worksheet, pivot as pivottable for each sheet in thisworkbook.worksheets for each pivot in sheet.pivottables pivot.refreshtable pivot.update next next </code></pre> x²+8x+15/x+4 por x/x²+3x por x²-16/x+5

factorizando todo queda

(x+3)(x+5) / (x+4) por x / x (x+3) por (x+4) (x-4) / (x+5)

simplificando lo que más se puede da 

x - 4

ojalá te quede claro hola compañera. 
felicidades por el esfuerzo. 
sobre tu consulta, podríamos mejorarla especificando el join que por default nos da el sistema, enlazando el encabezado y detalle del mismo documento: 
[imagen] 
por lo tanto, quedaría dela siguiente manera: 

select t0.docentry, t0.docnum, ‘los campos … bueno...el segundo primero....
los numeros son: x-1, x, x+1
sus cuadrados:: (x-1) al cuadrado+x(al cuadrado)+(x+1)al cuadrado
xª-2x+1+xª+xª+2x+1=77
3xª+2=77
3xª=75
x=5
los numeros son 4,5 y 6...........
ahora el primero es muy dificil de explicar...tratare de hacerlo...
2x+2y=5
xy=1.44
x=1.44/y
reemplazando en la primera ecuación
2(1.44/y)+2y=5
resolviendo....
una ecuacion cuadratica::: 2yª-5y+2.88....((yª=y al cuadrado es que no se como se pone al cuadrado))
sale que y=0.9 o 1.6....
esas son las dimensiones del marco...0.9*1.6cm true.                          
--
mira si quisiste poner x en lugar de 0, entonces es el intervalo tal que x es menor o igual a 2, por lo tanto un intervalo del -∞ a 2, cerrado por la derecha (por que se incluye al dos).

(-∞ ; 2]    --> representación formal.


si quisiste decir todos los valores que están entre 0 y 2, debería ser expresado de otra manera, como esta: 0<= x <=2 o 0< x <=2, y dependiendo de como lo expreses (mayor o igual, o mayor que cero) va a ser la representación del intervalo.

[0; 2] --> mayor igual.

(0; 2] --> mayor. Los ejemplos que otros han dado no funcionarán en Entity Framework hoy, porque no se pueden combinar enumeración de clientes y servidores en las entidades LINQ 2. 

 En su lugar, necesita construir una expresión OR, manualmente. 

 Ejecuto una serie de [consejos](http://blogs.msdn.com/alexj/archive/2009/03/26/index-of-tips.aspx) de [EF](http://blogs.msdn.com/alexj/archive/2009/03/26/index-of-tips.aspx) y [este consejo](http://blogs.msdn.com/alexj/archive/2009/03/26/tip-8-writing-where-in-style-queries-using-linq-to-entities.aspx) te muestra cómo construir una expresión OR. 

 Espero que esto ayude 

 Alex 1.- 20%
2.- 15%
3.- 10%
4.- 10%
5.- 20%
6.- (por su antigûedad en y!r) 15%

saludos!
xd