我是excel宏的新手。需要你的帮助。我有一张2张的excel文件。 在第一页我有一些数据
在第二张表中我需要一个按钮,它将获取不同的C列(Mname)及其ID。
答案 0 :(得分:0)
与大多数Excel问题一样,这可以通过宏来完成,但也可以使用公式来完成。宏往往比它们的价值更麻烦,所以这里是公式选项。以这种方式使用公式有一些有趣的缺点,主要是如果你在一个工作簿中做太多,计算将非常缓慢。但只要你处理不到几千行,就不应该有问题了。
在您的主要工作表上,在D2
中输入此公式,然后拖动它以自动填充您使用的许多行。完成后,如果适合您,可以隐藏D列。
=IF(COUNTIF($C:$C,$C2)<2,MAX($D$1:$D1)+1,0)
COUNTIF
公式查找C列中有多少元素与$C2
的内容匹配(其中$C2
是(部分)相对参考,因此当您使用时行号会发生变化自动填充到其他行)。如果计数小于2($C2
中的元素是唯一的),则IF
公式将为列中的第一个唯一元素{{1}返回索引号:1
对于第二个,等等。列D中C中相应单元不唯一的所有单元格都填充2
。
在第二张纸上,您将使用“查找”公式填充A列和B列,在主页的D列中搜索正值。大多数人使用0
进行查找,我更喜欢combination of INDEX()
and MATCH()
。这里有一个很好的例子,因为我们的'唯一索引'不在主页的第一列(所以VLOOKUP不起作用!)。
VLOOKUP()
和第二张的'Mname'列,
=IFERROR(INDEX('Primary Sheet'!$A:$A,MATCH(ROW(A2)-1,'Primary Sheet'!$D:$D,0)),"")
这些查找公式基于它们自己的行号。因此,单元格=IFERROR(INDEX('Primary Sheet'!$C:$C,MATCH(ROW(B2)-1,'Primary Sheet'!$D:$D,0)),"")
中的公式正在查找A2
列D中包含唯一索引2-1 = Primary Sheet
的行。 1
中的公式查找索引3-1 = A3
等。围绕查找公式的2
公式确保如果找不到所追求的索引,该公式返回一个空字符串(IFERROR()
),它看起来像一个空白单元格。这样,您可以使用这些查找公式在辅助工作表上准备大量行。如果""
上只有少量独特的Mnames,那么您的辅助工作表中的列不会出现Primary Sheet
个错误。