我找到了解决这个问题的方法,但我不知道如何根据我的具体问题定制它们。我以前从未写过 marco 或任何 VBA 脚本,所以请具体说明您的答案。
我有一个 Excel 工作簿,其中一个工作表名为“食物”,另外四个工作表名为“小吃选择”、“早餐选择”、“午餐选择”和“晚餐选择”
“食物”工作表中的标题如下所示:
食物量卡路里...ETC...类型
其中“类型”包含“早餐”“小吃”“午餐”“晚餐”或 2+ 选项的组合。
我希望根据“食物”工作表中“类型”字段的值,将整行复制到相应的“小吃选择”、“早餐选择”、“午餐选择”和“晚餐选择”工作表中。
例如,如果我在“食物”工作表中输入一个新行,其中“类型”字段为“小吃/早餐”,我希望该行自动出现在“早餐选择”和“小吃选择”工作表中。 (如果这样更容易,我可以删除斜线或用另一个字符替换它)
先感谢您!
最佳答案
主 table 食物(表“食物”):
早餐表:
在此表中:
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/