繁体   English   中英

如何使用带有 OFFSET 的 ARRAYFORMULA?

[英]How to use ARRAYFORMULA with OFFSET?

任何想法为什么这不起作用? 我需要自动填充 J 列。 如果我只是扩展公式,它可以正常工作。 但是我需要它根据 G 列中的元素数量动态调整其大小

在此处输入图像描述

这甚至可以实现吗?

尝试:

=QUERY(H6:H, "offset 1", 0)

或在数组中:

=ARRAYFORMULA({G6:G, QUERY(H6:H, "offset 1", 0)})

更新:

F3 单元格:

=FILTER(B2:B; MOD(ROW(A2:A)-2; 4)=0)

G3细胞:

=FILTER(B2:B; MOD(ROW(A2:A)-3; 4)=0)

H3细胞:

=FILTER(B2:B; MOD(ROW(A2:A)-1; 4)=0)

I3 电池:

=FILTER(C2:C; MOD(ROW(A2:A); 4)=0)

在此处输入图像描述

我想我可能有一些东西可以帮助你。 唯一的弱点是它目前使用两个“帮助”列。 有了一些公式,这些可以被删除。 这是我的样本

首先,我为数据生成更多的数据库结构,将元素名称添加到每一行数据中,其中 A 列中有空格。我还从第二列中提取“prop4”值。 如果 B 列和 C 的数据结构与您显示的不同,则此公式可能需要调整。 这个公式做到了:

FILTER(ARRAYFORMULA({ 
    VLOOKUP(ROW(A2:A); 
      IF(A2:A<>""; 
        {ROW(A2:A)\ A2:A}); 
      2; 1) 
 \
    IF(LEN(B2:B);
      IF(MOD(ROW(B2:B);4)=0;
        C2:C;B2:B);
        ISERROR(1/0))
  });
  LEN(B2:B))

结果看起来像下面的 K 和 L 列: 在此处输入图像描述

然后我对这个中间结果使用基于查询的公式,给出最终结果表。 这里的公式( 在这个问题中找到)是:

=ARRAYFORMULA(REGEXREPLACE(TRIM(SPLIT(TRANSPOSE(QUERY(QUERY(
 IF(L1:L<>""; {K1:K&"♠"\ L1:L&"~"}; );
 "select max(Col2) where Col1 is not null group by Col2 pivot Col1")
 ;;999^99)); "♠~";1;1)); "~$"; ))

我通过在 A 列的末尾添加一个元素“块”并在 A 列的中间删除一个元素块来测试这一点,这两种方法都可以正常工作。

让我们知道这是否是您想要的结果。 如果不是,请根据您的数据准确解释您的期望。

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM