Есть ли способ использовать sumproduct (или что-то еще) для вычитания из инвентаря с помощью флажка в Google Sheets? - PullRequest
1 голос
/ 18 июня 2020

Я всю последнюю неделю ломал себе голову, пытаясь придумать способ создать полуавтоматический c инвентарь моего магазина в Google Таблицах.

В настоящее время у меня есть одна таблица, в которой заказы войти (автоматически вставляется). Каждый заказ получает 3 ячейки: timestamp, order number и order info. Отметка времени и номер заказа не требуют пояснений, информация о заказе представляет собой ячейку, разделенную запятыми, с тем, что было куплено (например, рубашка, рубашка, брюки, шорты, рубашка, обувь - это заказ из 3 рубашек, 1 пары брюк, 1 пары шорт и пары обуви) Кроме того, в столбце D я добавил отметку true / false.

enter image description here

На втором листе у меня то, что я называю своим инвентарем. На этом листе в крайнем левом столбце (столбец A) указаны названия каждого элемента. Рядом с ним находятся столбцы для суммы, заказанной в каждом месяце (каждый использует эту формулу безрассудства из-за того, как метка времени входит в =SUMPRODUCT(((INT((IFERROR(--MID('Inventory-Orders'!$A$2:$A,FIND("CREATED",UPPER('Inventory-Orders'!$A$2:$A))+LEN("CREATED"),10),0)-IFERROR(--RIGHT('Inventory-Orders'!$A$2:$A,5),0)))>=B$1)*(INT((IFERROR(--MID('Inventory-Orders'!$A$2:$A,FIND("CREATED",UPPER('Inventory-Orders'!$A$2:$A))+LEN("CREATED"),10),0)-IFERROR(--RIGHT('Inventory-Orders'!$A$2:$A,5),0)))<=EOMONTH(B$1,0)))*((LEN('Inventory-Orders'!$C$2:$C)-LEN(SUBSTITUTE((UPPER('Inventory-Orders'!$C$2:$C)),UPPER($A2),"")))/LEN($A2))) ),

, за которым следует столбец с общей заказанной суммой (просто сумма столбцы предыдущего месяца) и один последний столбец, который является моим оставшимся инвентарем.

В настоящее время подсчитываю в конце недели, что у меня осталось, и обновляю вручную. Я пытался найти способ объединить флажок с указанной выше формулой, чтобы создать инвентарь, который автоматически вычитает правильную сумму всякий раз, когда я устанавливаю флажок на листе 1 - Заказы, которые отмечают его как выполненное.

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

enter image description here

1 Ответ

0 голосов
/ 22 июня 2020

Если вы хотите подсчитывать только те ячейки, рядом с которыми установлен флажок, вы можете добавить условие IF для каждого элемента в SUMPRODUCT. Примерно так:

IF('Labels-Standard Orders'!$D$2:$D, ((INT(...))))

Например, из вашего образца в C5 (июньские шорты) вы можете иметь следующую формулу:

=SUMPRODUCT(IF('Labels-Standard Orders'!$D$2:$D,((INT((IFERROR(--MID('Labels-Standard Orders'!$A$2:$A,FIND("CREATED",UPPER('Labels-Standard Orders'!$A$2:$A))+LEN("CREATED"),10),0)-IFERROR(--RIGHT('Labels-Standard Orders'!$A$2:$A,5),0)))>=C$1)*(INT((IFERROR(--MID('Labels-Standard Orders'!$A$2:$A,FIND("CREATED",UPPER('Labels-Standard Orders'!$A$2:$A))+LEN("CREATED"),10),0)-IFERROR(--RIGHT('Labels-Standard Orders'!$A$2:$A,5),0)))<=EOMONTH(C$1,0))))*((LEN('Labels-Standard Orders'!$C$2:$C)-LEN(SUBSTITUTE((UPPER('Labels-Standard Orders'!$C$2:$C)),UPPER($A5),"")))/LEN($A5)))

Ссылка :

...