2013-06-09 6 views
0

Excel Возвращает ошибку #NAME? когда я пытаюсь ссылаться на эту функцию на листе. Что я здесь делаю неправильно?#NAME? Ошибка в листе Excel

Целью функции является просмотр списка для сравнения числа и имени с введенными, а затем возврат строки дополнительной информации на основе этого имени.

Function Cname(Name As String, Number As Integer) As String 
    x = 3 
    For x = 3 To x = 6857 
    If Name = Worksheets("Master List").Cells(x, 2).Value Then 

     If Number = Worksheets("Master List").Cells(x, 3).Value Then 
      Cname = Worksheets("Master List").Cells(x, 1).Value 
      End Function 
     End If 

    Else 
     x = x + 1 

    End If 
End Function 

Спасибо.

+0

вы включили макросы? где находится код - какая книга и какой модуль? – JosieP

+0

Код недействителен. Я не вижу 'Next' для цикла' For'. И почему вам нужно делать 'x = x + 1', когда' For' это делает? Сделайте Debug -> Скомпилируйте свой код первым. Кроме того, не будет ли использоваться «VLOOKUP»? – shahkalpesh

+0

У меня есть макросы. Я новичок в VBA-стороне Excel. Первоначально у меня был цикл while вместо цикла For. Я должен пропустить, что мне нужен следующий. Я не знаком с VLOOKUP, я буду изучать его использование. Спасибо за ответы!! –

ответ

0
=INDEX('Master List'!A3:A6857, MATCH(1, ('Master List'!B3:B6857="NameBeingSearched") * ('Master List'!C3:C6857=NumberBeingSearched),0)) 

Вставить вышеуказанную формулу в ячейке (где вы могли бы использовать функцию CName).
Вместо нажатия введите нажмите Ctrl +сдвиг + введите

ли эта помощь?

любезность: http://www.mrexcel.com/forum/excel-questions/306615-vlookup-multiple-criteria.html

EDIT: С помощью VBA

Function Cname(Name As String, Number As Integer) As String 
    dim x as integer 
    x = 3 
    For x = 3 To 6857 
     If Name = Worksheets("Master List").Cells(x, 2).Value Then 
      If Number = Worksheets("Master List").Cells(x, 3).Value Then 
      Cname = Worksheets("Master List").Cells(x, 1).Value 
       End Function 
      End If 
     End If 
    Next 
End Function 
+0

Эта формула индекса отлично работает. Я продолжу с помощью макро-версии и для практики. Один вопрос, что такое ctrl + shift + enter? Я никогда не видел, чтобы это было чем-то нужным. Я отредактировал формулу, чтобы включить $, чтобы я мог перетащить формулу на несколько ячеек, и это отлично поработало. Как только я сделал ctrl + shift + введите в одну ячейку, я мог бы перетащить ее, и она будет мгновенно обновлена ​​в других. Обратите внимание на другие, если вы просто нажмете enter, вы получите результат как «# N/A». Я сделал это первым и подумал, что есть проблема. Спасибо всем за вход !!! –

+0

Поиск «Формулы массива». В принципе, если вы хотите, чтобы формула возвращала более 1 значения или массив значений, результат которых будет присвоен ячейке или ячейкам - можно использовать формулы массива. Напр. если у вас есть 2 ячейки (соответствующие вашим критериям) - вы можете выбрать сказать 2 ячейки, нажмите F2, введите формулу в 1-й ячейке, нажмите ctrl + shift + enter - вы увидите, что первое возвращаемое значение присваивается 1-й ячейке , Второе значение для второй выбранной ячейки. Попробуйте. – shahkalpesh

Смежные вопросы