单元格上的Excel条件有效密码

时间:2018-04-23 08:58:16

标签: excel excel-formula

这是Excel问题,

我正在创建一个模板,用于批量导入系统到系统, 其中一列需要输入密码

我想在[密码]单元格上创建一个条件,以便向输入密码有效的详细信息的人员表明

这些是条件:

Passwords must be between 8 and 20 characters. 
Must contain one lower & uppercase letter, 
and one non-alpha character (a number or a symbol.)

有可能吗?

2 个答案:

答案 0 :(得分:4)

让我们把它分解成几个阶段:

  

密码必须介于8到20个字符之间。

因此,这意味着对于单元格A1中的值,我们希望LEN(A1)位于>=8<=20。有几种方法可以做到这一点,我将MEDIAN(8, LEN(A1), 20)=LEN(A1)作为一个简单的方法。

  

必须包含一个较低的&amp;大写字母

现在,如果您只是对UPPER(A1)=LOWER(A1)进行检查,那么您会看到正常的检查忽略了Case ...但是,EXACT比较会保留大小写!因此,如果单元格EXACT(A1,UPPER(A1))中的所有字母都是大写字母,则TRUE将为A1。对于FALSEUPPER支票,我们希望LOWERNOT(OR(EXACT(A1,UPPER(A1)),EXACT(A1,LOWER(A1))))

  

和一个非字母字符(数字或符号。)

这是棘手的。我将建议使用SUMPRODUCT来强制计算特定符号列表中AGGREGATEFIND的数组公式。例如,如果您要查找"!", "£" or "$"中的任何一个,则此代码如果存在则会返回TRUE,如果不存在,则返回FALSEIFERROR(SUMPRODUCT(AGGREGATE(15,6,FIND({"!","£","$"},A1),1)),0)>0

如果您可以使用隐藏工作表,则可以将“符号”放入列中进行检查,例如:IFERROR(SUMPRODUCT(AGGREGATE(15,6,FIND(SuperHiddenSheet!$A$1:$A$50,1)),0)>0


现在,只需将您的3个条件添加到AND,即可进行测试:

=AND(MEDIAN(8, LEN(A1), 20)=LEN(A1), NOT(OR(EXACT(A1,UPPER(A1)),EXACT(A1,LOWER(A1)))), IFERROR(SUMPRODUCT(AGGREGATE(15,6,FIND({"0","1","2","3","4","5","6","7","8","9","!","£","$","%","^","&","(",")","@","'","~","#","\","/","|","<",">","[","]","{","}","_","-","+","="},A1),1)),0)>0)  

(我已将“*”留在“特殊字符”列表中)

答案 1 :(得分:0)

我认为没有办法在公式中找到任何符号,VBA可能会更好。请检查这是否足够好。

@extends('layouts.app')
@section('content')
    <a href="/posts" class="btn btn-default">Go Back</a>
    <h1>{{ $post->title}}</h1>
    <p>{{ $post->body}}</p>
    <small>{{ $post->created_at }}</small>
@endsection