具透 Plus | Numbers 学了新函数但没学透;如何找回 Windows 11 本地账户
苹果Numbers新增LAMBDA函数及兼容功能,提升编程能力但缺乏名称管理器支持;Windows 11移除本地账户安装脚本,仍可通过注册表或命令行绕过强制登录。 2025-4-18 09:21:30 Author: sspai.com(查看原文) 阅读量:14 收藏

Numbers学了新函数,但没学透@PlatyHsu:在办公套件领域,微软以外的玩家只有两条出头之路,要么做出特别差异化的杀手级功能(如GoogleDocs的多人编辑稳定性、Keynote的设计感和过 ...

Numbers 学了新函数,但没学透

@PlatyHsu: 在办公套件领域,微软以外的玩家只有两条出头之路,要么做出特别差异化的杀手级功能(如 Google Docs 的多人编辑稳定性、Keynote 的设计感和过场动画),要么就和 Office 保持最大程度的兼容性(如 WPS)。苹果的电子表格软件 Numbers 以上两点都不占,成为 iWork 套件中最不受待见的组件也是可以理解的。

不过 Numbers 毕竟还是在进步。上个月的 14.4 虽然是个小版本更新,但 Numbers 在这个版本中获得了许多之前缺失的 Excel 函数。其中最主要的大概是 LAMBDA 函数及与之配合的函数。这些函数在 2020 年引入 Excel 时引起了不少关注,时隔四年多,终于在 Numbers 中获得了兼容。

如果你之前没有关注过 LAMBDA 函数,不妨把它理解为一种简单的编程功能,你可以自己定义 Excel/Numbers 中没有预置的函数,然后像一个自带函数那样调用它。(会写代码的读者可以直接理解为电子表格版的匿名函数。)

这里举一个简单的例子。假设你有一个两列组成的名单,A 列是姓名,B 列是 X 账号,现在你想在 C 列里输出形如「姓名(@账号)」的组合,例如 Donald Trump (@realDonaldTrump) 等等。但如果没有账号,就只输出姓名。

根据传统方法,你需要在 C1 列填写如下公式,然后向下填充:

=IF(ISBLANK(B1),
    A1,
    A1 & " (@" & B1 & ")"
    )

这个方案有两个缺点:一是需要一次额外的向下填充操作(尽管 Excel 365 后来通过动态数组解决了这个问题),二是公式的含义不清晰,换一个人就很难通过充满了 A1B1 这样单元格的式子引用看出其功能。

而有了 LAMBDA 系列函数后,你可以在 C1 列这么写:

=MAP(A,B,
     LAMBDA(name, handle,
            IF(ISBLANK(handle),
               name,
               name & " (@" & handle & ")"
               )
            )
     )

就会观察到和上述传统方法相同的输出,并且结果会自动向下填充。

这里,MAP 函数的功能是读取一或多个数组做指定变换,然后输出另一个数组,其语法是:

=MAP(array1, [array2, ...], lambda)

即首先列举所有要变换的数组,然后通过一个函数来说明要做怎样的变换。上例于是为此写了一个 LAMBDA 函数,它的一般语法形如:

=LAMBDA([parameter1, parameter2, …,] calculation)

即首先声明接受的输入值,然后给出要基于这些值所做的计算。

与传统方法相比,用 MAPLAMBDA 实现的版本虽然看起来啰嗦一点,但优势也是明显的。首先是操作更简便。由于 MAP 输出的是数组,只用在 C1 单元格输入一次公式,下方的单元格就会自动显示对应行的正确结果,无需手动向下填充。如果后续新增更多行数据,输出结果也会自动向下扩展。其次是语义更清晰。由于用 namehandle 这样的具有实际含义的变量名称代替了抽象的单元格引用,可以直接从公式本身看出其目的是对姓名和账号做字符串运算。

不过比较尴尬的是,Numbers 至今没有 Excel 那样的「名称管理器」功能,从而失去了 LAMBDA 另一个最重要的使用场景:将任意运算保存为自定义函数,然后像内置函数那样多次调用。实际上,如果你用 Numbers 打开包含赋名 LAMBDA 函数的 Excel 文件,Numbers 只会简单粗暴地把它们全部转成字面值,原始的函数定义则会被丢弃。

除了 LAMBDA 系列函数外,Numbers 14.4 还增加了一些行列式计算、数组变换函数,与 Excel 基本一一对应,具体可以看 Six Colors 整理的列表

微软不想让你在 Windows 11 里用本地账户,但有别的解法

@广陵止息:上个月底,微软确认了一个消息:bypassnro.cmd 这个命令行脚本要从 Windows 11 的安装程序里移除了。这个脚本之前是个实用技巧,能让用户在装系统时跳过强制联网和登录微软账户那一步,用本地账户就能搞定初始设置(OOBE)。

当然,强制联网和登录微软账户这事,微软也不是第一次做了。早在三年前的 Windows 11 22H2 版本,家庭版(Home)和专业版(Pro)的用户装系统时就已经有这个要求了。

微软这么做,无非是想把用户和自家生态绑得更紧。通过强制账户登录,顺势推广 OneDrive 这些自家服务,增加用户粘性,也方便推销 Microsoft 365 订阅和应用商店里的东西。同时,方便拿到匿名的设备使用情况、错误报告、硬件配置这些数据,为市场决策和功能开发提供依据。

不过,对于懂技术或者在意隐私的用户来说,一上来就强制联网、强制登录,感觉过于「霸道」。强制联网和登录在一些边缘场景下还可能带来麻烦,例如微软账户名字里有特殊字符,可能导致用户文件夹名字出问题,有些软件就不兼容了;在国内一些地方,连微软账户服务器不太顺畅,登录费劲。

虽然 bypassnro.cmd 脚本被移除了,但绕过强制联网和微软账户登录的方法依然存在。下面介绍几种目前已知的方法:

方法一:直接调用本地账户创建界面

Windows 的初始设置界面(out-of-box experience, OOBE)本质上是一个基于 Web 技术的应用,其每个步骤都有自己对应的标识符,正如移动 app 里的 URL Scheme 一样。这样,只要创建本地账户的设置界面没有被完全移除,通过访问它的「链接」,就能找回设置本地账户的入口。目前而言,有效的访问方式有如下两种。

一是使用命令提示符。在 OOBE 联网步骤之前按下 Shift + F10 组合键,打开命令提示符(cmd)。输入以下命令并按回车:

start ms-cxh:localonly

系统会直接弹出「为此设备创建用户」的本地账户设置界面。按提示输入用户名、密码(可以留空,但后续需要设置安全问题)即可完成设置,直接进入后续的隐私设置环节。

二是使用控制台。在 OOBE 进入联网步骤之前按下 Ctrl + Shift + J 组合键,打开开发者控制台,输入以下命令并按回车:

WinJS.Application.restart("ms-cxh://LOCALONLY")

然后按 Esc 键或多次点击屏幕空白处关闭控制台。OOBE 会刷新并进入本地账户创建界面。按提示完成设置。

方法二:通过注册表隐藏在线账户屏幕


文章来源: https://sspai.com/prime/story/inside-release-notes-250418
如有侵权请联系:admin#unsafe.sh