پاور سوال ۾ بلڪ ٽيڪسٽ متبادل List.Accumulate فنڪشن سان

ريفرنس لسٽ مطابق فارمولين سان متن کي تڪڙو ۽ وڏي تعداد ۾ ڪيئن بدلجي - اسان اڳ ۾ ئي ان کي ترتيب ڏئي چڪا آهيون. هاڻي اچو ته ان کي پاور سوال ۾ ڪرڻ جي ڪوشش ڪريون.

جيئن اڪثر ٿئي ٿو انجام ڏيو هي ڪم بيان ڪرڻ کان گهڻو آسان آهي ڇو اهو ڪم ڪري ٿو، پر اچو ته ٻنهي کي ڪرڻ جي ڪوشش ڪريون 🙂

تنهن ڪري، اسان وٽ ٻه "سمارٽ" متحرڪ جدول آهن جيڪي ڪي بورڊ شارٽ ڪٽ سان عام رينج مان ٺاهيا ويا آهن. Ctrl+T يا ٽيم گھر - ھڪڙي ٽيبل جي شڪل ۾ (گهر - ٽيبل جي شڪل ۾):

پاور سوال ۾ بلڪ ٽيڪسٽ متبادل List.Accumulate فنڪشن سان

مون پهرين ٽيبل کي سڏيو ڊيٽا، ٻيو ٽيبل - ھدايت ناموفيلڊ استعمال ڪندي ٽيبل جو نالو (ٽيبل جو نالو) ٽئب تعمير ڪندڙ (خاڪو).

ٽاسڪ: ٽيبل ۾ پتي ۾ تبديل ڪريو ڊيٽا هڪ ڪالمن مان سڀ واقعا لهڻ هٿ وارو ڪتاب ڪالمن مان انهن جي لاڳاپيل صحيح هم منصبن ڏانهن سقراط. خاني ۾ باقي متن اڻڄاتل رهڻ گهرجي.

قدم 1. ڊاريڪٽري کي پاور سوال ۾ لوڊ ڪريو ۽ ان کي لسٽ ۾ تبديل ڪريو

ريفرنس ٽيبل جي ڪنهن به جاءِ تي فعال سيل کي سيٽ ڪرڻ سان، ٽيب تي ڪلڪ ڪريو ڊيٽا (تاريخ)يا ٽيب تي طاقت جي طلب (جيڪڏهن توهان وٽ ايڪسل جو پراڻو ورجن آهي ۽ توهان پاور سوال کي هڪ الڳ ٽيب تي اضافو طور انسٽال ڪيو آهي) بٽڻ تي ٽيبل / حد کان (ٽيبل / رينج مان).

ريفرنس ٽيبل کي لوڊ ڪيو ويندو پاور سوال سوال ايڊيٽر ۾:

پاور سوال ۾ بلڪ ٽيڪسٽ متبادل List.Accumulate فنڪشن سان

مداخلت نه ڪرڻ لاء، هڪ خودڪار شامل ٿيل قدم تبديل ٿيل قسم (بدليل قسم) ساڄي پينل ۾، لاڳو ٿيل قدمن کي محفوظ طور تي ختم ڪري سگھجي ٿو، صرف قدم ڇڏيندي ذريعو (ذريعو):

پاور سوال ۾ بلڪ ٽيڪسٽ متبادل List.Accumulate فنڪشن سان

هاڻي، وڌيڪ تبديلين ۽ متبادل کي انجام ڏيڻ لاء، اسان کي هن ٽيبل کي هڪ فهرست (فهرست) ۾ تبديل ڪرڻو پوندو.

شعري تحرڪ

اڳتي وڌڻ کان اڳ، اچو ته پھريون اصطلاحن کي سمجھون. پاور سوال ڪيترن ئي قسمن جي شين سان ڪم ڪري سگھي ٿو:
  • جدول هڪ ٻه-dimensional صف آهي ڪيترن ئي قطارن ۽ ڪالمن تي مشتمل آهي.
  • رڪارڊ (رڪارڊ) - هڪ طرفي صف- اسٽرنگ، ڪيترن ئي شعبن تي مشتمل، نالن سان عناصر، مثال طور [نالو = "ماشا"، جنس = "f"، عمر = 25]
  • فهرست - هڪ هڪ-dimensional صف-کالم، ڪيترن ئي عنصرن تي مشتمل آهي، مثال طور {1، 2، 3، 10، 42} or { "ايمان اميد پيار" }

اسان جي مسئلي کي حل ڪرڻ لاء، اسان کي بنيادي طور تي قسم ۾ دلچسپي وٺندي فهرست.

هتي چال اها آهي ته پاور سوالن ۾ لسٽ شيون نه رڳو بنيادي نمبر يا متن ٿي سگهن ٿيون، پر ٻيون فهرستون يا رڪارڊ پڻ. اهو هڪ اهڙي مشڪل فهرست (فهرست) ۾ آهي، جنهن ۾ رڪارڊ (رڪارڊ) شامل آهن، جنهن کي اسان جي ڊاريڪٽري کي ڦيرائڻ جي ضرورت آهي. پاور سوالن جي نحوي نوٽيفڪيشن ۾ (اسڪوائر بریکٹس ۾ داخلائون، گھڙيل بریکٹس ۾ لسٽون) ھي نظر ايندو:

{

    [ ڳولهيو = "St. پيٽرسبرگ"، بدلي = "سينٽ. پيٽرسبرگ"] ,

    [ ڳولهيو = "St. پيٽرسبرگ"، بدلي = "سينٽ. پيٽرسبرگ"] ,

    [ ڳولهيو = "پيٽر"، بدلي = "سينٽ. پيٽرسبرگ"] ,

وغيره.

}

اهڙي تبديلي پاور سوال ۾ ٺهيل M ٻولي جي هڪ خاص فنڪشن کي استعمال ڪندي ڪئي ويندي آهي. ٽيبل. ToRecords. ان کي لاڳو ڪرڻ لاءِ سڌو فارمولا بار ۾، ھن فنڪشن کي شامل ڪريو اسٽيپ ڪوڊ ۾ ذريعو.

هي هيو:

پاور سوال ۾ بلڪ ٽيڪسٽ متبادل List.Accumulate فنڪشن سان

کان پوء

پاور سوال ۾ بلڪ ٽيڪسٽ متبادل List.Accumulate فنڪشن سان

Table.ToRecords فنڪشن کي شامل ڪرڻ کان پوء، اسان جي ٽيبل جي شڪل تبديل ٿي ويندي - اهو رڪارڊ جي فهرست ۾ تبديل ٿي ويندو. انفرادي رڪارڊ جا مواد ڪنهن به لفظ جي اڳيان سيل پس منظر ۾ ڪلڪ ڪري ڏسڻ واري پينل جي تري ۾ ڏسي سگهجن ٿا. دفتر (پر هڪ لفظ ۾ نه!)

مٿين کان علاوه، اسان جي ٺاهيل لسٽ کي ڪيش (بفر) ڪرڻ لاء هڪ وڌيڪ اسٽروڪ شامل ڪرڻ جو احساس آهي. اهو پاور سوال کي مجبور ڪندو ته اسان جي لوڪ اپ لسٽ کي هڪ ڀيرو ميموري ۾ لوڊ ڪري ۽ ان کي ٻيهر ڳڻپ نه ڪيو جڏهن اسان بعد ۾ ان کي تبديل ڪرڻ لاءِ رسائي ڪريون. هن کي ڪرڻ لاء، اسان جي فارمولا کي هڪ ٻئي فنڪشن ۾ لپي- فهرست. بفر:

پاور سوال ۾ بلڪ ٽيڪسٽ متبادل List.Accumulate فنڪشن سان

اهڙي ڪيشنگ جي رفتار ۾ تمام گهڻو نمايان اضافو ڏيندو (ڪيترائي ڀيرا!) وڏي مقدار ۾ شروعاتي ڊيٽا صاف ٿيڻ سان.

هي دستي ڪتاب جي تياري مڪمل ڪري ٿو.

ان تي ڪلڪ ڪرڻ باقي آهي گھر - بند ڪريو ۽ لوڊ ڪريو - بند ڪريو ۽ لوڊ ڪريو ... (گهر - بند ڪريو ۽ لوڊ ڪريو - بند ڪريو ۽ لوڊ ڪريو..)، هڪ اختيار چونڊيو بس هڪ ڪنيڪشن ٺاهيو (صرف ڪنيڪشن ٺاهيو) ۽ واپسي Excel ڏانهن.

قدم 2. ڊيٽا ٽيبل لوڊ ڪندي

هتي هر شيءِ سادو آهي. جيئن اڳي ئي ريفرنس بڪ سان، اسان ٽيبل جي ڪنهن به جڳهه تي وڃون ٿا، ٽيب تي ڪلڪ ڪريو ڊيٽا بٽڻ ٽيبل / رينج کان ۽ اسان جي ٽيبل ڊيٽا پاور سوال ۾ داخل ٿيو. خودڪار طور تي شامل ڪيل قدم تبديل ٿيل قسم (بدليل قسم) توھان پڻ ختم ڪري سگھو ٿا:

پاور سوال ۾ بلڪ ٽيڪسٽ متبادل List.Accumulate فنڪشن سان

ان سان گڏ ڪا خاص تياري ڪرڻ جي ضرورت نه آهي، ۽ اسان سڀ کان اهم شيء ڏانهن وڃو.

قدم 3. List.Accumulate فنڪشن استعمال ڪندي متبادل انجام ڏيو

اچو ته ڪمانڊ استعمال ڪندي اسان جي ڊيٽا ٽيبل تي حساب ڪيل ڪالم شامل ڪريون ڪالم شامل ڪرڻ - ڪسٽم ڪالمن (ڪالم شامل ڪريو - ڪسٽم ڪالم): ۽ ونڊو ۾ شامل ڪيل ڪالمن جو نالو داخل ڪريو جيڪو کلي ٿو (مثال طور، درست ايڊريس) ۽ اسان جو جادو فعل فهرست. جمع:

پاور سوال ۾ بلڪ ٽيڪسٽ متبادل List.Accumulate فنڪشن سان

ان تي ڪلڪ ڪرڻ باقي آهي OK - ۽ اسان هڪ ڪالم حاصل ڪريون ٿا متبادل سان گڏ:

پاور سوال ۾ بلڪ ٽيڪسٽ متبادل List.Accumulate فنڪشن سان

نوٽ ڪيو ته:

  • جيئن ته پاور ڪوئوري ​​ڪيس حساس آهي، ان ڪري ڪو به متبادل نه هو، ان سلسلي ۾ ڪو به متبادل نه آهي، ڇاڪاڻ ته ڊاريڪٽري ۾ اسان وٽ "SPb" آهي، نه "SPb".
  • جيڪڏهن ماخذ ڊيٽا ۾ هڪ ئي وقت تبديل ڪرڻ لاءِ ڪيترائي ذيلي اسٽرنگ آهن (مثال طور، 7هين لڪير ۾ توهان کي ”S-Pb“ ۽ ”Prospectus“ ٻنهي کي تبديل ڪرڻ جي ضرورت آهي)، ته پوءِ اهو ڪو مسئلو پيدا نٿو ڪري (جڏهن ته فارمولن سان تبديل ڪرڻ جي بدران. اڳوڻو طريقو).
  • جيڪڏهن ماخذ متن ۾ تبديل ڪرڻ لاء ڪجھ به نه آهي (9th لائن)، پوء ڪا به غلطي نه ٿيندي (برعڪس، ٻيهر، فارمولن جي بدلي کان).

اهڙي درخواست جي رفتار تمام، تمام مهذب آهي. مثال طور، شروعاتي ڊيٽا جي ٽيبل لاءِ 5000 قطارن جي سائيز سان، هي سوال هڪ سيڪنڊ کان به گھٽ وقت ۾ اپڊيٽ ڪيو ويو (بفرنگ کان سواءِ، رستي ۾، اٽڪل 3 سيڪنڊ!)

ڪيئن لسٽ.Accumulate فنڪشن ڪم ڪندو آهي

اصول ۾، هي ٿي سگهي ٿو آخر (منهنجي لکڻ لاء، ۽ توهان لاء پڙهڻ لاء) هي مضمون. جيڪڏھن توھان چاھيو ٿا ته نه رڳو قابل ٿي سگھن، پر سمجھو ته اھو ڪيئن ڪم ڪري ٿو "ھيڊ جي ھيٺان"، پوء توھان کي خرگوش جي سوراخ ۾ ٿورڙو اونڌو ڪرڻو پوندو ۽ فهرست سان ڊيل ڪرڻو پوندو. جمع ٿيل فنڪشن، جيڪو تمام گھڻو متبادل ڪيو. اسان لاء ڪم.

هن فنڪشن لاء نحو آهي:

= فهرست. جمع (فهرست, ٻج, جمع ڪندڙ)

جتي

  • فهرست اها فهرست آهي جنهن جا عنصر اسان ٻيهر ورجائي رهيا آهيون. 
  • ٻج - شروعاتي حالت
  • جمع ڪندڙ - ھڪڙو فنڪشن جيڪو ڪجھ عمل انجام ڏئي ٿو (رياضي، متن، وغيره) لسٽ جي ايندڙ عنصر تي ۽ ھڪڙي خاص متغير ۾ پروسيسنگ جو نتيجو گڏ ڪري ٿو.

عام طور تي، پاور سوال ۾ لکڻ جي فنڪشن لاء نحو هن طرح نظر اچي ٿو:

(argument1, argument2, … argumentN) => ڪجھ ڪارناما دليلن سان

مثال طور، سميشن فنڪشن کي نمائندگي ڪري سگهجي ٿو:

(a, b) => a + b

List.Accumulate لاءِ، هن جمع ڪندڙ فنڪشن ۾ ٻه گهربل دليل آهن (انهن کي ڪنهن به نالي سان سڏيو وڃي ٿو، پر عام نالا آهن. رياست и موجوده، جيئن هن فنڪشن لاءِ سرڪاري مدد ۾، جتي:

  • رياست - هڪ متغير جتي نتيجو جمع ڪيو ويو آهي (ان جي شروعاتي قيمت مٿي ڄاڻايل آهي ٻج)
  • موجوده - فهرست مان ايندڙ ورجائي ويل قيمت فهرست

مثال طور، اچو ته هيٺين تعمير جي منطق جي مرحلن تي هڪ نظر رکون:

= فهرست. جمع ({3، 2، 5}, 10, (رياست، موجوده) => رياست + موجوده)

  1. متغير قدر رياست ابتدائي دليل جي برابر مقرر ڪيو ويو آهي ٻجIe رياست = 10
  2. اسان لسٽ جو پهريون عنصر وٺون ٿا (موجوده = 3) ۽ ان کي variable ۾ شامل ڪريو رياست (ڏهه). اسان حاصل ڪريون ٿا رياست = 13.
  3. اسان لسٽ جو ٻيو عنصر وٺون ٿا (موجوده = 2) ۽ ان سان گڏوگڏ متغير ۾ موجوده جمع ڪيل قدر تائين رياست (ڏهه). اسان حاصل ڪريون ٿا رياست = 15.
  4. اسان لسٽ جو ٽيون عنصر وٺون ٿا (موجوده = 5) ۽ ان سان گڏوگڏ متغير ۾ موجوده جمع ڪيل قدر تائين رياست (ڏهه). اسان حاصل ڪريون ٿا رياست = 20.

اهو تازو جمع ٿيل آهي رياست قدر اسان جي فهرست آهي. جمع ٿيل فنڪشن ۽ نتيجي طور نتيجو:

پاور سوال ۾ بلڪ ٽيڪسٽ متبادل List.Accumulate فنڪشن سان

جيڪڏهن توهان ٿورو تصور ڪريو ٿا ته پوءِ List.Accumulate فنڪشن استعمال ڪندي، توهان نموني ڪري سگهو ٿا، مثال طور، ايڪسل فنڪشن CONCATENATE (پاور سوال ۾، ان جو اينالاگ سڏيو ويندو آهي. متن. گڏ ڪرڻ) اظهار استعمال ڪندي:

پاور سوال ۾ بلڪ ٽيڪسٽ متبادل List.Accumulate فنڪشن سان

يا وڌ ۾ وڌ قدر جي ڳولا ڪريو (ايڪسل جي MAX فنڪشن جي تقليد، جنهن کي پاور سوال ۾ سڏيو ويندو آهي فهرست. وڌ ۾ وڌ):

پاور سوال ۾ بلڪ ٽيڪسٽ متبادل List.Accumulate فنڪشن سان

بهرحال، List.Accumulate جي مکيه خصوصيت نه رڳو سادي متن يا عددي فهرستن کي دليلن جي طور تي پروسيس ڪرڻ جي صلاحيت آهي، پر وڌيڪ پيچيده شيون - مثال طور، فهرستن کان-فهرست يا فهرستن کان رڪارڊ (هيلو، ڊائريڪٽري!)

اچو ته ٻيهر تعمير تي نظر رکون جيڪو اسان جي مسئلي ۾ متبادل ڪيو:

فهرست. جمع (ھدايت نامو, [ايڊريس], (state,current) => Text.Replace(state, current[Find], current[Replace]) )

ڇا واقعي هتي ٿي رهيو آهي؟

  1. شروعاتي قدر جي طور تي (ٻج) اسان ڪالم مان پهريون بيڪار متن وٺون ٿا [ايڊريس] اسان جي ٽيبل: 199034، سينٽ پيٽرسبرگ، اسٽريٽ. برنگا، ڊي. 1
  2. پوءِ List.Accumulate لسٽ جي عناصرن تي هڪ هڪ ڪري ٻيهر ورجائي ٿو - هٿ وارو ڪتاب. هن لسٽ جو هر عنصر هڪ رڪارڊ آهي جنهن ۾ فيلڊ جي هڪ جوڙي تي مشتمل آهي "ڇا ڳولڻ لاء - ڇا سان تبديل ڪرڻ" يا، ٻين لفظن ۾، ڊاريڪٽري ۾ ايندڙ لائن.
  3. جمع ڪندڙ فنڪشن هڪ متغير ۾ رکي ٿو رياست ابتدائي قدر (پهريون پتو 199034، سينٽ پيٽرسبرگ، اسٽريٽ. برنگا، ڊي. 1) ۽ ان تي هڪ جمع ڪندڙ فنڪشن انجام ڏئي ٿو - معياري M-فنڪشن استعمال ڪندي متبادل آپريشن Text. Replace (Excel جي SUBSTITUTE فنڪشن جي مطابق). ان جو نحو آهي:

    Text.Replace (اصل متن، جيڪو اسان ڳولي رهيا آهيون، جيڪو اسان سان تبديل ڪري رهيا آهيون)

    ۽ هتي اسان وٽ آهي:

    • رياست اسان جو گندو پتو آهي، جيڪو اندر آهي رياست (جتان اچڻ ٻج)
    • موجوده[تلاش] - فيلڊ جي قيمت لهڻ لسٽ جي ايندڙ بار بار داخل ٿيڻ کان ھدايت نامو، جيڪو متغير ۾ آهي موجوده
    • موجوده[بدلجي] - فيلڊ جي قيمت سقراط لسٽ جي ايندڙ بار بار داخل ٿيڻ کان ھدايت نامواندر پيو موجوده

اهڙيء طرح، هر ايڊريس لاء، ڊاريڪٽري ۾ سڀني لائينن جي ڳڻپ جو هڪ مڪمل چڪر هر وقت هلندو آهي، [Find] فيلڊ مان ٽيڪسٽ کي [بدلائي] فيلڊ جي قيمت سان تبديل ڪندي.

اميد ته توهان کي اهو خيال ملي ويو هوندو 🙂

  • فارمولن کي استعمال ڪندي ھڪڙي فهرست ۾ متن تبديل ڪريو
  • پاور سوال ۾ باقاعده ايڪسپريس (RegExp)

جواب ڇڏي وڃو