谷歌电子表格中的逻辑例外/差异范围

2024-02-01

我想变得合乎逻辑(A - B) or (A \ B)在谷歌电子表格中。

所以,有:

A:A

{1,2,3,4}

and

B:B

{2,3,5,6}

所以我的公式

=my_amazing_formula(A:A, B:B)

应该返回

{1,4}

(A 的元素不存在于 B 中)

问题

我怎样才能实现这个目标?


因为不存在这样的数据结构HashSet https://en.wikipedia.org/wiki/Set_(abstract_data_type)在 Google Apps 脚本中,这是一个很难有效解决的问题。您可以选择二次解决方案,对于第一个范围中的每个项目,它将迭代整个第二个项目,尝试找到“匹配”,以便丢弃它。这看起来有点像@Cooper 的解决方案。

作为替代方案,考虑到 Google Apps 脚本的对象保留属性插入顺序,您可以使用以下代码,理论上应该会产生更好的性能结果(特别是对于较大的工作负载)。

function DIFFERENCE(range1, range2) {
  var o = {};
  for (var i=0; i<range1.length; i++) {
    for (var j=0; j<range1[0].length; j++) {
      if (!o[range1[i][j]])
        o[range1[i][j]] = true;
    }
  }

  for (var i=0; i<range2.length; i++) {
    for (var j=0; j<range2[0].length; j++) {
      if (o[range2[i][j]])
        o[range2[i][j]] = false;
    }
  }

  return Object.keys(o).filter(function f(key) { return o[key]; }).map(function(res) { return parseFloat(res) });
}

该函数假设您正在处理数字。如果您希望它也能处理字符串,则可以将最后一行代码替换为以下内容:return Object.keys(o).filter(function f(key) { return o[key]; });

您还可以在这里查看几个示例:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

谷歌电子表格中的逻辑例外/差异范围 的相关文章

随机推荐

  • 注册表模式 vs 服务定位器模式 vs 依赖注入容器

    它们之间有什么区别而不是通过键设置和获取数组中的对象吗 class Registry private container array public static function Set name object self container
  • 除了 malloc/free 之外,程序还需要操作系统提供其他东西吗?

    我正在为我正在开发的操作系统设计内核 我实际上将其称为 核心 只是为了有所不同 但它基本上是相同的 如果我无法启动和运行多任务处理 内存管理和其他基本功能 那么操作系统本身的细节就无关紧要了 所以我需要首先解决这个问题 我有一些关于设计 m
  • 如何使用 Java 获取 AWS Glue 客户端

    我正在尝试从用 Java 编写的 Lambda 代码调用 AWS Glue 中的作业 但我无法获得 Glue 客户端 就像我们有这样的 DynamoClient AmazonDynamoDB client AmazonDynamoDBCli
  • 如何在保留空格的同时分割()字符串[重复]

    这个问题在这里已经有答案了 如何拆分一串单词并保留空格 这是代码 String words s split 字符串 s 包含 hello world 代码运行后 words 包含 hello world 理想情况下 它不应该是中间的空字符串
  • awk - 如果为 null,则打印最后一列值并使用默认值

    我正在使用 awk 命令来打印值 对于最后一列 如果没有找到值 我需要它来打印NA 例如 在下面的代码中 当 3 is NULL 我需要打印为NA 无论如何我可以包括一个if isnull条件什么的 awk F print 1 2 3 lo
  • Android 中的 TextView 可以显示数字文本吗?

    嗨朋友们 在我的应用程序中 要求文本值应显示在数字文本格式可以吗TextView 数字时钟如何显示 请提供任何帮助 从this下载字体link http font downloadatoz com font 24267 digital 7
  • 将 Intent 从 BroadcastReceiver 类发送到当前正在运行的活动

    我有一个扩展的类BroadcastReceiver 收到短信后 我想将信息传递到我的主要活动类 以在框中显示文本 如果文本已存在 则追加 public class SmsReceiver extends BroadcastReceiver
  • Algolia 对数组属性的过滤器未按预期工作

    我有一个关于 algolia 的索引 有这样的用户 UserA createdAt 1675364400000 email email protected cdn cgi l email protection products produc
  • 在Java中精确地将两个数字相乘[重复]

    这个问题在这里已经有答案了 我正在寻找一种在 Java 中将两个浮点数相乘的精确方法 我读到我应该使用 BigDecimal 但它并没有按预期工作 我究竟做错了什么 我的代码 BigDecimal a new BigDecimal 3 53
  • 为什么用 PIL 和 pytesseract 无法获取字符串?

    这是一个简单的Python 3光学字符识别 OCR 程序来获取字符串 我已经在这里上传了目标gif文件 请下载并另存为 tmp target gif try from PIL import Image except ImportError
  • 如果 onAttach() 没有在片段代码中被重写怎么办?

    根据片段生命周期onAttach 之前被调用onCreate 以便它将托管活动分配给片段 所以 我想知道如果它不被覆盖会怎样 所有片段回调的默认定义是否已经存在 来自文档 https developer android com refere
  • Python OpenCV HoughLinesP 无法检测直线

    我正在使用 OpenCV HoughlinesP 来查找水平线和垂直线 大多数时候它找不到任何线路 即使它找到一条线 它也与实际图像不接近 import cv2 import numpy as np img cv2 imread image
  • T D[N] 是否总是声明数组类型的对象?

    我很困惑 dcl 数组 1 http eel is c draft dcl array 1 在声明 T D 中 其中 D 的形式为 D1 constant expressionopt attribute specifier seqopt 声
  • 从测试内部访问 ScalaTest 测试名称?

    是否可以从 ScalaTest 测试中访问当前正在执行的测试的名称 我该怎么做 背景 我正在测试我的数据访问对象最终会抛出一个OverQuotaException如果用户例如创建太多页面 这些测试需要相当长的时间才能运行 为了感到更高兴 我
  • 将 HTML 传递给 HTML 模板

    我知道如果我们想将变量从 gs 传递到 HTML 模板 我们可以这样做 在 html 上 使用 div table thead th Qty th th Item th th Price th th Subtotal th thead tb
  • 使用保留下划线的 xjb 覆盖 JAXB 属性名称

    自定义 xjb 非常适合根据需要覆盖名称 但是我们会丢失名称中的下划线
  • \S、\W、\D 在正则表达式中代表什么?

    在 shell 脚本中 t 代表制表符 s 代表空白 w 代表单词 什么是 W capital W and D capital D 用于 W是相反的 w and D是相反的 d 就像 S是相反的 s W and D分别会匹配什么 w and
  • 刷新 InnoDB 缓存

    我有一些很少运行的报告查询 我需要保证它们的性能 而不依赖于将它们缓存在系统中的任何位置 在测试各种模式和存储过程更改时 我通常会看到第一次运行非常慢 而后续运行速度很快 所以我知道正在进行一些缓存 这使得测试更改变得很麻烦 重新启动 my
  • 如何将方法作为参数传入?

    我刚刚注意到我在 ASP NET 应用程序中重复了很多 C 代码 因此想要创建一个通用方法 我有一系列这样的私有方法 private void PopulateMyRepeatedControl DBUtil DB new DBUtil D
  • 谷歌电子表格中的逻辑例外/差异范围

    我想变得合乎逻辑 A B or A B 在谷歌电子表格中 所以 有 A A 1 2 3 4 and B B 2 3 5 6 所以我的公式 my amazing formula A A B B 应该返回 1 4 A 的元素不存在于 B 中 问