2016-01-14 3 views
0

Мне интересно, есть ли способ, если:Excel шаблоны и ячейки Excel

У меня 1000 ячеек. Я хотел бы видеть, сколько раз x помещается в период с 7 ячейками,

Т.е. Х помещается в ячейку 1 и 3. Это будет считаться 1

Х помещается в ячейку 1, 8 и 9. Это будет считаться 2

Х помещается в ячейку 1, 2, 3, 4 , 5, 6, 7, 8, 9, 10, 11, 170. Это будет засчитываться как 3.

до сих пор я получил,

=SUM(IF(COUNTA(M77:N77)=0,0,1),IF(COUNTA(O77:P77)=0,0,1),IF(COUNTA(Q77:R77)=0,0,‌​1)) 

Не уверен, если VBA будет проще, однако его должен быть постоянным обновлением и будет сравнивать 10-12 банков из 1000 ячеек с разными 7-клеточными шаблонами.

+0

Описание проблемы затруднено. Это поможет, если вы его отредактируете (нажмите ссылку «EDIT» под вопросом), отформатируйте условия (например, новую строку для каждого) и проверьте свою пунктуацию (некоторые периоды отсутствуют?). Также больше информации о структуре листа (банки)? –

+0

Извините, я не понимал, что все было на одной линии. –

+0

Mmm, да, StackOverflow нуждается в двух «входящих», чтобы создавать новые строки, формат OR с помощью инструмента «bullet» или «numbered» list. И для кода, формат с помощью инструмента CODE. –

ответ

0

Попробуйте эту функцию: она работает, но не полностью протестирована. Функция создаст проблему с круговой формулой, если вы поместите формулу в середину x-дневного диапазона, и она, вероятно, сработает и сгорит, если вы добавите диапазон с более чем 1 строкой.

Я не могу понять какую-либо комбинацию встроенных функций Excel для выполнения такого рода прогрессивного подсчета последовательности диапазонов, но это, вероятно, можно сделать с помощью SUMPRODUCT и других эзотерических формул. Однако, предварительно потратив часы, пытаясь придумать милую формулу, которая выполняет сложные задачи, которые никто (включая меня) никогда не поймет позже, лучше всего написать код, который вы можете отлаживать и изменять в соответствии с вашими потребностями.

Но тогда, в конце концов, вам нужно будет спросить себя, стоит ли использовать электронную таблицу для работы с подобными базам данных функциями. Я предполагаю, что вам, возможно, придется задать себе этот вопрос в ближайшее время, учитывая описание бизнеса, которое вы дали :)

Public Function CountRangeSpanEntries(span As Integer, rng As Range) As Integer 


Dim length As Integer 
length = rng.Columns.count 

Dim count As Integer 
count = 0 

Dim rw As Integer 
rw = rng.Row 

Dim used As Boolean 
Dim index As Integer 
Dim i As Integer 

For index = 1 To length Step span 
    For i = index To index + span - 1 
     If Cells(rw, i).Value = "x" Then 
      used = True 
      End If 
    Next i 
    If used Then 
     count = count + 1 
     End If 
used = False 
Next index 

CountRangeSpanEntries = count 


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