AMcoder - javascript, python, java, html, php, sql

Վերականգնել կուտակային ընդհանուր գումարը, երբ մուտքագրված է 0

Ես ունեմ սյունակ, որտեղ թվեր են մուտքագրվում, և կողքի սյունակը հաշվարկում է կուտակային ընդհանուր գումարը:

   |...|   H   |   I   |
 1 |...|       |       |
...|...|       |       |
16 |...|  100  |  100  |
17 |...|       |       |
18 |...|       |       |
19 |...|  100  |  200  |
20 |...|  100  |  300  |
21 |...|       |       |
22 |...|  100  |  400  |
...|...|       |       |

Ես սա օգտագործում եմ առաջին բջիջում՝ I16 = =IF(H16="","",H16):
Սյունակի հետևյալ բջիջներն են՝ I17 = =IF(H17="","",SUM($H$16:H17)), I18 = =IF(H18="","",SUM($H$16:H18)) I19 = =IF(H19="","",SUM($H$16:H19)) և այլն:

Ես կցանկանայի, որ I սյունակի կուտակային ընդհանուր գումարը վերակայվի 0ի, եթե կա 0 մուտքագրված H սյունակ:

Պարզ լուծումը H-ի արժեքը վերցնելն ու Iին ավելացնելն է, բայց դա չի աշխատում, եթե մուտքագրված արժեքներ չկան, ինչը սովորական է, ինչպես օրինակում: Այսպիսով, =IF(H17=0,0,I16+H17)-ի և այլնի նման մի բան չի աշխատի, քանի որ null-ը սխալ կհաշվի կուտակային ընդհանուր գումարը:

Ես կցանկանայի, որ վերջնական արդյունքն այսպիսին լիներ.

   |...|   H   |   I   |
 1 |...|       |       |
...|...|       |       |
16 |...|  100  |  100  |
17 |...|       |       |
18 |...|       |       |
19 |...|  100  |  200  |
20 |...|   0   |   0   |
21 |...|       |       |
22 |...|  100  |  100  |
...|...|       |       |

Ես բաց եմ ցանկացած գաղափարի համար՝ իմ առաջադրանքն իրականացնելու համար: Շնորհակալություն ժամանակ տրամադրելու համար.

03.05.2020

Պատասխանները:


1

ԱՆՈՒՂՂ ՀԱՍՑԵ Օգնական սյունակի լուծում

Երկրորդ բանաձևը (ցավոք) միայն J16 բջիջի համար է, մյուսները պետք է պատճենվեն: J սյունակի բանաձևերը կարող են լինել Cut/Pasted մեկ այլ սյունակում:

[I16] =IF(H16="","",SUM(INDIRECT(J16&":"&ADDRESS(ROW(H16),COLUMN(H16)))))
[J16] =ADDRESS(ROW(H16),COLUMN(H16))
[J17] =IF(H17="",J16,IF(H17=0,ADDRESS(ROW(H17),COLUMN(H17)),J16))

մուտքագրեք պատկերի նկարագրությունը այստեղ

BTW, ձեր ընթացիկ կարգավորումներում դուք կարող եք ապահով կերպով պատճենել բանաձևը I17-ից I16: Տարբեր բանաձեւերի կարիք չկա։

03.05.2020
  • Լրացուցիչ հարց ունեմ խմբագրման այս ոճի հետ կապված. Ես ունեմ բջիջների ևս մեկ հավաքածու, որոնք կլինեն կուտակային, այնպես որ, ինչպես վերևում, «H16 = 100», ապա «I16 = 100», «H17 = 300», ապա «I17 = 200», «H18» է «զրոյական», «H19 = 500»: այնուհետև «I19 = 200» և այլն, ինչպես վերը նշվածը, միայն հակադարձված է: Ես օգտագործում եմ '=IF(H16=,, H16)' 'I16'-ում և '=IF(H17‹›,IF(COUNT(H$16:H16),H17-LOOKUP(2,1/(H$16:H16) ‹›),H$16:H16),))' «I17»-ում պատճենված է: Կա՞ ձեր օրինակը օգտագործելու միջոց H-ում կուտակային գումարը վերագործարկելու համար, երբ ավելացվում է 0: Այսպիսով, եթե H20 = 0, ապա H21-ը կրկին կարող է լինել 100: Շնորհակալություն ժամանակ տրամադրելու համար. 04.05.2020
  • Կարծում եմ, որ լուծումն ունեմ վերը նշված բանաձեւով խաղալուց հետո: =IF(H17=,,IF(H17‹›0,IF(COUNT(H$16:H16),H17-LOOKUP(2,1/(H$16:H16‹›),H$16:H16),),0 )) 04.05.2020
  • Օգտագործելով my valuesH17:H29-ում և օգտագործելով your first formula-ը, ես ստանում եմ հետևյալ արդյունքները՝ I17:I29-ում՝ 0,0,-100,200,-70,,125,,-95,-160,35,-35,225: Օգտագործելով your second formula-ը, ես ստանում եմ հետևյալ արդյունքները I17:I29-ում՝ 0,0,0,200,-70,,125,,-95,0,35,0,225: Կարո՞ղ եք ինձ ասել, թե որոնք են your desired resultsI17:I29-ում (ստորակետերով բաժանված)՝ օգտագործելով my valuesH17:H29-ում: 04.05.2020
  • H16 և I16 բջիջներում ես պաշտպանված բջիջ ունեմ 0-ով նույն գույնով, ինչ աշխատանքային թերթիկը vbWhite: Իմ թերթիկում այս տողը երբեք չի օգտագործվում որևէ ընդհանուր գումարի համար, որպեսզի ես կարողանամ խուսափել դրանից: I17 բջիջում ունեմ վերը նշված կոդը: Սա ընթացիկ կուտակային ընդհանուր է մինչև 0-ը մուտքագրվի: Այսպիսով, H17 = 100, H18 = 200, H19 = 300 կազմելով I17 = 100, I18 = 100 և I19 = 100 յուրաքանչյուր փուլի համար: Եթե ​​H20-ում մուտքագրեմ 0, I20 = 0, և նոր արժեքների միջակայքը կարող է սկսվել: H21 = 100, H22 = 300 և H23 = 500 կազմելով I21 = 100, I22 = 200 և I23 = 200: Կներեք, ես դեռ չգիտեմ, թե ինչպես ձևակերպել իմ հարցերը: 04.05.2020
  • Ահա, չհասկացա, որ լուծումը ներկայացրել ես քո երկրորդ մեկնաբանության մեջ։ Եվ առանց օգնական սյունակի: Փայլուն! Հետո ես ենթադրում եմ, որ դուք կարող եք դա անել նաև առաջին դեպքի համար: Ինչպես է սա Lookup աշխատում: Ես նկատի ունեմ, թե ինչ է նշանակում 1/(H$16:H16<>""): Արդյո՞ք դա նշանակում է «որոնում ներքևից վերև»: 04.05.2020
  • Դա պատճենված արժեքն է: I30 բջիջում բանաձևը =IF(H30="","",IF(H30<>0,IF(COUNT(H$16:H29),H30-LOOKUP(2,1/(H$16:H29<>""),H$16:H29),""),0)) է, այն պարզապես փնտրում է 0-ի վերջին արժեքը: Այսպիսով, այո, այն որոնում է ներքևից վեր, ինչպես դուք ասացիք: Կրկին ուզում եմ շնորհակալություն հայտնել ձեզ այն ուղղության համար, որն ինձ անհրաժեշտ էր այս իրագործման համար, ես գնահատում եմ ձեր ժամանակը: 04.05.2020
  • Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..