我目前有一张House Keeping(HK)表,当他们进来时分发给女孩。为了节省早上的时间,我一直在尝试输入一个公式,自动从Head HK表转移所有房间个人香港的床单。目前,HK主页看起来像这样,但没有破折号:
Housekeeper ---------- Room --------- Status ------ Set Up
Katie ------------------ 1 ---------- Ready ------- Double
Sue -------------------- 2 ------ Departing ------- Single
Katie ------------------ 3 ------ Stay over ------- Family
这继续到43号房间
我想使用HK的名称作为主要数据来源,所以当我在单张HK表上选择他们的名字(使用下拉列表)时,它会自动填写以下所有与房间订单相关联的单元格。
答案 0 :(得分:0)
我写了一个如何做到这一点的教程,如果您有任何问题,请告诉我:
http://www.excelforum.com/tips-and-tutorials/947848-lookup-a-value-and-return-multiple-results.html
答案 1 :(得分:0)
如果您有一张包含所有信息的单页,并且您想依次为每个女孩创建一个“摘录”,那么您至少有两个选项
1)如果您只需要打印每张HK的纸张一次,请使用主页上的“自动过滤”选项,然后点击“打印” - 并为每个管家重复。它仍然涉及一些工作(虽然只有43个房间,也许只有少数管家,但并不是那么多)。
2)如果你想在每个管家的工作簿中有一个单独的工作表,你可能想要使用VBA宏自动化更多东西。这并不难,但鉴于你如何提出问题,你可能不想解决它。如果你这样做 - 这是一种方法:
Alt-F11
,然后(在VBA编辑器中)插入...模块并粘贴此代码:Sub createDailyWorklist()
'
' Update a series of worksheets based on the first ("Master") sheet
'
'
Dim sh As Worksheet
Application.ScreenUpdating = False
For Each sh In ActiveWorkbook.Sheets
If Not sh.Name = "MasterSheet" Then ' skip first sheet - it is the "master"
sh.Activate ' select the sheet
sh.Cells.Clear ' remove old content
' set the criteria for the filter:
sh.Range("A1").Value = "HK" ' column to filter on
sh.Range("A2").Value = "'=" & sh.Name ' value to find = sheet name (housekeeper name)
' using the '= to get an exact match (not "starting with")
' otherwise Jane would get Janet's work too...
' there are 43 rooms so we know where the input data range is:
Sheets("MasterSheet").Range("A1:D44").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=sh.Range("A1:A2"), CopyToRange:=Range("A3:D3"), Unique _
:=False
Rows("1:2").Delete ' get rid of the criteria
Columns("A:D").EntireColumn.AutoFit ' make the columns just wide enough
End If
Next sh
Application.ScreenUpdating = True
End Sub
如果要创建工作清单,请按Alt-F8
,然后从显示的菜单中选择“createDailyWorklist”。点击“运行”
显然你可以修改它以更好地满足你的需要 - 格式化,要复制的字段数等等。但我希望这能让你前进。