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
    • 最新
    • 标签
主页 / computer / 问题 / 1809371
Accepted
X-Cell
X-Cell
Asked: 2023-09-21 18:44:21 +0800 CST2023-09-21 18:44:21 +0800 CST 2023-09-21 18:44:21 +0800 CST

是否有可能使这个公式更加自动化?

  • 772

基本上,我的公式完全符合我现在的需要。然而,手动输入的内容仍然比我想做的要多。这是最小的,但如果我能完全消除它那就更好了。

我目前的公式是=IFERROR(INDEX(RawData[value], MATCH(1, (RawData[plot_id]=$A2)*(RawData[class]=1)*(RawData[metric]=LEFT($B1,FIND("(",$B1)-1)), 0)),0)。这可以在下面的测试组织选项卡图像中看到。

当我将每个公式移动到新列时,我仍然必须手动更改每个公式的类编号(每列正在搜索的类编号是该列标题中的括号编号:(1)、(2)、(5)) 。我尝试用 替换RawData[class]=1,RawData[class]=MID(B1, SEARCH("(", B1)+1, SEARCH(")", B1) - SEARCH("(", B1) -1)但它破坏了公式并且只会给我 0 的错误结果。

但是,如果我=MID(B1, SEARCH("(", B1)+1, SEARCH(")", B1) - SEARCH("(", B1) -1)在单元格中单独使用相同的 MID ( ) 函数,我将得到我正在寻找的结果:列标题单元格中括号之间的数字(可以在单元格 B4 中看到)前面提到的屏幕截图。

我不知所措,因为它允许我在搜索 RawData[metric] 标准时成功使用 LEFT 函数。

知道这里发生了什么或者我如何让它发挥作用吗?


原始数据表(通用数据)

公制 班级 绘图 ID 价值
面积_mn 1 1 0.720177968
面积_mn 1 2 0.005311753
面积_mn 2 1 0.011488774
面积_mn 2 2 0.435016987
编辑 5 1 0.1856209

视觉参考屏幕截图

原始数据图像


组织数据表(通用数据,显示所需结果)

绘图 ID 面积_mn(1) 面积_mn(2) 编辑(5)
1 0.720177968 0.01148877 0.720177968
2 0.005311753 0.435016987 0

视觉参考屏幕截图 测试组织选项卡图像2

microsoft-excel
  • 3 3 个回答
  • 596 Views

3 个回答

  • Voted
  1. Saaru Lindestøkke
    2023-09-21T19:12:23+08:002023-09-21T19:12:23+08:00

    这似乎是该部分中数据类型不兼容的问题RawData[class]=1。

    大概class是RawData一个数字(无法知道,因为您没有包含任何数据)。当您自己编写时1,Excel 会理解它是一个数字并使用它进行比较。MID()例如,当您使用公式从字符串中提取该数字时area_mn(1),您会得到一个字符串1。数字1不等于字符串1,因此比较失败。

    如果将该MID()函数包装在INT()公式中,字符串将转换为整数(数字),并且比较将再次进行。

    这是一个例子:

    数据表

    ID 面积_mn(1) 面积_mn(2) 面积_mn(5) 编辑(1) 编辑(2) 编辑(5)
    1
    2
    3

    查找表

    ID 价值
    1 100
    2 200
    3 300
    4 400
    5 500

    如果您在数据表中使用以下公式,您将得到#N/A:

    =INDEX(lookup[#Data], MATCH(MID(B$1,SEARCH("(",B$1)+1,SEARCH(")",B$1)-SEARCH("(",B$1)-1),lookup[[id]:[id]], 0), 2)
    

    但是,如果您首先将查找到的值转换为整数,则它可以工作:

    =INDEX(lookup[#Data], MATCH(INT(MID(B$1,SEARCH("(",B$1)+1,SEARCH(")",B$1)-SEARCH("(",B$1)-1)),lookup[[id]:[id]], 0), 2)
    
    • 2
  2. DjC
    2023-09-22T00:21:03+08:002023-09-22T00:21:03+08:00

    看起来您的表标题是 RawData 表中的 [metric] 和 [class] 值的组合。您可以通过使用单个分隔符(例如“.”)来使事情变得更容易。或“,”或“;” 而不是同时使用左括号和右括号,尤其是当您的 [class] 值仅为个位数时。这样你就可以使用=VALUE(RIGHT(B$1,1))or=INT(RIGHT(B$1,1))或=--RIGHT(B$1,1)来提取数字。例如:

    绘图 ID 区域_mn.1 区域_mn.2 区域_mn.5
    1
    2
    3

    通过以这种方式设置标题格式,以下公式将在单元格 B2 中起作用:

    =IFERROR(INDEX(RawData[value], MATCH(1, (RawData[plot_id]=$A2)*(RawData[class]=VALUE(RIGHT(B$1,1)))*(RawData[metric]=LEFT(B$1,FIND(".",B$1)-1)), 0)), 0)
    

    请注意上面使用的绝对单元格引用 $A2(绝对列)和 B$1(绝对行)。在您最初的尝试中,您在标题行上错误地使用了 $B1(绝对列),这就是它无法正确向下和横向复制的原因。

    • 2
  3. Best Answer
    X-Cell
    2023-09-22T01:05:31+08:002023-09-22T01:05:31+08:00

    更新

    今天早上搞乱了一段时间后,我无法使用我得到的精确响应让公式正确运行——在表格的其余部分填充单元格时,我仍然不断收到错误的数据,但是你们所有人非常有帮助,我感谢您的时间和帮助。

    对于最终的公式,我想出了=IFERROR(INDEX(RawData[[value]:[value]], MATCH(1, (RawData[[plot_id]:[plot_id]]=$A2)*(RawData[[class]:[class]]=-MID(B$1, SEARCH("(", B$1), 3))*(RawData[[metric]:[metric]]=LEFT(B$1,FIND("(",B$1)-1)), 0)),0)。

    @MGonet 我很欣赏你的评论,它有助于减少公式中拉动类数的部分。这件事已经足够长了。哈哈。

    额外的解释:当我自动填充表格中的数据时,我意识到我的表格列正在移动。我没有意识到他们会这样做,我认为指定表列始终是绝对引用 - 今天我了解到不然。所以我更正了这些引用,使它们变得绝对。

    之后,我基本上从这里获取了所有的建议和建议(例如,纠正我正在制作的绝对单元格引用的拼写错误的区域,使用更简洁的函数替代方案等),加上我自己的额外研究以及更多的尝试和错误,并能够得到一个完全符合我需要的公式。

    说真的,非常感谢大家抽出宝贵的时间!

    • 1

相关问题

  • 带有“和”运算符的 Excel 数据透视表

  • 如何对整列使用 Excel 的 LENGTH 函数?

  • Excel 数组(2 个变量)

  • 如何从 WSL 打开 office 文件

  • VBA根据文件名重命名工作表

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