使用vlookup公式的列引用

时间:2015-05-08 09:00:11

标签: excel

在Excel中插入表格时,您可以参考:

  • 数据范围<span class="glyphicon glyphicon-remove form-control-feedback" aria-hidden="true" ng-show="Form.Name.$invalid"></span>
  • 标题范围Table[#data]
  • 完整列范围Table[#header]
  • 特定列Table[column name]下的当前行的值

使公式非常易于理解:Table[@[colum name]]变为

=COUNTIF(A:A,A1)

快速检查当前行值的重复项(IBAN)。

我现在正试图将=COUNTIF(Suppliers[IBAN],Suppliers[@[IBAN]])转换为

=VLOOKUP([@SupplierCode],Suppliers[Code],2,False)

换句话说,一种获取tableObject中列的列索引以在公式中使用它的方法(即vlookup)

我可能会编写一个VBA函数来执行此操作,但我试图找出Excel是否有办法处理此没有VBA代码

我不想要的VBA解决方案(但如果不可能,可能会解决):

=VLOOKUP([@SupplierCode],Suppliers[Code],Suppliers[Name],False)

允许我写:Public Function GetColumnIndex(TableName As String, ColumName As String) As Long GetColumnIndex = ActiveSheet.ListObjects(TableName).ListColumns(ColumName).Index End Function

有效,只要表格在同一张表上

3 个答案:

答案 0 :(得分:4)

Now added as answer: public static void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { return; } int totalHeight = 0; for (int i = 0; i < listAdapter.getCount(); i++) { View listItem = listAdapter.getView(i, null, listView); listItem.measure(0, 0); totalHeight += listItem.getMeasuredHeight(); } ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); listView.setLayoutParams(params); listView.requestLayout(); } gives the index of the header matching the name so

The only way I can think to do it without VBA is to use the Match() function

phoneListView.setAdapter(arrayAdapter); setListViewHeightBasedOnChildren(phoneListView);

答案 1 :(得分:1)

使用表格,我认为更好的选择是用这种方式用INDEX公式替换VLOOKUP公式:

= INDEX(MyTableName [NameOfFieldContainingReturnValue],MATCH(LookupValue,MyTableName [NameOfFieldContainingLookupValue],0))

一些意见:

  • 索引函数可以这种方式引用一个简单的列:= INDEX(MyTableName [FieldName]; 4)

  • 这将返回“FieldName”

  • 列中第4行的值
  • 由于我们不知道行号,我们可以在包含查找值的列中使用MATCH(在使用vlookup公式的情况下,这将是最左列。)

答案 2 :(得分:0)

答案可能会泛化为查找值不在第一列中的情况:

=VLOOKUP("g";Table[[LookupColumn]:[ValueColumn]];MATCH("ValueColumn";Table[[#Headers];[LookupColumn]:[ValueColumn]];0);FALSE)

如以下示例所示:

enter image description here