Excel 进阶——从工作到工程 6 可用性维护

本文介绍如何利用保护工作表和保护工作簿等功能,限制可编辑区域,设置数据验证,以保证复杂的逻辑关系不会被随意改动。


系列教程索引和配套练习文件,请点这里


经过前面几番折腾,咱手上这份 Excel 文档的公式引用结构可谓相当复杂。发给同事使用的时候,难免人家因为不清楚背后的逻辑,而在无意中进行一些破坏性的修改,导致失效。

作为一个工具性的 Excel 表格,我们制作的目的是让电脑自动完成识别分类的工作,节省人力。这个过程可以简化为,用户粘贴进来三级分类,复制走一级二级分类;有需要时可以改动分类体系,其余的功能可以暂时丢掉。


打开 Example 6.xlsx,切换至 Tamplate 工作表。

首先为大量的分类工作预留位置,将 A3 和 B3 的公式,向下填充至 A5000 和 B5000 行,这里的数字根据日常工作经验确定。但是发现在三级分类为空的地方,一二级分类出现了 #N/A 的错误,所以在一二级公式中加入三级分类是否为空的判断,修改 A3 处公式如下

=IF(C3="", "", VLOOKUP($C3, CHOOSE({1,2}, INDIRECT(Settings!$B$5):INDIRECT(Settings!$B$8), INDIRECT(Settings!$B$3):INDIRECT(Settings!$B$6)), 2, FALSE))

同理,B3 处公式如下

=IF(C3="", "", VLOOKUP($C3, CHOOSE({1,2}, INDIRECT(Settings!$B$5):INDIRECT(Settings!$B$8), INDIRECT(Settings!$B$4):INDIRECT(Settings!$B$7)), 2, FALSE))

然后再将 A3 和 B3 向下填充至 5000 行即可。

使用保护工作表时,默认情况下除了选取单元格外,对整个工作表的任何编辑是被禁止的,而我们需要用户输入三级分类,所以需要将三级分类的位置设置为 “
允许用户编辑区域 ”,这样在启动保护工作表时,该部分才可以被修改。

切换至 “ 审阅 ” 标签,点击 “ 允许用户编辑区域 ”。

审阅 - 允许用户编辑区域

在弹出的退化框中点击 “ 新建 ” 按钮,添加一个可允许编辑的区域。

允许用户编辑区域对话框

为该区域设置一个名称;并且选中三级分类所在的区域,这里根据常用工作量来判断,将 C3:C5000 设置为可编辑区域;下方的区域密码为空,这样才可以不受限制的编辑该区域。

修改区域对话框

单击 “ 确定 ” 按钮,可以看到刚刚设置的区域已经被添加到了允许用户编辑的列表中。再次单击 “ 确定 ” 按钮。

接着,在顶部 Ribbon 工具栏中单击 “ 保护工作表 ” 按钮。

审阅 - 保护工作表

在弹出的对话框中,输入密码,例如 “ amazing ”,下方的权限采用默认设置即可,单击 “ 确定 ” 按钮。

保护工作表对话框

在新弹出的对话框中再次输入一遍刚刚输入的密码,单击 “ 确定 ” 按钮。

确认密码对话框

至此即完成了对 Tamplate 工作表的保护,除 C3:C5000 区域外其他位置都不可以被编辑改动了。

针对 Settings 工作表,采用类似的处理,保留 tab 参数,也即 C9 位置的编辑权,其余用密码保护起来。如此,用户可以更改 tab 参数来切换分类体系,但是不会轻易将 Settings 中的其余参数搞混淆。


现在的工作簿结构是可以被修改的,也即用户可以增加和删除工作表。如果分类体系相对固定,则可以使用保护工作簿功能,限制对工作表的增加和删除。

单击工具栏中的 “ 保护工作簿 ” 按钮。

审阅 - 保护工作簿

在弹出的对话框中输入密码,单击 “ 确定 ” 按钮,然后再次输入密码以确认。

保护结构和窗口对话框

这里的密码可以与刚刚设置的 “ amazing ” 不同,但在本例中,仍然使用刚才的密码。

至此,各个工作表的结构被锁定,无法增加或删除。整个工作簿中唯一能改动的内容即刚刚所设置的两个允许编辑的区域,以及 Genre 和 Hehe 工作表。在日常使用中,只需将三级分类粘贴到 C3:C5000 的位置,即可从 A3:B5000 的位置上复制一级分类和二级分类,非常方便。


一些说明

  • 如果不对工作簿进行保护,而又不想用户随意修改 Settings 工作表,可以将其隐藏,右键工作表选项卡单击 “ 隐藏 ” 即可。
隐藏工作表
  • 设置密码只是为了防止意外的修改将现有体系破坏,当工作表的功能需要继续升级或者进行修正时,需要取消保护工作表,以及取消保护工作簿,因而这套密码的目的并非出于保密。我个人推荐将密码作为参数写到 Settings 中,以防遗忘,也能方便他人在头脑清醒的情况下对表格做出修缮。
记录密码

最后,做一点锦上添花的工作,为三级分类添加数据验证。该操作需要在工作表没有被保护的情况下进行。首先切换到 Tamplate 工作表,单击上方工具栏中的 “ 撤销保护工作表 ” 按钮。

审阅 - 撤销保护工作表

在弹出的对话框中输入密码,并确定。

撤销保护工作表对话框

然后选择 C3:C5000 区域,在 “ 数据 ” 选项卡中单击 “ 数据验证 ” 按钮。

数据 - 数据验证

在弹出的对话框中,将 “ 允许 ” 下拉列表设置为 “ 序列 ”,勾选 “ 提供下拉箭头 ” 复选框,并在 “ 公式 ” 处填写如下公式

=OFFSET(INDIRECT(Settings!$B$10), 0, 0, Settings!$B$2)

即,所有符合规定的值必须是所使用的三级分类体系里面的值。

Paste_Image.png

在 “ 出错警告 ” 选项卡中,按如下内容设置,并确定。

数据验证对话框

这样就给 C3:C5000 区域设置了数据验证,单击其中的一个可以发现在右侧有一个下拉箭头,里面提供了所有合法的三级分类值,点击其中一个即可选择。

当手动输入的三级分类无效时,Excel 会给出如下图所示的警告,提示用户进行修改或确认。

数据验证警告

两个说明

  • 数据保护只能检测用户输入的数据,对于粘贴到 C3:C5000 区域内的数据,是无能为力的。
  • 如果公示太长了不易阅读,可以将公示拆开换行,使用 Alt + Enter 键。Excel 会忽略空格和换行符,所以可以有更直观的公式排版方式,像下面这样。
=IF(
      C3 = "",
      "",
      VLOOKUP(
          $C3,
          CHOOSE(
              {1,2},
              INDIRECT(Settings!$B$5):INDIRECT(Settings!$B$8),
              INDIRECT(Settings!$B$3):INDIRECT(Settings!$B$6)
          ),
          2,
          FALSE
      )
)

如此便完成了 Example 6.xlsx


下一课中,将做一个简要的总结,谈谈心得。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容

  • 本例为设置密码窗口 (1) If Application.InputBox(“请输入密码:”) = 1234 Th...
    浮浮尘尘阅读 13,595评论 1 20
  • 最近大火的韩剧《今生是第一次》凭借清新浪漫的情节,和极其符合现代社会80后现实的生活感悟而引起了大量的年轻观众的共...
    mi穿衣服的刺猬阅读 244评论 0 0
  • 每次都感觉自己有很多想法,可是想表达出来,却感觉好难。写出来的,都不是自己要表达的。之前有看到一篇文章说,每天写一...
    柒月的玖阅读 150评论 0 0
  • 【姓名】苏建新 【派别】文魁派 【导师】王玉印、袁文魁 【分舵】闻鸡起武 【舵主】刘丽琼 因为武林计划第一课我没有...
    建新思维导图阅读 153评论 4 1
  • 不知道从何时开始少了很多交流 少了晚安 少了思念 少了很多的东西 心理有时候会很空 会在安静的时候一个人脆弱 一个人闹心
    小小面阅读 182评论 0 0