查找下一个唯一值并将公式添加到下两列

里科

如何以某种方式更改录制的宏

  1. 在A列中找到下一个唯一值。
  2. 转到那行
  3. 在该行粘贴公式的C列中在该行粘贴的=transpose(filter($AZ#:$BS#,$AZ#:$BS#<>""))D列=transpose(filter($F#:$Y#,$F#:$Y#<>""))和E列中=transpose(filter($BW#:$CP#,$BW#:$CP#<>""))

我正在尝试在Google表格上编写一个宏,该宏将在A列中找到下一个唯一名称,然后将公式1应用于列C,将公式2应用于列D,将公式3应用于该下一个唯一值位于的行的列E 。

我记录了我手动执行的宏,但是我真的很想不这样做,因为我有大约2000个唯一的名称。

function threeformulas() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('C2').activate();
  spreadsheet.getCurrentCell().setFormula('=transpose(filter($AZ2:$BS2,$AZ2:$BS2<>""))');
  spreadsheet.getRange('D2').activate();
  spreadsheet.getCurrentCell().setFormula('=transpose(filter($F2:$Y2,$F2:$Y2<>""))');
  spreadsheet.getRange('E2').activate();
  spreadsheet.getCurrentCell().setFormula('=transpose(filter($BW2:$CP2,$BW2:$CP2<>""))');
  spreadsheet.getRange('C12').activate();
  spreadsheet.getRange('C2:E2').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
  spreadsheet.getRange('C22').activate();
  spreadsheet.getRange('C2:E2').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
};

转置公式必须存在,因为数据库从D列到CP开始吐出的报告确实很奇怪。这里是数据外观的图像。我强调了下一个唯一的价值所在。在此处输入图片说明

Tanaike

我相信您的目标如下。

  • 您要检查“ A”列的值。
  • 在“ A”列中找到第一个唯一值时,您想将3个公式放入“ C”至“ E”列中。
    • 在示例图像中,您想要将公式放入单元格“ C2:E2”,“ C12:E12”和“ C22:E22”。
  • 在你的问题,公式1,式2和式3 =transpose(filter($AZ2:$BS2,$AZ2:$BS2<>""))=transpose(filter($F2:$Y2,$F2:$Y2<>""))=transpose(filter($BW2:$CP2,$BW2:$CP2<>""))分别。

在这种情况下,为了实现您的目标,我使用以下流程。

  1. 从“ A”列中检索所有值。
  2. 创建用于放置3个公式的范围列表。
  3. 使用创建的范围列表放置3个公式。

示例脚本:

请复制以下脚本并将其粘贴到Spreadsheet的容器​​绑定脚本的脚本编辑器中。并设置sheetName

function myFunction() {
  const sheetName = "Sheet1";  // Please set the sheet name.

  // 1. Retrieve all values from the column "A".
  // 2. Create the range list for putting 3 formulas.
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
  const ranges = sheet
    .getRange("A2:A" + sheet.getLastRow())
    .getValues()
    .reduce((o, [a], i) => {
      if (a != o.temp) {
        o.temp = a;
        const row = i + 2
        o.f1.push(`C${row}`);
        o.f2.push(`D${row}`);
        o.f3.push(`E${row}`);
      }
      return o;
    }, {f1: [], f2: [], f3: [], temp: ""});

  // 3. 3 formulas are put using the created range list.
  sheet.getRangeList(ranges.f1).setFormulaR1C1('=transpose(filter(R[0]C52:R[0]C71,R[0]C52:R[0]C71<>""))');
  sheet.getRangeList(ranges.f2).setFormulaR1C1('=transpose(filter(R[0]C6:R[0]C25,R[0]C6:R[0]C25<>""))');
  sheet.getRangeList(ranges.f3).setFormulaR1C1('=transpose(filter(R[0]C75:R[0]C94,R[0]C75:R[0]C94<>""))');
}

参考文献:

添加:

我猜我唯一的问题是我不确定转置公式如何更改,并且我想知道如果我引用另一个工作表示例中的数据该怎么写:transpose(filter('Raw Data-Austin'!$ BW2: $ CP2,'原始数据奥斯汀'!BW2:$ CP2 <>“”))

关于这个额外的问题,在这种情况下,请进行如下修改。

从:

sheet.getRangeList(ranges.f1).setFormulaR1C1('=transpose(filter(R[0]C52:R[0]C71,R[0]C52:R[0]C71<>""))');
sheet.getRangeList(ranges.f2).setFormulaR1C1('=transpose(filter(R[0]C6:R[0]C25,R[0]C6:R[0]C25<>""))');
sheet.getRangeList(ranges.f3).setFormulaR1C1('=transpose(filter(R[0]C75:R[0]C94,R[0]C75:R[0]C94<>""))');

至:

sheet.getRangeList(ranges.f1).setFormulaR1C1(`=transpose(filter('Raw Data-Austin'!R[0]C52:R[0]C71,'Raw Data-Austin'!R[0]C52:R[0]C71<>""))`);
sheet.getRangeList(ranges.f2).setFormulaR1C1(`=transpose(filter('Raw Data-Austin'!R[0]C6:R[0]C25,'Raw Data-Austin'!R[0]C6:R[0]C25<>""))`);
sheet.getRangeList(ranges.f3).setFormulaR1C1(`=transpose(filter('Raw Data-Austin'!R[0]C75:R[0]C94,'Raw Data-Austin'!R[0]C75:R[0]C94<>""))`);
  • 在此修改中,请小心使用模板文字。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

来自分类Java

传递身份验证标头并将其添加到下一个请求

来自分类Dev

goquery-从一个html标签提取文本并将其添加到下一个标签

来自分类Java

Java数组,将项目添加到下一个空索引

来自分类Dev

jQuery:如果为XYZ,则将类添加到此AND下一个元素

来自分类Dev

如何将下一个元素添加到网格

来自分类Dev

jQuery datepicker将单击事件添加到上一个下一个按钮

来自分类Dev

Pandas Dataframe使用Groupby从其他两个列的唯一值创建下一个未来日期的列

来自分类Dev

添加后,从下拉菜单中删除一个值并显示下一个值,也将其删除一次,然后将已删除的值再次添加到下拉菜单中

来自分类Java

从给定的数字中查找下一个最高的唯一编号

来自分类Dev

单击嵌套的子元素时,Javascript将类添加到下一个元素

来自分类Dev

jQuery将类添加到下一个或上一个图像-仅工作一次?

来自分类Dev

Java8流-比较两个列表的对象值并将值添加到第一个列表的子对象?

来自分类Python

Pandas DataFrames:在一个列中有效查找下一个值,而另一列具有更大的值

来自分类Dev

从一个函数计算多列并将其添加到data.frame

来自分类Dev

如何将自定义查询参数添加到页面式仇恨结果中的下一个/上一个链接?

来自分类Dev

查找下一个元素是否小于前一个元素,并将其从列表python中删除

来自分类Dev

在R中,如果某个值不同于上一个或下一个值,如何添加TRUE / FALSE列?

来自分类Dev

尝试查找下一个最大值时发生Python算法错误

来自分类Python

查找数组中下一个最大值的更快方法

来自分类Dev

如何根据某些条件在表中查找下一个值

来自分类Dev

如何在数组中查找下一个最大值

来自分类Javascript

jQuery查找下一个类

来自分类Dev

查找下一个/最近按钮

来自分类Javascript

jQuery:查找下一个不是同级元素

来自分类Dev

Vim中的“查找下一个”

来自分类Dev

按组依次查找下一个日期

来自分类Dev

访问查询以查找下一个维护周期

来自分类Java

我如何与值的列添加到Java的星火一个新的数据集?

来自分类Dev

将行的最后一个nonNA值添加到新列中

TOP 榜单

热门标签

归档