validation - tipos - ¿Cómo propagar la validación de datos a otras filas?
validacion de datos en excel personalizada (2)
Ranges
hoja:
Work
hoja:
En los Ranges
hoja en las celdas A1:A5
tengo algunos valores, digamos: One
, Two
, Three
, Four
, Five
. En la celda B1
tengo la siguiente fórmula: =ARRAYFORMULA(transpose(if(Work!$A1<>"";$A$1:$A$5;"")))
que rellena las celdas B1:F1
con los valores mencionados anteriormente en función de si la celda A1
en la hoja Work
no está vacía.
A continuación, seleccioné las celdas B1:F1
y luego, usando el controlador de relleno, arrastré la selección hacia abajo para cubrir el rango B1:F10
. Esto copió el rango anterior, pero cada fila ahora depende de la fila correspondiente en la hoja Work
.
Básicamente, he creado una lista de rangos de datos que solo se completan cuando ciertas celdas en otra hoja no están vacías.
Finalmente, en la Hoja de Work
he agregado la validación de datos para la celda B1
con una lista desplegable: Ranges!B1:F1
Lo que hace es crear una lista desplegable en esta celda con valores: One
, Two
, Three
, Four
, Five
, pero solo si la celda A1
no está vacía.
Ahora, para mi pregunta: me gustaría propagar esta validación de datos a otras filas (1 - 10) con fill-handle, pero para que la lista desplegable dependa de una celda / fila diferente en cada caso. Pero el controlador de relleno solo copia la regla de validación de la primera fila en cada caso. (Puede ver en la segunda imagen que incluso para las filas con celda vacía en la columna A
todavía hay listas desplegables con valores.
¿Cómo puedo propagar esto sin tener que cambiar los rangos de celdas en las reglas de validación de datos manualmente en cada caso?
Como nadie propuso algo mejor, lo cierro con mi solución del comentario. He usado un script que establece la validación de datos para cada celda por separado. No estoy publicando código ya que mi hoja actual es bastante diferente de este ejemplo y tendría que volver a escribir todo.
Esta solución está lejos de ser ideal, principalmente porque tiene que dedicar tiempo a buscar en Google la sintaxis y las funciones, y tampoco todos querrán tener scripts en sus hojas. Pero aparentemente no hay nada mejor.
Vale la pena mencionar que fill-handle hace lo que yo quiero en Excel. Intenté crear esta hoja en Excel y abrirla en hojas de Google, pero me decepcionó descubrir que las reglas de validación de datos se perdieron / se rompieron en el proceso.
function a(str)
{
if(str.uname.value=="")
{
document.getElementById("msg1").innerHTML="! Plz Enter Username";
str.uname.focus();
return false;
}
if(str.pass.value=="")
{
document.getElementById("msg1").innerHTML="Plz Enter Password...";
str.pass.focus();
return false;
}
if((str.pass.value.length<3)||(str.pass.value.length>8))
{
document.getElementById("msg1").innerHTML="Plz Enter Password 3 to 8";
str.pass.focus();
return false;
}
}
<?php
if(isset($_REQUEST[''submit'']))
{
$uname=$_REQUEST[''uname''];
}?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script type="text/javascript" src="valjs.js">
</script>
</head>
<body>
<form method="post" name="frm" onsubmit="return a(this)" enctype="multipart/form-data">
<table align="center" border="2" cellpadding="5px" cellspacing="0px" border="1px">
<tr>
<td><span style="color:#FF0000">* </span>username</td>
<td><input type="text" name="uname" id="uname" />
</td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="pass" id="pass" />
</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="submit" id="submit" value="Click" />
</td>
</tr>
</table>
</form>
<h4 align="center"><span id="msg1" style="color:#FF0000" >
</span>
</h4>
</body>
</html>