【问题标题】:IFERROR, Index Match formula with too many arguementsIFERROR,参数过多的索引匹配公式
【发布时间】:2015-06-30 21:23:27
【问题描述】:

我正在尝试根据客户编号在 26 页的电子表格中查找数据。每张纸都被标记为一个字母来组织姓氏。每张表都有下表:

Surname | Forename | Client Number | Daily Ticket Count | Monthly Ticket Count |
Ticket No | Date | Ticket No2 | Date | Ticket No3 | Date | Ticket No4 | Date | 
Ticket No 5 | Date

我正在按客户编号搜索以提取所有分配的票证。下面这个公式是只检查票号,然后在另一个单元格中还有另一个公式来搜索票号2。对票 3 到 5 重复此操作。

这是我目前的公式。我计划对每张 A-Z 完全重复此操作,但这显然是不可行的。是否仍然可以通过使用另一个函数来做到这一点,如果可以,使用什么函数?

=IFERROR(INDEX(A!F2:F36,(MATCH($B12,A!C2:C36,0))),INDEX(B!F2:F36,(MATCH($B12,B!C2:C36,0))),
 INDEX(C!F2:F36,(MATCH($B12,C!C2:C36,0))))

【问题讨论】:

  • 早上。您能否粘贴仅突出显示此部分的完整数组:INDIRECT("'"&INDEX(Sheets,MATCH(TRUE,Arry1>=ROWS($‌​1:1),0))&"'!C3 :C100")="TEST" 在公式栏中并按 F9?它应该是一个由 98 个布尔 TRUE/FALSE 返回值组成的数组。如果您对结果字符串执行查找和替换以将所有 TRUE 替换为 T 并将 FALSE 替换为 F,则在节省空间/易读性方面可能会更好。
  • 我实际上设置了之前发布的大量 IFERROR 垃圾邮件公式,今天早上调整为使用索引匹配。今天早上给了我一个截止日期,所以恐怕没有时间继续摆弄这个工作。再次感谢您花费的时间,非常感谢。
  • 好的。不客气,很抱歉我没能及时为你工作。

标签: excel indexing


【解决方案1】:

怎么了

=IFERROR(IFERROR(IFERROR(IFERROR(IFERROR(IFERROR(IFERROR(IFERROR(IFERROR(IFERROR(IFERROR(IFERROR(IFERROR(IFERROR(IFERROR(IFERROR(IFERROR(IFERROR(IFERROR(IFERROR(IFERROR(IFERROR(IFERROR(IFERROR(IFERROR(VLOOKUP($B12,A!C:F,4,FALSE),VLOOKUP($B12,B!C:F,4,FALSE)),VLOOKUP($B12,C!C:F,4,FALSE)),VLOOKUP($B12,D!C:F,4,FALSE)),VLOOKUP($B12,E!C:F,4,FALSE)),VLOOKUP($B12,F!C:F,4,FALSE)),VLOOKUP($B12,G!C:F,4,FALSE)),VLOOKUP($B12,H!C:F,4,FALSE)),VLOOKUP($B12,I!C:F,4,FALSE)),VLOOKUP($B12,J!C:F,4,FALSE)),VLOOKUP($B12,K!C:F,4,FALSE)),VLOOKUP($B12,L!C:F,4,FALSE)),VLOOKUP($B12,M!C:F,4,FALSE)),VLOOKUP($B12,N!C:F,4,FALSE)),VLOOKUP($B12,O!C:F,4,FALSE)),VLOOKUP($B12,P!C:F,4,FALSE)),VLOOKUP($B12,Q!C:F,4,FALSE)),VLOOKUP($B12,R!C:F,4,FALSE)),VLOOKUP($B12,S!C:F,4,FALSE)),VLOOKUP($B12,T!C:F,4,FALSE)),VLOOKUP($B12,U!C:F,4,FALSE)),VLOOKUP($B12,V!C:F,4,FALSE)),VLOOKUP($B12,W!C:F,4,FALSE)),VLOOKUP($B12,X!C:F,4,FALSE)),VLOOKUP($B12,Y!C:F,4,FALSE)),VLOOKUP($B12,Z!C:F,4,FALSE))

?

【讨论】:

  • 如果有 100 张纸,您只需添加另外 74 个 IFERROR 子句?
  • 我不会,但是OP比我还懒。
  • 不会说懒惰,但绝对厌倦了这个该死的电子表格。也就是说,这行得通,我只需要通过并更改以在单独的单元格中获取其他 4 个票号。干杯。
  • 做了一个VBA来炫耀,@XOR LX 随意使用。
  • 我的工作是尽可能提供 VBA 的替代品!无论如何,干杯!
【解决方案2】:

这是针对同一任务的 VBA 解决方案,对您来说是 =ertdfgcvb($B12,C1;F1;Arry1),其中 Arry1 是包含工作表名称的范围,按您的偏好顺序排列。

Public Function ertdfgcvb(Lookup_val As Variant, Lookup_col As Range, Grab_col As Range, ShtArr As Range)
Dim ws As Worksheet, rng As Range

Find1 = Lookup_col.Column
Grab1 = Grab_col.Column

On Error Resume Next
For Each rng In ShtArr
    Set ws = Sheets(rng.Value2)
    ertdfgcvb = Application.WorksheetFunction.VLookup(Lookup_val, ws.Columns(Find1), ws.Columns(Grab1))
    Exit Function
Next
End Function

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-14
    • 2017-08-16
    • 2018-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多