Как вы теперь показали, ваша функция init принимает не-членную функцию. так что сделайте это так:
static void Callback(int other_arg, void * this_pointer) {
CLoggersInfra * self = static_cast<CLoggersInfra*>(this_pointer);
self->RedundencyManagerCallBack(other_arg);
}
и вызовите Init с
m_cRedundencyManager->Init(&CLoggersInfra::Callback, this);
Это работает, потому что указатель функции на статическую функцию-член не является указателем на функцию-член и может таким образом обрабатываться как указатель на свободную функцию.
Есть два простых способа сделать это
1) создать чит-столбец, объединяющий город + месяц, чтобы у вас был уникальный идентификатор, чтобы в новом столбце вы могли ссылаться на первый месяц, заблокированный в строке 1, а затем город в разных строках (= $ B $ 1 и C2, а затем перетащите вниз)
2), поскольку у вас есть только одно уникальное значение pr city / mont / high или low, вы можете сделать «MAXIFS» «где вы указываете город + месяц в качестве критерия
Вам не нужно INDEX-MATCH
, чтобы сделать это, это можно сделать, используя HLOOKUP-MATCH
, чтобы получить значение в точке пересечения. Я воссоздал базовый макет ваших данных и в J5
использовал
=HLOOKUP($B$3,'Summary - High Temp '!$B$4:$G$8,MATCH(I5,'Summary - High Temp '!$B$4:$B$8,0),FALSE)
Где $B$3
- ссылка на выпадающий список названий месяцев, 'Summary - High Temp '!$B$4:$G$8
- ссылка на массив данных высокой температуры. , I5
- ссылка на искомый город, а 'Summary - High Temp '!$B$4:$B$8
- ссылка на столбец, содержащий массив названий городов.
Это позволит вам выбрать любой месяц из выпадающего списка, и ваши значения поиска будут обновлены. Это, конечно, предполагает, что у вас есть только одно значение температуры для каждого уникального города-месяца.