Как настроить автонумерацию в Google Sheets с учетом двух условий?

<b>Вводные данные:</b> <br/> <br/> Использование функции ARRAYFORMULA для автоматической нумерации списков. <br/> <br/> Друзья, мы рады представить вам отличную формулу, позволяющую автоматически нумеровать список по одному или более условиям. <br/> <br/> Об увеличение каждого счетчика на 1 отвечает часть ROW(A:A);"<="&ROW(A:A). <br/> <br/> 1) Нумерация по одному условию (столбцу): <br/> =ARRAYFORMULA( <br/> COUNTIFs(A3:A9;A3:A9;ROW(A3:A9);"<="&ROW(A3:A9)) <br/> ) <br/> <br/> 2) Нумерация по двум условиям (столбцам): <br/> =ARRAYFORMULA( <br/> COUNTIFS(D3:D8;D3:D8;E3:E8;E3:E8;ROW(A3:A8);"<="&ROW(A3:A8)) <br/> ) <br/> <br/> Таблица с примером ( <a href="https://docs.google.com/spreadsheets/d/1BLF0ric5GZIARrKzIV4_L_hWT9sy11PQJ6I0lg907kg/edit?usp=sharing" rel="nofollow">https://docs.google.com/spreadsheets/d/1BLF0ric5GZ...</a> ) <br/> <br/> * * * * * <br/> <br/> <b>В этом примере (с двумя условиями) получается следующий результат:</b> <br/> <br/> зерно	27.05.2019	1 <br/> зерно	27.05.2019	2 <br/> зерно	28.05.2019	1 <br/> зерно	28.05.2019	2 <br/> зерно	28.05.2019	3 <br/> зерно	28.05.2019	4 <br/> зерно	28.05.2019	5 <br/> зерно	28.05.2019	6 <br/> пшеница	28.05.2019	1 <br/> пшеница	28.05.2019	2 <br/> <br/> <b>Однако нужен следующий результат:</b> <br/> <br/> зерно  27.05.2019  1 <br/> зерно  27.05.2019  1 <br/> зерно  28.05.2019  2 <br/> зерно  28.05.2019  2 <br/> зерно  28.05.2019  2 <br/> зерно  28.05.2019  2 <br/> зерно  28.05.2019  2 <br/> зерно  28.05.2019  2 <br/> пшеница     28.05.2019  1 <br/> пшеница     28.05.2019  1
  • 30 ноября 2024 г. 0:23
Ответы на вопрос 1
Чтобы получить нужный результат при автонумерации в Google Sheets с использованием `ARRAYFORMULA` и `COUNTIFS`, вам нужно скорректировать формулу так, чтобы она не увеличивала значение счетчика при каждом новом повторе, а оставляла его на одном уровне для одинаковых значений по двум условиям.

### Предположим, у вас есть следующие данные:

| A       | B          |
|---------|------------|
| Продукт | Дата       |
| зерно   | 27.05.2019 |
| зерно   | 27.05.2019 |
| зерно   | 28.05.2019 |
| зерно   | 28.05.2019 |
| зерно   | 28.05.2019 |
| зерно   | 28.05.2019 |
| зерно   | 28.05.2019 |
| зерно   | 28.05.2019 |
| пшеница | 28.05.2019 |
| пшеница | 28.05.2019 |

### Для двух условий (Продукт и Дата):

Вам нужна формула, которая будет такова:

```plaintext
=ARRAYFORMULA(IF(A3:A = ""; ""; IF(COUNTIFS(A$3:A, A3:A, B$3:B, B3:B) > 0, COUNTIFS(A$3:A, A3:A, B$3:B, B3:B, ROW(A$3:A), "<="&ROW(A$3:A)), "1")))
```

### В чем разница?

1. Условия `COUNTIFS` используются для вычисления, сколько раз товар и дата появляются, и счетчик сбрасывается, когда появляются новые события.
2. Функция `IF` внутри `ARRAYFORMULA` помогает избежать пустых значений, когда в соответствующих ячейках нет данных.

### Пример выполнения формулы:
- В ячейке C3 введите приведенную выше формулу и протяните ее вниз, чтобы она охватывала все строки с данными. 
- Убедитесь, что диапазоны в формуле соответствуют вашим данным.

С помощью этой формулы вы получите нужное количество повторений для каждого сочетания "Продукт" и "Дата". Таким образом, ваши данные будут выглядеть следующим образом:

| Продукт | Дата       | Номер |
|---------|------------|-------|
| зерно   | 27.05.2019 | 1     |
| зерно   | 27.05.2019 | 1     |
| зерно   | 28.05.2019 | 2     |
| зерно   | 28.05.2019 | 2     |
| зерно   | 28.05.2019 | 2     |
| зерно   | 28.05.2019 | 2     |
| зерно   | 28.05.2019 | 2     |
| зерно   | 28.05.2019 | 2     |
| пшеница | 28.05.2019 | 1     |
| пшеница | 28.05.2019 | 1     |

Теперь вы получите результат, как вы и хотели!
Похожие вопросы