我需要将两张表中的数据“连接”到第三张表中。我需要在 Gnumeric 中执行此操作,但可能也可以在其他电子表格程序中执行此操作。
第 1 页:
| A | B |
|-----------|----|
| John | 10 |
| Jane | 20 |
| Mike | 30 |
第 2 页:
| A | B |
|-----------|----|
| Sally | 40 |
| Pete | 45 |
我希望这些数据自动“合并”在工作表 3 上,而不管工作表 1 和工作表 2 中有多少行:不幸的是,连接和工作表引用的任何组合似乎都无法让我避免知道每个数据子集中的行数。
| A | B |
|-----------|----|
| John | 10 |
| Jane | 20 |
| Mike | 30 |
| Sally | 40 |
| Pete | 45 |
答案1
我不使用 Gnumeric,快速浏览一下Gnumeric 函数没有给我足够的信息。不过,我可以提供 Google Sheets 和 Microsoft Excel 的选项,您可以使用或调整它们以适应 Gnumeric。
Google 表格
={ FILTER(Sheet1!A:B,(Sheet1!A:A<>"")+(Sheet1!B:B<>""));
FILTER(Sheet2!A:B,(Sheet2!A:A<>"")+(Sheet2!B:B<>"")) }
- 在 FILTER 中
+
相当于OR
- 过滤列
A:B
中包含任何内容的区域A
或列中包含任何内容的区域B
- Sheets 中的括号
{}
表示数组,分号;
为行分隔符 - 单个空数组将返回
#VALUE!
错误*
微软 Excel
=VSTACK( FILTER(Sheet1!A:B,(Sheet1!A:A<>"")+(Sheet1!B:B<>"")),
FILTER(Sheet2!A:B,(Sheet2!A:A<>"")+(Sheet2!B:B<>"")) )
- VSTACK 允许在 Excel 中垂直堆叠数组。
- 堆栈列表中的数组由
,
- 单个空数组将返回
#CALC!
错误*
*为了处理错误,可以将公式包装在 IFERROR 中,或者如果愿意的话,可以将每个单独的 FILTER 函数包装在 IFERROR 中,这样一个错误就不会影响整个公式。
# Gooogle Sheets
--------------------------
={ IFERROR(
FILTER(Sheet1!A:B,(Sheet1!A:A<>"")+(Sheet1!B:B<>"")),
{"",""} );
IFERROR(
FILTER(Sheet2!A:B,(Sheet2!A:A<>"")+(Sheet2!B:B<>"")),
{"",""} ) }
# Microsoft Excel
--------------------------
=VSTACK(
IFERROR(
FILTER(Sheet1!A:B,(Sheet1!A:A<>"")+(Sheet1!B:B<>"")),
HSTACK("", "") ),
IFERROR(
FILTER(Sheet2!A:B,(Sheet2!A:A<>"")+(Sheet2!B:B<>"")),
HSTACK("", "") ) )