如何将数据验证传播到其他行?

时间:2017-05-16 12:10:54

标签: validation google-sheets autofill

工作表Ranges

enter image description here

工作表Work

enter image description here

在单元格中Ranges A1:A5我有一些值,我们说:OneTwoThree,{{1 },Four。在单元格Five中,我有以下公式:B1根据工作表=ARRAYFORMULA(transpose(if(Work!$A1<>"";$A$1:$A$5;"")))中的单元格B1:F1是否为非填充上述值的单元格A1空。

接下来,我选择了单元格Work,然后使用填充句柄将选区拖动到覆盖范围B1:F1。这复制了上述范围,但每行现在取决于工作表B1:F10中的相应行。

基本上,我创建了一个数据范围列表,只有当另一个工作表中的某些单元格非空时才会填充这些数据范围。

最后,在工作表Work中,我已使用下拉列表为单元格Work添加了数据验证: B1

这样做会在此单元格中创建一个下拉列表,其中包含以下值:Ranges!B1:F1OneTwoThreeFour但仅限于Five非空!

现在我的问题 - 我想用填充句柄将这个数据验证传播到其他行(1 - 10),但是下拉列表在每种情况下依赖于不同的单元格/行。 但是填充句柄只是在每种情况下从第一行复制验证规则。(您可以在第二张图片中看到,即使列A1中的空单元格的行仍然存在带有值的下拉列表。

如何在不必每次都手动更改数据验证规则中的单元格范围的情况下传播此内容?

2 个答案:

答案 0 :(得分:2)

由于没有人提出更好的建议,我可以用评论中的解决方案来关闭它。我使用了一个脚本,分别为每个单元格设置数据验证。我没有发布代码,因为我的实际工作表与此示例完全不同,我将不得不重写整个代码。

这个解决方案远非理想,主要是因为你必须花时间搜索语法和功能,而且并不是每个人都希望在他们的工作表中有脚本。但显然没有比这更好的了。

值得一提的是,fill-handle在Excel中完成了我想要的工作。我已经尝试在Excel中创建此工作表并在Google工作表中打开它,但很遗憾地发现数据验证规则在此过程中丢失/损坏。

答案 1 :(得分:-1)

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>