Org 组织架构图生成器

粘贴「姓名,职位,汇报对象」三列文本,生成层级表、缩进树与管理跨度统计。

支持中文逗号或英文逗号;汇报对象留空表示该行是根节点。按 Ctrl+Enter 或 Cmd+Enter 生成。

统计结果

指标值

缩进树

管理者跨度与沟通通道

管理者直属下级数两两沟通通道 C(n,2)

层级明细

层级姓名职位直属下级数是否叶子

使用方法

打开页面时文本域已经直出八行示例:张伟是 CEO,汇报对象留空;李娜、陈晨、周杰向张伟汇报;王强、赵敏、孙丽向李娜汇报;刘洋向赵敏汇报。点击“生成架构”或在文本域内按 Ctrl+Enter(Mac 为 Cmd+Enter),页面立即输出四块内容:统计卡、缩进树、管理者跨度表与层级明细表。文本域示例由服务端直出,JavaScript 只在检测到内容为空时才填入同一份兜底数据,不会覆盖用户已粘贴的清单。

输入格式为每行一条记录,三个字段依次是姓名、职位、汇报对象,字段之间用中文逗号或英文逗号分隔。汇报对象留空表示该人是根节点;根节点姓名必须与其他人名完全一致,多一个字或少一个字都会被判定为“汇报对象不在名单中”并指出行号。组织名称与根节点姓名是两个可选项:组织名称只影响缩进树首行的标题,根节点姓名用于在出现多个空汇报行时强制指定根。缩进空格数控制树的缩进粒度,默认每级两个空格。

明细表默认显示前 12 行,点击“加载更多”展开全部成员;复制按钮输出制表符分隔文本,导出按钮下载带 BOM 的 CSV 文件。全部解析在当前浏览器内完成,人员名单不会发送到服务端。

能解决什么

把一份花名册变成可计算的组织,是本页要解决的核心问题。手绘架构图只能表达“谁画在谁上面”,无法回答“这个组织平均多宽”“最长汇报链有几级”“哪些管理者名下其实只有一个人”。本页在解析文本的同时算出这些指标,尤其给出平均管理跨度与两两沟通通道数,让组织结构从图形变成可以比较的数字。

本页在工具目录中的名称是 Org图表生成。它处理的输入只关心汇报关系,不关心编制、职级与薪资;输出中的“职位”字段原样保留用户填写的文本,不做职级归一化。若两份名单使用了不同的职位写法,比较指标前应先统一写法,否则同一人可能因姓名相同而被合并、因职位差异而被误读成两个岗位。

输出顺序遵循深度优先:先完整走通一条汇报链,再回到上一级走下一条。因此层级明细表中同一层的人员不会集中排列,而是按各自父节点的出现顺序分布,这与从左到右阅读架构图的习惯一致。统计卡里的管理者人数只统计有直属下级的人,根节点只要名下有人同样计入;叶子人数是没有任何直属下级的人,两者相加等于总人数,可用来交叉验证解析是否漏行。

原理与变量

解析分三步。第一步按行拆分并抽取三个字段,建立姓名到记录的映射;第二步按汇报对象把每个人挂到其父节点,汇报对象为空的人作为根;第三步从根做一次深度优先遍历,得到每个人的层级、直属下级数与是否叶子。任一人的汇报对象不在名单中、名单中出现重名、出现多个根或汇报链成环,都会中断生成并给出具体行号或姓名,而不是输出一棵看起来正常但结构错误的树。

核心统计量有两个。平均管理跨度 = (总人数 − 1) / 管理者数,其中管理者数是有直属下级的人数;示例 8 人、3 名管理者,平均跨度为 (8 − 1) / 3 = 2.33333333333。两两沟通通道数按管理者逐个计算 C(n,2) = n(n−1)/2,n 为该管理者的直属下级数,全组织通道数是各管理者之和:示例中张伟带 3 人得 3 条、李娜带 3 人得 3 条、赵敏带 1 人得 0 条,合计 6 条。

两两沟通通道 C(n,2) = n(n−1)/2;平均管理跨度 = (总人数−1) / 管理者数

通道数随跨度超线性增长:跨度 2 是 1 条、跨度 3 是 3 条、跨度 4 是 6 条、跨度 5 是 10 条、跨度 6 是 15 条、跨度 7 是 21 条、跨度 8 是 28 条、跨度 10 是 45 条。这正是经典经验值把管理跨度压在 5 到 7 人的算术根据:跨度 7 时下级之间已有 21 条协调通道,跨度 10 时升到 45 条。深度一侧同样是指数关系:固定跨度 s 的四层满树各层人数为 1、s、s²、s³,跨度 3 合计 40 人,跨度 5 合计 156 人,跨度 7 合计 400 人。

完整示例

以默认八行清单走一遍。根是张伟,层级 1;李娜、陈晨、周杰在层级 2;王强、赵敏、孙丽在层级 3;刘洋在层级 4。最大深度 4 层,叶子 5 人(王强、刘洋、孙丽、陈晨、周杰),管理者 3 人(张伟、李娜、赵敏)。平均管理跨度 2.33333333333,低于 5 到 7 的经验区间,说明这个组织偏“高而瘦”:信息从刘洋到张伟要经过三级传递。

缩进树按深度优先输出,每级缩进两个空格:张伟下属依次列出李娜、陈晨、周杰;李娜之下先递归王强,再递归赵敏(赵敏之下是刘洋),最后是孙丽。管理者跨度表中,张伟带 3 人、通道 3 条,李娜带 3 人、通道 3 条,赵敏带 1 人、通道 0 条。把刘洋的汇报对象从赵敏改成张伟后,张伟变带 4 人、通道 6 条,赵敏变成叶子,管理者数不变而通道合计从 6 升到 9,平均跨度不变——改一条汇报线就能看到协调成本的变化。

对照表

下表给出管理跨度与两两沟通通道数的对应关系,可直接用于评估一名管理者名下每增加一人带来的协调增量。

管理跨度 n两两沟通通道 C(n,2)相比上一跨度新增
211
332
463
5104
6155
7216
8287
10459

深度一侧的对照为四层满树:跨度 3 时各层 1、3、9、27,合计 40 人;跨度 5 时各层 1、5、25、125,合计 156 人;跨度 7 时各层 1、7、49、343,合计 400 人。这说明“再加一层”的代价是乘一个跨度,而不是加一个跨度。

结果边界与舍入

平均管理跨度按 12 位有效数字显示,示例结果为 2.33333333333;若管理者数为 0(所有人都是叶子且只有一个根),该指标无定义,页面会提示组织只有一人而不输出跨度。通道数与人数是整数,不涉及舍入。层级从 1 起算,深度 4 表示从根到最深叶子共四级。

输入边界方面:单行字段超过 3 个、姓名为空、职位为空、重名、汇报对象不在名单中、多个根、汇报链成环,都会中断生成并给出具体行号或姓名。空行与首尾空白行被忽略;字段两侧的空格会被修剪。名单为空时提示粘贴至少一行人员,行数上限由浏览器文本框决定,本页不设额外限制。

常见问题

为什么平均管理跨度是 2.33333333333?

公式是(总人数−1)/管理者数。示例 8 人、3 名管理者,(8−1)/3 = 2.33333333333,低于 5 到 7 的经典经验区间,说明组织偏“高而瘦”。

两两沟通通道数怎么算?

按管理者逐个计算 C(n,2) = n(n−1)/2,n 是直属下级数。张伟带 3 人得 3 条,李娜带 3 人得 3 条,赵敏带 1 人得 0 条,合计 6 条。

汇报对象留空是什么意思?

表示该行是根节点。示例中张伟的第三个字段留空,因此整棵树从他开始。出现多个空汇报行时页面会报错,也可用“指定根节点姓名”强制选根。

为什么改一条汇报线通道数就变了?

把刘洋从赵敏名下改到张伟名下,张伟的跨度从 3 变 4,通道从 3 条变 6 条,赵敏变成叶子,全组织通道合计从 6 升到 9,平均管理跨度不变。

支持中文逗号吗?

支持。中英文逗号都可作字段分隔符,字段两侧空格会被修剪。若说明文字里本身含逗号,请改用其他符号,避免字段数超出 3 个被拒绝。

深度和人数为什么是指数关系?

固定跨度 s 的四层满树各层人数为 1、s、s²、s³。跨度 3 合计 40 人,跨度 5 合计 156 人,跨度 7 合计 400 人,所以“加一层”的代价是乘一个跨度。

名单里有人重名会怎样?

页面按姓名唯一建索引,遇到重名会中断并提示重复的姓名与行号,需要先区分写法,否则父子关系会挂错。

导出的 CSV 包含哪些列?

包含层级、姓名、职位、直属下级数、是否叶子五列,顺序与层级明细表一致,带 BOM,Excel 打开中文表头不乱码。

相关工具

架构指标确定后,往往还要把结果画成图表或做进一步的数据处理。以下入口均使用站内实际分类路径: