Ragic 博客
企业电子化的专家 Ragic 教你如何利用各种软件、
云服务让公司快速升级!
加入 Ragic 企业电子化的行列!
云工作术
各类应用演示
案例故事
逃离恶梦
关于 Ragic
Facebook Twitter YouTube
云数据库
博客
关于Ragic
云工作术
各类应用演示
案例故事
逃离恶梦
关于 Ragic

新手必读:轻松破解五大“子表格”障碍

作者:Lillian Huang

如果要在 Ragic 的众多功能里,选一到两个最重要、也最能代表 Ragic 特色的功能,“子表格”一定是其中之一。

如果你还不知道 Ragic 的子表格是什么,这边简单做个解说。不论是日常生活或工作,我们管理数据时,常有要在一笔数据中,罗列出“细项”、“清单”的需求,例如,客人下了一笔订单,在这一笔订单中,很可能采购了多个商品,需要列出多笔“订购细项”:

或者你要管理客户数据,每个客户是一间公司,公司里可能有不只一位联络窗口:

又或者租借设备,填写租借单时可能想在一张单子(一笔数据)上填写多个租借品项:

这些“一笔订购信息包含的订购商品清单”、“一个客户底下的联络窗口名单”、“一笔租借单信息里包含的租借品项清单”,在 Ragic 上就会是用“子表格”来处理。

它的好处除了让你的数据可以很方便的分层置放(一笔数据里放附属的多笔细项、一个类目里放所属的多笔数据),也能衍生一系列相关的进阶功能(如子表格生成新表单插入参照子表格/显示从其他表单的链接等),可用以运作某些复杂的商业逻辑。

全球市场上,有许多和 Ragic 一样主打“表格式接口”的在线工具,它们可以像 Ragic 一样创建数据表、字段、设置字段种类、套用公式,有些也有数据库功能,但许多任务具都没有 Ragic 这样的子表格 + 表单链接搭配出各种功能的方法,使得它们不容易满足某些在 Ragic 可以轻易做到的事。

子表格和一体两面的表单页面/列表页面呈现方式,是 Ragic 非常重要的特色,也是我们推入荐新手最需要搞懂的两个核心功能。在 Ragic 设计手册列出的各种功能之中,你可以不知道 Ragic 的签核功能是什么、可以不知道怎么产报表、不知道怎么做动作单击钮、不知道什么是“内嵌表单”,这些都没有关系,因为每个人需要的功能不一样,你可以等到有实际需要时,再去学习使用那些功能。

但是,不管是哪一种需求的用户,你都不可以不知道“子表格”和“表单页面/列表页面”这两组概念。关于“表单页面/列表页面”的相关概念,之前我们写过一篇文章:认识你的数据格式,已有详细说明。而关于“子表格”,我们发现它虽然好用好上手,但可能还是藏了一点让人没注意到的“潜规则”。这篇文章就要详细说明子表格的运作逻辑、破解从新手入门到老手进阶时常遇到的五大障碍,让你对子表格更加运用自如。

注:如果你已经不完全是 Ragic 新手,这篇文章前段的说明对你来说可能太简单,但后面提到的第三、四、五个障碍可能仍对你有帮助,建议你可以直接从这个区块开始读起,或透过目录快速跳转到你要的内容。

开始之前:子表格是什么?

在 Ragic 的表单上,当你要创建字段时,如同文档创建字段的图文教学中所示,默认状态下/旁边没有其他字段时,单元格输入后,系统会帮你创建好一个标准的字段,包含左右相邻的字段首部、字段值(例如下图,在 A1 输入“订单编号”后,浅蓝的 A1 为字段首部,白色的 B1 为字段值),一个字段首部对映一个字段值。

创建第二个类似字段时,也是如此,只要避开上面已创建的字段首部/字段值位置(A1, B1),通常是直接在下方单元格(A2)输入信息,就能再创建另一个这样的字段了;不同字段首部之间通常是像这样垂直向下排列。(不一定非要在紧邻的下一列建字段, A3、C1、C2、D2... 只要避开 A1、B1,任何地方都可以)

但假如你创建字段时,不避开先前已经做好的“字段值”位置,而是直接在紧邻已创建的字段首部、也就是原本别人“字段值”(例如如图中的 B4 )位置上输入信息:

那么,你会发现在你输入信息后,原本“字段值在字段首部右边”的规则被改变了,现在 B4 的位置也成了字段首部,且在 A4, B4 这边,字段首部变成“水平排列”,字段首部和字段值从 A1, B1; A2, B2 的“左右相邻”,变成“上下排列”,且一次就带有三个白色的空格(字段值),代表一个字段首部对映着多个字段值。

在这里,“订单编号”、“订单日期”这种字段首部与字段值左右相邻、一个首部对映一个字段值的,我们叫它“独立字段”或“一般字段(这是相对于子表格的称呼);“项次”与“商品编号”字段首部水平排列、首部与值上下排列、一个首部对映多个字段值的,我们就叫它“子表格字段”,因为一个首部可以对应/保存多个字段值,所以可以纪录一笔订单中的多个细项。

看到这里,你或许会发现,表单页面中非子表格的“独立字段/一般字段”跟我们先前提过的表单数据格式没什么差别,但同样在表单页面中的“子表格字段”格式更像 Ragic “列表页面”、电子表格格式 的样子。

这是因为,子表格确实是“附属于表单页面某笔数据底下的另外一组数据”(例如:附属在一笔订单底下的多个订单细项),因此确实适合以列表的方式呈现。但也因为它被视作为“附属于某笔数据的分支”,而不真的是独立的一组(多笔)数据,子表格的一笔数据,和独立一张表单一笔数据的地位仍然不同,只有后者的每笔数据,在数据库中才被当作一个独立个体看待。

这个概念,会影响“子表格字段”的性质,使得在 Ragic 上有一些独立字段可以做的事情,子表格字段不能做,反之亦然;后面会有详细说明。

另外,针对子表格我们有完整的教学文档,有需要的话你可以参阅我们如何创建子表格使用子表格的相关文档,以及专门针对子表格做说明的教学视频

什么时候该把数据放在子表格,什么时候该把数据放在独立字段?

在某些情境(例如前面的订单、租借单例子),哪些数据放在独立字段、哪些数据放在子表格字段看起来很“顺理成章”,但也有一些情境,你可以选择把数据放在独立字段、也可以选择放在子表格字段,不一定 100% 有标准答案,端看你觉得怎么做比较方便、符合你的整体需求。

例如:假如你的一笔数据之中,需要用户上载图片放在数据中(例如安装申请单、维修单,需要附上安装现场图、商品损坏图、保固证书等),这时你要开很多个“图片字段”放在独立字段中(限定一个字段只能放一张图)、开一个“图片字段”放多张图,还是创建一个对应的子表格,其实都可以。

注:Ragic 的“图片字段”和“文件字段”过去只支持一个字段上载一张图片 / 单个文件,因此过去要在一笔数据里放多张图片,只能选择创建多个独立字段或创建子表格字段。但现在 Ragic 的图片 / 文件上载字段已经支持一字段多图 / 多文件功能,设置上更有弹性啰!

这时,思考要做成独立字段或子表格字段时,可以注意:子表格字段比较容易针对同性质数据“批次操作”、区分层次、分析数据;非子表格字段比较能针对需要区隔出差异的字段做处理,但就无法享有批次操作的便利。以下进一步解释:

Ragic 针对各字段的“字段设置”都是统一针对“字段首部”的,意思是,在设计模式下,你只能把鼠标光标放在表格的蓝色“字段首部”位置(没办法放在白色的“字段值”位置)。

如果是“独立字段”(一个字段首部对映一个字段值),针对每一个字段首部(字段值),你都可以做个别的字段类型、公式、样式设置。

但如果是“子表格字段”(一个字段首部对映多个字段值),同一个子表格字段中,所有不同列的“字段值”都是统一根据字段首部的设置走,因此同一字段不同列的子表格不能有不同的字段类型、不能有不同的默认值变量、不能套不同的公式、不能指定设成不同的样式(因条件式格式而使得子表格不同列有不同显示的不在此例)。

因此,假如你希望表单中放两张图片,但 A 图片要显示得大一点、 B 图片要小一点,或者指定第一张上载的图片要标注是正面照、第二张要标注是侧面照,那子表格 / 单一字段就比较难达到一点,可能要考虑做两个独立字段。

但假如你希望这些数据之后是可以做批次操作的,例如订单中的“订购商品”希望可以做个扣库存单击钮(更新别张表单字段值)批扣库存,那就最好把“订购商品”项目做成子表格,才能只要做一个动作单击钮,就能运行批“订购商品”的库存扣减。

如果大致弄清楚了子表格是什么,我们就来一一破解新手常见的子表格(相关)障碍,并藉着这些说明让你更深一层了解子表格是什么、能做什么!

障碍一:为什么字段首部不能依我喜好横着排(竖着排)?

常见障碍或误解:Ragic 跟 Excel 长得一样,Excel 的格子是随便我排的,字段值要排在字段首部的右边还是下面都可以,为什么在 Ragic 我不能把字段值放在首部的底下?或者:我觉得一般字段的字段值排在字段首部下面比较美观,有没有办法做到?

障碍破解:首先,Ragic 虽然长得像 Excel、设计表单与编辑数据的模式也类似 Excel ,但 Ragic 毕竟是数据库软件,有自己的规矩,其中“字段首部和字段值的相对位置”就是依据字段类型规定好、不可妥协的规矩。

在 Ragic,只有“一般字段”,字段值会排在字段首部的右边;只有“子表格字段”,字段值会排在字段首部的下方,这个排列方式是系统判定字段类型的依据(创建字段时,系统是依据你排列字段首部的逻辑,来决定你创建的是独立字段或子表格字段的),而字段的类型会影响后面许多行为的设置,因此这不只是排版、美观的问题而已,无法妥协。

其实,即使在 Excel ,字段首部与字段值的排列方式也不是 100% 能依用户的喜好排的, Excel 提供的许多数据分析方式,如筛选、数据透视等,都默认你的字段首部是水平排列的第一行(电子表格格式),假如你的字段首部不这样放,就无法正确分析数据。

只是,Ragic 更“严格”一点,不管有没有涉及某些“数据分析”的需求,都不能任意排列。这还有一个原因,因为 Excel 的许多行为(例如公式套用、单元格格式设置),运行时都是以“个别的单元格”为单元的,Excel 不会帮你指定谁是字段首部、谁是字段值,“理论上”只要你自己找到单元格并把设置弄对就好。

但在 Ragic ,做设置的单元是“由字段首部和字段值组成的一整组字段”,不管是设置字段格式或套公式,都只能在字段首部设置,不能单独设置字段值(但结果会反映在字段值)。因此,在创建字段时,必须直接规定对应的字段值单元格位置,不让用户任选,系统后续才有判断的依据。这样的规范也减少出错的概率。

一般而言,多笔数据用一笔数据一列的方法排序(第一列为字段首部),算是约定俗成且方便的数据摆放方式,比较少遇到有人有意见。而如果你非常希望独立字段的字段首部能在字段值上方(类似 Google 表单那样的排版),有另一个变通方式:你可以使用内嵌表单的功能,把 Ragic 表单内嵌在另一个网页面上。当你使用此功能、选择“填写表单”类型的接口时,在内嵌(而非 Ragic 表单)页面面上,字段首部就会在字段值上方了:

另一个也算跟子表格、独立字段排序规则有关,也有人提出的需求是“子表格各项字段值的加总结果,想要放在该字段的正下方”。这个在目前的字段排序逻辑里无法直接达成,需要想一下变通方法来适用,有需要的人可以参阅这篇文档的说明

障碍二:我的子表格只能有三行数据吗?

常见障碍或误解:创建好子表格之后,每个字段首部下面会自动显示出三个空白列,也就是画面自动显示了三行子表格数据的空格。有些人会问:可是我想要填的细项(子表格)数据超过三笔怎么办?或者,我只有两行数据要填,没有要填三列那么多,怎么办?

正确答案:这三列只是代表预留给用户的空间,是会向下延展的。只要你新增了三行数据,第四行的空行就会出现,以此类推入。反之,如果你只新增一行或两行也是可以的。这在我们“子表格输入数据”的文档中有说明:

障碍三:想要子表格自动显示相关数据/纪录,怎么实际上还需要我一个个点选?

常见误解:我想利用“显示从其他表单的链接”这个功能,让我的客户数据里自动带入相关的报价纪录,我的子表格设计好了、链接也设计好了,为什么数据还是没有自动显示,还是需要我自己一一点选带入?好不方便!

正确答案:设计正确的话应该不需要手动点选,因此很有可能是你搞混了“显示从其他表单的链接”(插入参照子表格)“链接与加载(到子表格)”这两项功能喔!

这两项功能都可以创建让两张表单之间有连动关系,但运作机制并不同,在某张表单(假设称为 A 表单)设置“链接与加载”,代表在这张表单 KEY 数据时,点选“链接字段”时,系统会帮你自动带入另一张表单(假设称为 B 表单)“加载字段”的信息,但“自动带入”的功能,是要透过你在 A 表单上手动点选来触发的,系统无法帮你决定你要点选哪些数据来加载(细节)。

“显示从其他表单的链接”(插入参照子表格)可被视为比“链接与加载”更进阶的功能,是在两张已经创建好链接的表单(A 和 B)中,在“链接来源”这张表单(以上面例子来说是 B)的一笔数据中,把另一张表单(A)“曾选择这笔数据当链接来源”的数据在不需要任何触发/点选动作的情况下,自动显示出来。

例如,我有一张客户表单、一张报价单,我会需要先到“报价单”创建链接与加载关系,在“报价单”中链接与加载“客户”信息,接着才能回到“客户”表单,不需要先创建子表格,只要选“显示从其他表单的链接”>“报价单”,把“报价单”的字段以子表格的形式拉进“客户”表单中。

很多客户在想要达成“显示从其他表单的链接”效果时,并没有单击照上面的步骤操作,而是先自己在“客户”表单底下创建了“报价纪录”相关信息的子表格字段,接着四处搜索可以把两者“链接”在一起的工具,然后就用链接与加载工具,把这个“客户”底下的“报价纪录”子表格跟“报价单”的字段连在一起(错误演示)

结果就是相关报价单的信息都必须手动点选(因为链接与加载就是要你自己选要连哪一笔数据,再自动加载相关信息)(错误演示)

但如果是正确的操作程序,不用手动点选,相关数据就会自动显示出来(我们经常建议将这个自动显示信息的字段设成只读字段,以防误改):

如果想检查自己到底是正确设置了“显示从其他表单的链接”还是其实设计的是“子表格链接与加载”,最简单的方法是进入到设计模式,在表单工具 > 链接工具的接口上查看,系统会帮你将你已经做过设置的关联表单列出来:

以上面的图来说,有拉进来“自动显示”的就是列在“显示从其他表单的链接”里的“个人订购细项”表单。

障碍四:为什么我不能在列表页面用 SUMIF公式?(子表格可以做,独立字段不能做的事情)

常见障碍:我想在 Ragic 的列表页面使用 SUM、COUNT、SUMIF、COUNTIF、VLOOKUP、UNIQUE、FIRST、LAST 等公式;我想要套一个公式来加总特定条件的数据/取出符合特定条件数据的值并且显示在列表页面,有办法吗?

正确答案:因为 Ragic 的数据规则,这些公式在 Ragic 都是“子表格限定”的喔!意思是,这些公式的“参照字段”(公式的来源数据)一定要是子表格字段。(套公式的位置,也就是返回公式结果的地方则一定要是独立字段/一般字段)

这是因为,这些公式基本上做的事,都是加总、判断或比对多笔数据的值之后,返回一个结果。Ragic 的公式(和多数“设计模式”下要做的设置)基本上是在表单页面做设置的,表单页面的一个页面面(=一笔数据)上,只有子表格字段会同时有(附属的)多笔数据可以用来比对、加总、做其他操作。

例如:想要找出订单中,订购类别为“饮料”的订购细项总金额:

参照的字段(D5类别、G5小计)就得是子表格字段(套公式的地方则是一般字段)

又例如:想要找出婚宴一桌的宾客名单中,“亲友类型(和新人的关系)”不重复的值:

参照的字段(C8 和新人的关系)也得是子表格字段(套公式的地方则是一般字段)

而如果是想要根据一张表单的多笔数据,参照独立字段来得出这些公式的结果呢?例如,上面例子中的“订购细项”如果是另一张表单的独立字段,一样想要用公式算出订购类别为“饮料”的订购细项总金额,为什么不行呢?

你会发现,虽然列表页面上有多笔数据,但是没有一个独立于这些表单数据之外的“字段”可以套公式来取得 SUMIF 的结果。另外,Ragic 的列表页面功能偏向“纵览表单页面的数据/摘要”,而非去做设计,因此除了少数例外,原则上,列表页面也不是我们应该用来设置公式的地方。因此,SUMIF 只能参照子表格字段来运作;婚宴宾客名单的例子,如果不是子表格数据,而是独立数据的话,道理也相同。

其他子表格字段专属(独立字段没有)的功能,还包括子表格连选,因为链接与加载也是在表单页面上操作的,表单页面上独立字段只会有一笔数据,不会有连续点选多笔的需求;序列默认值 $SEQ(针对一笔数据中的一组子表格数据给予序号,不同数据间的序号不相关。如果是独立字段要生成流水号,会使用自动生成字段)。

如果我需要参照独立字段使用这些“子表格专属的公式”怎么办?

① 请善用“加总与分析”、“报表”功能达成需求

在 Ragic,许多您的需求可以用不只一种工具达成,因此如果您默认的某条路断了,也许有其他方法可以达成,而且可能更方便。假设您希望用的是 COUNT 公式,代表您希望知道总共有几笔数据,可以直接查看 Ragic 列表页面右上角的数据总数 数字;如果是特定条件下的 COUNIF 公式,您可以先以该条件筛选出需要的数据再查看。

同理,如果需要的是 SUM 或 SUMIF 公式,代表 您希望针对一批数据做加总(或套用特定条件加总),可使用加总与分析功能。许多其他需求也可以透过 Ragic 的报表功能来做到。

② 利用“显示从其他表单的链接”(插入参照子表格)功能,将独立字段“变成”子表格字段

如果既有的加总分析或报表工具不能满足您的需求,或您希望将取得的结果保存在某个特定的字段中(而不是只是显示出来),那么还有一个方法,就是将独立字段“转化”成子表格字段,以便运行你希望的工作。

在 Ragic,可以“把某张表单中的独立字段,转换成另一张表单的子表格字段”的方法,就是前面提过的“显示从其他表单的链接”(插入参照子表格)这个功能。

如前所述,这个功能的原意是:假如有两张表单已经创建了链接关系,要可以自动在其中一张表单中,把另一张表单中相关的数据拉进来,以子表格的形式列出来。例如前面的例子,“报价单”表单中的客户字段链接自“客户”表单,那么要可以在“客户”表单的子表格中自动列出与这个客户有关的报价纪录。主要用处是:只要链接关系创建好了,这些参照子表格的数据就会自动显示,不需要到另一张表单去手动比对与纪录。

但是,“把另一张表单中相关的数据拉进来,以子表格的形式列出来”这个动作,正好就是“把某张表单的独立字段,转化成另一张表单的子表格字段”的过程。因此,如果有特定需求的话,就也可以刻意设计出利用“显示从其他表单的链接”(参照子表格)功能,将独立字段变成子表格字段。我们先前的教学文章中,就曾以“每月薪资单、月报表、费用报支统计”为例,做过这样的演示,实际操作案例与教学可以参阅这里

障碍五:为什么子表格不能拉到列表页面来显示?怎么汇入/汇出子表格数据?(独立字段可以做,子表格不能做的事)

常见障碍或疑问:为什么不能把子表格字段拿来当“显示在列表页面的字段”(例如将子表格“订购商品”拉到订单的列表页面)?要怎么将数据汇入 Ragic 子表格字段?

正确答案:这些的确没办法做,主要原因如同前面所说,因为独立字段和子表格字段的运作机制不同。现阶段,只有“独立字段”可以做、子表格不能做的事情包括:① 把表单页面字段拉到列表页面显示、② 作为“链接与加载”的来源、③ 直接汇出数据 [2019/11/21注:“直接汇入”子表格数据的部分目前已直接支持了,相关教学请见这里]、④ 归并打印(Word 檔)、⑤ 以表单的子表格字段为依据生成某些类型的报表。以下分别说明。

子表格的表单页面字段无法拉到列表页面显示的部分,是因为列表页面的一笔数据 = 一行,单笔数据一个字段只能有一个字段值,因此“一个字段多个值”的子表格数据依这个原则是没有办法依这个逻辑显示在列表页面上的,顶多只能想一个规则,另开一个字段抓取特定的子表格数据放在独立字段上,再把独立字段显示在列表页面。

子表格不能当链接与加载来源的部分,我们“链接与加载”的文档中有专章说明,请见链接与加载常见错误的第一项:(系统不许可你)“从其他表单的子表格字段拉链接到表单中”。简单来讲,因为子表格字段“一笔数据不止一个值”的特性,我们若把它当作链接的来源,选了来源(链接字段)之后系统会无法判断到底要加载该笔数据的哪一个值/哪一行子表格。因此目前标准功能无法做到将子表格当链接与加载的来源。

目前只有在 Ragic 写客制化程序才能达到“某笔数据的子表格,直接透过链接加载带入另一张表单对应数据的整个子表格”的功能,例如我们生产管理模块工单上“展开 BOM 表”、“带入生产流程”两个动作单击钮就是写客制化程序达到的。

汇出数据的部分,目前接口也是以列表页面/独立数据为主来设计,尚未支持直接汇入子表格数据,不过你可以参照这里的教学),先把子表格变成独立表单之后再汇出。你可以透过新增源表单的一般字段功能,让你汇出的每一个细项里,都包含原本表单上的重要信息(例如汇出订购细项时,也可以看到每笔细项有标注订购者、订单编号、订单状态等)。

如果我想在子表格字段做独立字段才能做的事,怎么办?

① 视情况利用公式将需要的子表格数据带入到独立字段中

假如你希望特定的一笔子表格数据的某个字段呈现在列表页面、或希望特定的一笔子表格数据某个字段适用独立字段的运作方式,可以先分析看看你的需求是否有合适的公式可以套用,在独立字段取得某笔特定子表格的值。

例如:希望“联络纪录”子表格里最近一次的联络日期,可以显示在独立字段“上次联络日期”,那就是用 LAST() 公式把这个子表格字段值抓到“上次联络日期”。

前面“只能参照子表格字段”的公式中,有许多其实就是可以扮演这种“将特定子表格数据抓到一般字段”的功能。

② 视情况利用“子表格生成新表单”功能,将子表格字段“变成”另一张表单的独立字段

从 Ragic “子表格生成新表单”功能的文档说明,就可以看到这个功能基本上就是为了“子表格字段”本身不是那么方便的时候,能直接将子表格数据转换为独立数据而设的,因此直接利用此功能也是一个做法。(上面汇入汇出子表格数据的做法就是利用子表格生成新表单的机制)

另外,为了减轻学习障碍、简化用户的操作程序,针对“只有独立字段可以做、子表格字段无法做的事情”,Ragic 官方长期而言计画开发自动串接的机制,让用户操作子表格时,就可以直接使用这些功能。我们会把陆续新增的支持信息更新在这里,以下是目前已新增支持的部分:

① 2019/11/21 新增支持“直接汇入子表格”:现在你可以直接将子表格的数据汇入该张表单,不用“子表格生成新表单”,详细教学请见这里

以上就是 Ragic 客户入门子表格相关功能时,比较容易误会/卡住的几个部分。解开误会之后,你就可以更轻松驾驭子表格的各种进阶功能了!

如果有更多子表格相关疑问,都欢迎你来信 support@ragic.com 让我们为你解答。

归类: 关于 Ragic, Ragic教学

博客背后使用 Ragic! : 最强大的 No Code 企业电子化工具
把数据放在Excel上不只是拖累团队的行政效率,他也很容易出错并且无法进行任何内控。
当您的团队成长时,使用Excel管理数据就会越来越痛苦。
创建你们的第一个云数据库!

马上登记
免费试用 Ragic!

用 Google 帐号登记

立即科技 Ragic, Inc.
02-7728-8692
台北市中正区南昌路二段81号9楼