Julius'Lab

noviembre 2021

(Excel) Cómo contar las veces que se repite un texto en una sola celda de Excel

Ejemplo: la palabra «performer«. Necesitamos contar las veces que se repite esta palabra en cada celda.

El contenido de la celda C2 es el siguiente:

Ariel Barreras(performer), Ariel Barreras(writer)

El contenido de la celda C3 es el siguiente:

Ariel Barreras(performer), Natalia Castrejón(performer), Ariel Barreras(writer)

La primera parte de la fórmula consiste en sustituir la palabra «performer» por un caracter extraño (que no tenga posibilidades de aparecer en alguna de las celdas a comprobar). Eso lo consigue esta fórmula:

=SUSTITUIR($C2,"performer","~")

Al aplicarla a las celdas:

C2: Ariel Barreras(~), Ariel Barreras(writer)
C3: Ariel Barreras(~), Natalia Castrejón(~), Ariel Barreras(writer)

Pero eso sólo es para comprobar, no la aplicaremos directamente. La guardamos en cualquier texto, sin el símbolo de igual: =

La siguiente fórmula, cuenta las veces que aparece dicho caracter en la celda a comprobar, en el caso de la C2:

=LARGO(C2)-LARGO(SUSTITUIR(C2,"~",""))

Aplicándola en la columna F, misma línea, el resultado sería:

F2 (refiriéndose a la celda C2): 1
F3 (refiriéndose a la celda C3): 2

Ahora, en la segunda fórmula, sustituimos la referencia a la celda correspondiente, con la primera fórmula, es decir:

SUSTITUIR($C2,"performer","~")

se inserta en

=LARGO(C2)-LARGO(SUSTITUIR(C2,"~",""))

sustituyendo las apariciones de C2.

La fórmula final es:

=LARGO(SUSTITUIR($C2,"performer","~"))-LARGO(SUSTITUIR(SUSTITUIR($C2,"performer","~"),"~",""))

Utilizado en las hojas de Excel para: SISTEMA DE SAPS RECORDS (http://sistema.sapsrecords.com/)

(Excel) Cómo contar las veces que se repite un texto en una sola celda de Excel Leer más »

(Formidable) Cómo mostrar u ocultar contenido a partir de user_meta keys

1) Agregar este code snippet: https://formidableforms.com/knowledgebase/php-examples/#kb-check-parameter-value

add_shortcode('if_get_param', 'check_get_param_value');
function check_get_param_value( $atts, $content="" ) {
    if ( ! isset( $atts['name'] ) || ! isset( $atts['value'] ) || ! isset( $atts['type'] ) ) {
        return $content;
    }
    
    $type = $atts['type'];
    if ( $type == 'greater_than' ) {
        $type = '>';
    } else if ( $type == 'less_than' ) {
        $type = '<';
    } else if ( $type == 'equals' ) {
        $type = '==';
    } else if ( $type == 'not_equal' ) {
        $type = '!=';
    }

    $get_value = isset( $_GET[ $atts['name'] ] ) ? $_GET[ $atts['name'] ] : '';

    if ( ! FrmFieldsHelper::value_meets_condition( $get_value, $type, $atts['value'] ) ) {
        $content = '';
    }

    return do_shortcode( $content );
}

2) Agregar este code snippet:

add_shortcode('user_meta', 'user_meta_shortcode_handler');
function user_meta_shortcode_handler($atts,$content=null){
 
	if ( !isset( $atts['user_id'] ) ){
		$user = wp_get_current_user();
		$atts['user_id'] = $user->ID;
	}
	if ( !isset( $atts['size'] ) ){
		$atts['size'] = '50';
	}
	if ( !isset( $atts['post'] ) ) {
		$atts['post'] = '';
	}
	if ( !isset( $atts['wpautop'] ) ) {
		$atts['wpautop'] = '';
	}

	$user = new WP_User($atts['user_id']);
 
	if ( !$user->exists() ) return;
 
	if( $atts['key'] == 'avatar'){
		return $atts['pre'] . get_avatar( $user->ID, $atts['size']) . $atts['post'] ;
	}
	if ( $user->has_prop( $atts['key'] ) ){
		if ($atts['wpautop'] == 'on'){
			$value = wpautop( $user->get( $atts['key'] ) );
		} else {
			$value = $user->get( $atts['key'] );
		}
	}
 
	if (!empty( $value )){
		return $atts['pre'] . $value . $atts['post'] ;
	}
 
	return;
}

Esto creará un nuevo shortcode: [user_meta key=»loquesea»]
Reemplaar «loquesea» con el nombre del user meta y encontrará el valor almacenado ahí.

También tiene unos cuantos parámetros que acepta si se quieren usar:

user_id – id del usuario del cual se quiere obtener el meta. Debe dejarse vacía si se quiere que sea igual al usuario actual.
key – meta key del campo que se quiere obtener.
wpautop = «on» – este se usa para áreas de texto o campos wysiwyg.
size = «100» – este se usa para especificar el tamaño del campo de avatar.

Probablemente la mayoría no se necesiten estas extra opciones pero pueden usarse.

3) Usaremos el shortcode frm-set-get (nativo de FormidableForms) para obtener el valor de la meta data (usando nuestro nuevo shortcode user_meta (implementado en el paso 2)) y guardarlo temporalmente, para decirle al shortcode if_get_param (implementado en el paso 1) que use el valor guardado, de la forma siguiente:

[ frm-set-get param=my_user_meta ][user_meta key="loquesea"][ /frm-set-get ]
[if_get_param name="my_user_meta" type="equals" value="VALOR A COMPROBAR"]Contenido si es VERDADERO[/if_get_param]

[if_get_param name="my_user_meta" type="not_equal" value="VALOR A COMPROBAR"]Contenido si es FALSO[/if_get_param]

Solución orientada por Chris de FDM Digitaly adaptada por Julius, desde Slack.

(Formidable) Cómo mostrar u ocultar contenido a partir de user_meta keys Leer más »