Forum Discussion
Agregar condiciones en código
Hola, Me ayudaron a hacer el siguiente codigo:
Horas =
VAR HorasPos = IFERROR(SEARCH("Horas de participación", sheet1[Respuesta del formulario]), 0)
VAR EvalPos = IFERROR(SEARCH(";Evaluación", sheet1[Respuesta del formulario]), 0)
VAR IsPatternFound = (HorasPos > 0) && (EvalPos > HorasPos + 26)
VAR ExtractedText =
IF(
IsPatternFound,
MID(sheet1[Respuesta del formulario], HorasPos + 26, EvalPos - (HorasPos + 26)),
BLANK()
)
RETURN
IF(IsPatternFound, VALUE(ExtractedText), BLANK())
_______________________________________________________________________________________________________________________________________
pero necesito agregar 2 variantes, me pueden ayudar en corregir la estructura?
Horas =
VAR HorasPos = IFERROR(SEARCH("Horas de participación", sheet1[Respuesta del formulario]), 0)
VAR EvalPos = IFERROR(SEARCH(";Evaluación global", sheet1[Respuesta del formulario]), 0)
VAR NumPos = IFERROR(SEARCH("Número de horas", sheet1[Respuesta del formulario]), 0)
VAR Fini = IFERROR(SEARCH(";Fecha de inicio",sheet1[Respuesta del formulario]), 0)
VAR IsPatternFound = (HorasPos > 0) && (EvalPos > HorasPos + 26) && (NumPos > 0) && (Fini > NumPos + 19)
VAR ExtractedText =
IF(
IsPatternFound,
MID(sheet1[Respuesta del formulario], HorasPos + 26, EvalPos - (HorasPos + 26)),
IF(
MID(sheet1[Respuesta del formulario], NumPos + 19, Fini - (NumPos + 19)),
BLANK()
))
RETURN
IF(IsPatternFound, VALUE(ExtractedText), BLANK())
Lo corró y no me marca error, pero no me arroja datos 😞
Hi Tesy - Let's correct it and adjust the structure so that it works correctly
Horas =
VAR HorasPos = IFERROR(SEARCH("Horas de participación", sheet1[Respuesta del formulario]), 0)
VAR EvalPos = IFERROR(SEARCH(";Evaluación global", sheet1[Respuesta del formulario]), 0)
VAR NumPos = IFERROR(SEARCH("Número de horas", sheet1[Respuesta del formulario]), 0)
VAR Fini = IFERROR(SEARCH(";Fecha de inicio", sheet1[Respuesta del formulario]), 0)-- Verifica si se encuentra el primer patrón (HorasPos y EvalPos)
VAR IsPattern1Found = (HorasPos > 0) && (EvalPos > HorasPos + 26)-- Verifica si se encuentra el segundo patrón (NumPos y Fini)
VAR IsPattern2Found = (NumPos > 0) && (Fini > NumPos + 19)-- Extrae el texto según el patrón encontrado
VAR ExtractedText =
IF(
IsPattern1Found,
MID(sheet1[Respuesta del formulario], HorasPos + 26, EvalPos - (HorasPos + 26)),
IF(
IsPattern2Found,
MID(sheet1[Respuesta del formulario], NumPos + 19, Fini - (NumPos + 19)),
BLANK()
)
)-- Devuelve el valor extraído si se encuentra un patrón válido
RETURN
IF(
IsPattern1Found || IsPattern2Found,
VALUE(ExtractedText),
BLANK()
)Please check the above logic and Hope it works
2 Replies
- rajendraongole1
Super User
Hi Tesy - Let's correct it and adjust the structure so that it works correctly
Horas =
VAR HorasPos = IFERROR(SEARCH("Horas de participación", sheet1[Respuesta del formulario]), 0)
VAR EvalPos = IFERROR(SEARCH(";Evaluación global", sheet1[Respuesta del formulario]), 0)
VAR NumPos = IFERROR(SEARCH("Número de horas", sheet1[Respuesta del formulario]), 0)
VAR Fini = IFERROR(SEARCH(";Fecha de inicio", sheet1[Respuesta del formulario]), 0)-- Verifica si se encuentra el primer patrón (HorasPos y EvalPos)
VAR IsPattern1Found = (HorasPos > 0) && (EvalPos > HorasPos + 26)-- Verifica si se encuentra el segundo patrón (NumPos y Fini)
VAR IsPattern2Found = (NumPos > 0) && (Fini > NumPos + 19)-- Extrae el texto según el patrón encontrado
VAR ExtractedText =
IF(
IsPattern1Found,
MID(sheet1[Respuesta del formulario], HorasPos + 26, EvalPos - (HorasPos + 26)),
IF(
IsPattern2Found,
MID(sheet1[Respuesta del formulario], NumPos + 19, Fini - (NumPos + 19)),
BLANK()
)
)-- Devuelve el valor extraído si se encuentra un patrón válido
RETURN
IF(
IsPattern1Found || IsPattern2Found,
VALUE(ExtractedText),
BLANK()
)Please check the above logic and Hope it works
- Tesy
Helper I
It worked!
Thank you so much, so much!!