VBA-массивы и вычисления с использованием условия true / false - PullRequest
0 голосов
/ 11 октября 2018

введите описание изображения здесь

введите описание изображения здесь

Уважаемые все!Пожалуйста, помогите, я пытаюсь сортировать с использованием массива в VBA.Я новичок в массивах, поэтому я буквально не знаю, как запустить код.Если все объяснения слишком утомительны, я буду очень признателен, если вы все сможете проконсультироваться о наиболее оптимальных рамках для использования в этом контексте.

  1. Как показано на рисунке, желаемый результат, которого я хочу достичьэто серийный номер, и условие будет отображаться как ИСТИНА.
  2. Затем программа выполнит все ИСТИННЫЕ условия и даст мне максимальный результат результата ($) соответственно для каждого в описании и даст мне окончательный результат..

1 Ответ

0 голосов
/ 11 октября 2018

вы можете достичь этого без VBA следующим образом:

  • при условии данных в столбце A: E (согласно вашим скриншотам)

  • местов G1: =COUNTA(G2:G22)-COUNTBLANK(G2:G22)

  • место в G2: =IF(AND($E$2:$E$22="TRUE",COUNTIF($A$1:$A2,A2)=1),A2,"") и заполнить

  • место в H2: =IF($G2<>"",MAX(H$1:H1)+1,"") и заполнить

  • место в I2: =MAX(IF($A$2:$A$22=A2,IF($E$2:$E$22="TRUE",IF(COUNTIF($A$1:$A2,A2)=1,$B$2:$B$22,""),""),"")), оставьте ячейку, нажав CTRL + SHIFT + ENTER, чтобы получить формулу массива.скопируйте его и вставьте из ячейки внизу в конец строки данных

  • место в K2: =IF(ROWS(K$1:K1)<$G$1,INDEX($G$2:$G$22,MATCH(ROWS(K$1:K1),$H$2:$H$22,0)),"") и заполните

  • местов L2: =IF(ROWS(K$1:K1)<$G$1,INDEX($I$2:$I$22,MATCH(ROWS(K$1:K1),$H$2:$H$22,0)),"") и заполните

, это даст вам результат согласно следующему изображению

enter image description here

со списком разыскиваемых в столбцах K: L

конечно, вы должны изменить все 22 индексов строк на ваши фактические данные индекс последней строки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...