Ragic 博客
企业电子化的专家 Ragic 教你如何利用各种软件、
云服务让公司快速升级!
加入 Ragic 企业电子化的行列!
云工作术
各类应用演示
案例故事
逃离恶梦
关于 Ragic
Facebook X 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! : 最强大的 No Code 企业电子化工具
    把数据放在Excel上不只是拖累团队的行政效率,他也很容易出错并且无法进行任何内控。
    当您的团队成长时,使用Excel管理数据就会越来越痛苦。
    创建你们的第一个云数据库!

    马上登记
    免费试用 Ragic!

    用 Google 帐号登记

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