偏移+转置

OFSSET + transpose

我正在尝试减少我拥有的文档数量,其中一项任务是让所有信息都由表格提供,然后 Google 表格对其进行排序。

目前我知道每个产品的所有回复都在一行中。但是,我希望将其复制 5 次,每浪费一次可能的食物成分。我在 HOLDING V 的 A2 和 K2 中使用了这两个公式!选项卡:

=OFFSET(responses!$A,ceiling((row()-1)/5,1)-1,column()-1)

=OFFSET(responses!$A,ceiling((row()-1)/5,1)-1,mod(row()-2,5)*9+10,1,3)

即使它确实使用了我想要的 3 列,它也没有写组件 2、3、4 和 5 及其各自的 KG 和 Holding。我想知道是否有办法做到这一点,我已经尝试过不同的表述方式。

最后的 table 应该是这样的:

从“持有”选项卡上的 K 列到 M 列:

stew base / 4 / Charity

frozen sweetcorn / 4 / Charity

frozen sweetcorn / 4 /Charity

""" / "" / ""

"" / "" / ""

test / 6 / Charity

testing5 / 4 / Charity

frozen sweetcorn / 4 / Charity

olives / 4 / Charity

basil / 4 / Charity

我希望这是有道理的,我已经添加了我当前用于此练习的文件。

老实说,我更愿意使用查询来自动提取数据,但我不确定这是否可行。

提前致谢

Google Sheets - Wastage reduction

好吧,简短的回答只是公式中的几个拼写错误 - 它应该始终指定 1 行的高度和 3 列的宽度,并为你往下的每一行额外偏移 3 列:

=OFFSET(responses!$A,ceiling((row()-1)/5,1)-1,mod(row()-2,5)*3+10,1,3)

单一公式版本将使用几乎相同的计算:

=ArrayFormula(vlookup(ceiling((row(A2:A)-1)/5,1)+1,{row(A2:A),responses!A2:Z},
{mod(row(A2:A)-2,5)*3+12,mod(row(A2:A)-2,5)*3+13,mod(row(A2:A)-2,5)*3+14}))