Excel - 将工作表中的某些行复制到另一个工作表中

标签 excel excel-2007 excel-formula vba

我找到了解决这个问题的方法,但我不知道如何根据我的具体问题定制它们。我以前从未写过 marco 或任何 VBA 脚本,所以请具体说明您的答案。

我有一个 Excel 工作簿,其中一个工作表名为“食物”,另外四个工作表名为“小吃选择”、“早餐选择”、“午餐选择”和“晚餐选择”

“食物”工作表中的标题如下所示:

食物量卡路里...ETC...类型

其中“类型”包含“早餐”“小吃”“午餐”“晚餐”或 2+ 选项的组合。

我希望根据“食物”工作表中“类型”字段的值,将整行复制到相应的“小吃选择”、“早餐选择”、“午餐选择”和“晚餐选择”工作表中。

例如,如果我在“食物”工作表中输入一个新行,其中“类型”字段为“小吃/早餐”,我希望该行自动出现在“早餐选择”和“小吃选择”工作表中。 (如果这样更容易,我可以删除斜线或用另一个字符替换它)

先感谢您!

最佳答案

主 table 食物(表“食物”):

Main table with foods (Sheet 'Foods')

早餐表:

Table for breakfasts

在此表中:

A1:食物种类。为了与其他食物(午餐/ Cereal /早餐)相匹配,它应该以“*”开头和结尾:*breakfast*而不是 breakfast .也可以更改公式。

然后我们在“食物”表上寻找“早餐”的第一次:

A3:

=IF(ISERROR(MATCH($A$1,Foods!A:A;0)),"",MATCH($A$1,Foods!A:A,0))

结果,将显示一些匹配的行。如果不匹配,将显示一个空白单元格。

然后我们匹配其他数据:

B2:
=IF(A3="","",INDIRECT("Foods!B"&$A3))

D2:将 INDIRECT("Foods!B"&$A3)) 更改为 INDIRECT("Foods!D"&$A3)),将 E 更改为 E2 等。

第一行下方 A 列中的其他行(从 A4 向下复制):
=IF(ISERROR(A3+MATCH($A$1,INDIRECT("Foods!A"&A3+1&":A60000"),0)),"",A3+MATCH($A$1,INDIRECT("Foods!A"&A3+1&":A60000"),0))

如果不匹配,将显示一个空白单元格。

我将电子表格示例上传到 http://www.bumpclub.ee/~jyri_r/Excel/Type_of_food_on_another_sheet.xls

关于Excel - 将工作表中的某些行复制到另一个工作表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13162712/

相关文章:

excel - 如何在Excel中使用结构化引用获取表列的索引?

vba - VLookUp 到另一个打开的工作簿错误

excel - 条件格式,搜索公式

python - 使用 pandas 删除数据框中的特定行

string - Excel VBA 循环遍历一串数字,直到找到字母

excel - 将变量声明为 Decimal

java - 我需要什么来读取 JAVA 中的 Excel 2007 (.xlsx) 扩展名?

vba - 将唯一 ID 添加到数字列表 - VBA

regex - 替换工作表名称中的多个无效字符

excel - 如果单元格已更新,则在下一个空白行中写入单元格值和时间戳