使用公式组织具有不同数据量的列
Use a formula to organize columns with different amounts of data
记录每一列时,数值大小不同:
我希望将值拉到左侧,以便一列始终与其他列进行良好调整:
Is there any way to do this using a formula?
link 到电子表格:
https://docs.google.com/spreadsheets/d/1iXqdjs_D-NvyES4LMjpzFEY4uDvbdcMZZY5VUvpmbRQ/edit?usp=sharing
values to be pulled to the left
=ARRAYFORMULA(SUBSTITUTE(SPLIT(TRANSPOSE(QUERY(TRANSPOSE(IF(A1:D12<>"",
SUBSTITUTE(A1:D12, " ", "♦"), )),,999^99)), " "), "♦", " "))
而平均分配是:
={FILTER(SUBSTITUTE(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF(A1:D12<>"",
SUBSTITUTE(A1:D12, " ", "♦"), )),,999^99)),,999^99), " ")), "♦", " "),
MOD(ROW(INDIRECT("A1:A"&COUNTA(A1:D12)))-1, 4)=0),
FILTER(SUBSTITUTE(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF(A1:D12<>"",
SUBSTITUTE(A1:D12, " ", "♦"), )),,999^99)),,999^99), " ")), "♦", " "),
MOD(ROW(INDIRECT("A1:A"&COUNTA(A1:D12)))-2, 4)=0),
FILTER(SUBSTITUTE(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF(A1:D12<>"",
SUBSTITUTE(A1:D12, " ", "♦"), )),,999^99)),,999^99), " ")), "♦", " "),
MOD(ROW(INDIRECT("A1:A"&COUNTA(A1:D12)))-3, 4)=0),
FILTER(SUBSTITUTE(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF(A1:D12<>"",
SUBSTITUTE(A1:D12, " ", "♦"), )),,999^99)),,999^99), " ")), "♦", " "),
MOD(ROW(INDIRECT("A1:A"&COUNTA(A1:D12)))-4, 4)=0)}
注意 =COUNTA(A1:D12)/4
必须是整数,否则会出现 ARRAY 错误。为避免 ARRAY 错误,您可以每列使用 1 个公式。粘贴到 A 列并拖动它直到到达 D 列:
=FILTER(SUBSTITUTE(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF($A:$D<>"",
SUBSTITUTE($A:$D, " ", "♦"), )),,999^99)),,999^99), " ")), "♦", " "),
MOD(ROW(INDIRECT("A1:A"&COUNTA($A:$D)))-COLUMN(A1), 4)=0)
记录每一列时,数值大小不同:
我希望将值拉到左侧,以便一列始终与其他列进行良好调整:
Is there any way to do this using a formula?
link 到电子表格:
https://docs.google.com/spreadsheets/d/1iXqdjs_D-NvyES4LMjpzFEY4uDvbdcMZZY5VUvpmbRQ/edit?usp=sharing
values to be pulled to the left
=ARRAYFORMULA(SUBSTITUTE(SPLIT(TRANSPOSE(QUERY(TRANSPOSE(IF(A1:D12<>"",
SUBSTITUTE(A1:D12, " ", "♦"), )),,999^99)), " "), "♦", " "))
而平均分配是:
={FILTER(SUBSTITUTE(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF(A1:D12<>"",
SUBSTITUTE(A1:D12, " ", "♦"), )),,999^99)),,999^99), " ")), "♦", " "),
MOD(ROW(INDIRECT("A1:A"&COUNTA(A1:D12)))-1, 4)=0),
FILTER(SUBSTITUTE(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF(A1:D12<>"",
SUBSTITUTE(A1:D12, " ", "♦"), )),,999^99)),,999^99), " ")), "♦", " "),
MOD(ROW(INDIRECT("A1:A"&COUNTA(A1:D12)))-2, 4)=0),
FILTER(SUBSTITUTE(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF(A1:D12<>"",
SUBSTITUTE(A1:D12, " ", "♦"), )),,999^99)),,999^99), " ")), "♦", " "),
MOD(ROW(INDIRECT("A1:A"&COUNTA(A1:D12)))-3, 4)=0),
FILTER(SUBSTITUTE(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF(A1:D12<>"",
SUBSTITUTE(A1:D12, " ", "♦"), )),,999^99)),,999^99), " ")), "♦", " "),
MOD(ROW(INDIRECT("A1:A"&COUNTA(A1:D12)))-4, 4)=0)}
注意 =COUNTA(A1:D12)/4
必须是整数,否则会出现 ARRAY 错误。为避免 ARRAY 错误,您可以每列使用 1 个公式。粘贴到 A 列并拖动它直到到达 D 列:
=FILTER(SUBSTITUTE(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF($A:$D<>"",
SUBSTITUTE($A:$D, " ", "♦"), )),,999^99)),,999^99), " ")), "♦", " "),
MOD(ROW(INDIRECT("A1:A"&COUNTA($A:$D)))-COLUMN(A1), 4)=0)