AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-596849

tkp's questions

Martin Hope
tkp
Asked: 2023-10-31 10:52:23 +0800 CST

为什么 Excel 在接受 INDEX(Array,0,ColNum) 的公式中拒绝 CHOOSECOLS(Array,Colnum)?

  • 5

概括

谁能解释为什么 Excel(Mac 和 Windows 上的当前版本)有时拒绝在单元格公式中接受以下内容:

CHOOSECOLS(SomeArray,ColNum)

但它确实接受这一点:

INDEX(SomeArray,0,ColNum)

两个具体示例是在 SUMIF() 或 COUNTIF() 函数中使用这些形式的情况。当我说 Excel 拒绝接受前者时,我的意思是我什至无法让它接受它作为语法正确的公式。我注意到这些函数的非条件版本不会显示问题,MAX()、MIN()、AVERAGE() 等函数也不会显示问题。

细节

假设我在 B5:C10 中有一个数组(假设它是动态的,因此我可以在下面的示例中将其整齐地称为 B5#;但即使对于非动态范围也存在问题),并且我想对所有项目求和第 2 列(即 C5:C10)中大于 0。虽然 Excel 接受以下内容:

=SUMIF(INDEX(B5#,0,2),">0")

它拒绝接受:

=SUMIF(CHOOSECOLS(B5#,2),">0")

但是,如果我首先将所需的列提取到以 C16 为根的辅助数组中(比如说),如下所示:

=CHOOSECOLS(B5#,2)

那么以下被接受为正确的公式(并且它给出了正确的结果):

=SUMIF(C16#,">0")

我有一个 Excel 工作表,显示了该操作的实际情况,但我不确定附加它的最佳方法。如果它有用,并且有人可以解释如何附加 .xlsx 文件,我会提供它。同时,这是一个屏幕截图: 在此输入图像描述

microsoft-excel
  • 1 个回答
  • 79 Views
Martin Hope
tkp
Asked: 2022-05-10 06:24:43 +0800 CST

在 Excel 中,如何将来自不同动态数组的部分连接到一个新的动态数组中?

  • 5

在 Excel(但不使用 VB)中,如何将一个动态数组中的某些列连接到另一个动态数组中的列,以使结果也是一个动态数组?

这是一个非常简单的例子。假设我有两个等长的 2 列动态数组。第一个在 A1:B5 中,第二个在 D2:E6 中。我想在 G3:H7 中创建一个新的第三个动态数组,以便 G3:G7 包含 A1:A5 中的任何内容,而 H3:H7 包含 E2:E6 中的任何内容。这是一个插图。

 | A | B | C | D | E | F | G | H |
—|———+———+———+———+———+———+———+———|
1| a | 1 |   |   |.  |   |   |   |
2| b | 3 |   | f | 0 |   |   |   |
3| c | 5 |   | g | 2 |   | a | 0 |
4| d | 7 |   | h | 4 |   | b | 2 |
5| e | 9 |   | i | 6 |   | c | 4 |
6|   |   |   | j | 8 |   | d | 6 |
7|   |   |   |   |   |   | e | 8 |
—————————————————————————————————-

现在我已经知道我可以使用以下公式创建第三个数组:

G3 = INDEX(A1#,0,1)
H3 = INDEX(D2#,0,2)

但是,这给了我两个 1 列动态数组形式的结果,而我希望它是一个 2 列动态数组。

目前,我的方法是将 G3:G7 视为辅助数组,然后使用以下内容创建我想要的最终动态版本:

J3 = OFFSET(G3,0,0,ROWS(A3#),2)

我什至可以拼凑出一些怪物来摆脱对助手的需求。但这是一种常见的操作形式,我希望可能有一种更优雅、“规范”的方法,或许可以利用新的动态数组函数本身。

谁能推荐一个?(同样,请不要使用 Visual Basic。)

microsoft-excel microsoft-excel-2019
  • 1 个回答
  • 256 Views
Martin Hope
tkp
Asked: 2020-04-07 02:44:06 +0800 CST

我可以使用 Excel 的溢出范围运算符从 2D 动态数组中提取单个 1D 列吗?

  • 6

概括

使用 Excel 的新动态/溢出数组,从 2D 溢出数组中提取单个 1D 溢出列的最佳方法是什么?

细节

假设我在 Excel 中有一个 2D 动态数组并且它正在溢出,所以我不知道它有多少行(甚至可能随着输入数组的任何数据发生变化而发生变化)。

现在,如果我想引用整个数组,我可以使用#,溢出的范围运算符。例如,假设我的数组在 H3:L12 中(尽管请记住,虽然它目前有 10 行,但我不知道,也不知道它不会改变)。现在,如果我将公式 =H3# 放入单元格 N8(例如),那么我将在 N8:R17 中获得我的初始数组的副本。

但是假设我想要的只是原始数组 I3:I12 中第二列的副本。或者假设我想要原始数组,但在应用过滤器之后。例如,也许我想要一个新数组,它只包含原始行中每行中的第二个单元格大于 5 的行。有没有一种简洁的方法来做这些事情,也许使用溢出的范围运算符?

当然也有不太简洁的方法。例如,虽然我说过这是一个动态数组意味着我不知道行数,但实际上我可以使用 ROWS(H3#) 计算出来。然后我可以像这样使用 OFFSET() 。

=OFFSET(H3,0,ROWS(H3#),1)

然后对于第二种情况,我想要完整的数组但过滤后第二列大于 5,我可以:

=FILTER(H3#,OFFSET(H3,0,ROWS(H3#),1)>5)

在这两个公式中,我都没有明确提到“硬编码”的行数,因此保留了“动态”性质,这很好。但是,不得不特意提取那么多行,然后求助于 OFFSET(),这似乎很笨拙,特别是考虑到这是一个易变函数。没有更简单,更内置的方法吗?

谢谢。

microsoft-excel
  • 2 个回答
  • 1067 Views
Martin Hope
tkp
Asked: 2020-02-14 17:10:24 +0800 CST

为什么我的 Excel 公式中突然出现“@”(“at”)符号?

  • 11

简而言之

谁能解释为什么我在许多 Excel 电子表格的许多公式中看到“@”符号出现在以前没有的地方?

它们不是@提及,也不是结构化引用或表格公式使用的一部分,也不是任何其他常见的嫌疑人。

TL;博士详情

(注:系统信息在本文末尾)

正如我所说,它们不是@提及,我没有使用结构化引用。另外,我不是也从来不是 Lotus 用户,所以我不会像那些人有时似乎很难做到的那样将 @ 符号放入公式中。事实上,除了作为 TEST() 的偶尔格式代码的一部分之外,我想不出任何时候我曾在公式中使用过 @,这也不是这里发生的事情。

例子

这是一个例子(随机抓取)。这个:

=IFS(DX$33="","",ISNUMBER(匹配(DX$33,$AJ$33:$DR$33,0)),HLOOKUP(DX$33,$AJ$33:$DR$1033,ROWS(DX$33:DX36 )+1,0),真,0)

现在看起来像这样:

=@IFS(DX$33="","",ISNUMBER(匹配(DX$33,$AJ$33:$DR$33,0)),HLOOKUP(DX$33,$AJ$33:$DR$1033,@ROWS(DX$33 :DX36)+1,0),真,0)

正如我所说,这只是一个随机的例子。还有更多,其中很多没有像 IFS() 那样“异国情调”的东西,所以我认为这不是原因。

仅仅是展示效果?

现在在上面我说“看起来像”,因为我猜神秘的@可能实际上并不在文件本身中,而只是由 Excel 显示。我这么说是因为我至少有一个文件,我可以从它的 DropBox 版本历史中看到只有一个版本——我的(@-free)原始版本。所以它开始时没有 @ 符号,并且它没有改变(根据 DropBox 版本),但我现在可以看到 @ 符号。一种解释是更改的是 Excel,而不是我的文件,因此更改只是显示工件。哦,删除@ 似乎对公式没有影响。

@是一个真实的东西

另一方面,为了咧嘴笑,我尝试创建一个全新的公式:

=@A1

当我尝试输入时,Excel 警告我“某些旧版本的 Excel 不支持此公式”并建议我将其替换为以下变体:

=A1

因此,@ 的这种使用似乎是一件实际的事情,而且并不总是存在。(这显然适用于在行引用中与 [] 结合使用,但这不是它的本质(是吗!?))

无论如何,在回答 Excel 询问我是否要让它删除 @ 时,我将谨慎抛诸脑后,我点击了“管好你自己的事!” (又名“不”)。Excel 必须插入我原来的 @-ified 版本,据我所知,它很好,并且表现得与 Excel 试图说服我改用的 @-free 版本完全一样。

所以?

谁能解释这一切?最近的 Excel 更新是否引入了新的 @ 语法?最近,我的意思是在过去的 2-3 个月内最多。我有我在 12 月中下旬创建的文件,我知道当时是 @-free 的,现在已经变成了 @-ified。但如果是这样,那么为什么 Excel 只是在不问我的情况下随意更改文件,特别是考虑到它自己承认可能会产生向后兼容性问题的事实?为什么我有一个 Excel 文件,由于它只有一个版本,我知道它是未更改的,但由于这些 @ 符号的到来似乎已更改?

我一直在寻找线索一个多小时,但我找不到任何确定的线索。一个困难是“@”是一个如此广泛使用的字符,以至于谷歌抛出的很多东西都是无关紧要的谷壳。

系统信息

  • Excel for Mac,版本 16.34 (20020900),Office 365 的一部分
  • macOS Catalina 10.5.3

谢谢。

microsoft-excel macos
  • 2 个回答
  • 4566 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Vickel Firefox 不再允许粘贴到 WhatsApp 网页中? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve