এক্সেল শর্তসাপেক্ষ বিন্যাসের খণ্ডন


22

প্রায়শই আমি শর্তসাপেক্ষ বিন্যাস সহ একটি শীট তৈরি করি এবং সেল পরিসীমা সেট করে রাখি যাতে শর্তসাপেক্ষ বিন্যাসের নিয়মগুলি কেবলমাত্র একবারের জন্য বিভিন্ন কক্ষের জন্য প্রয়োগ করা হয়, যেমন

Make $A$1:$A$30 red and
Make $B$1:$B$30 blue.

বেশ কয়েকটি সারি এবং / বা কলামগুলি সন্নিবেশ / মুছে ফেলার পরে শর্তসাপেক্ষে বিন্যাসের সেটটি খুব বিভক্ত হয়ে যায়, একই বিধিগুলি বিভিন্ন ব্যাপ্তির জন্য পুনরাবৃত্তি করে। যেমন

Make $A$1:$A$2 red 
Make $A$3:$A$4 red 
Make $A$5:$A$9 red
Make $A$10:$A$20 red 
Make $A$21:$A$30 red
...
Make $B$1:$B$2 blue 
Make $B$3:$B$4 blue
Make $B$5:$B$9 blue
Make $B$10:$B$20 blue 
Make $B$21:$B$30 blue
....

এটি প্রতিরোধের কোনও ভাল অনুশীলন পদ্ধতি আছে, বা খুব অগোছালো হয়ে গেলে আমি নিজেই নিয়মটি সেট করে ফেলতে চাই?

উত্তর:


13

সারি সন্নিবেশ করা এবং মোছা শর্তসাপেক্ষ বিন্যাসকে খণ্ডিত করে না।

কারণটি হ'ল মানক অনুলিপি / পেস্ট ব্যবহার করে ঘর বা সারিগুলির মধ্যে অনুলিপি / আটকানো। সমাধানটি সর্বদা পেস্ট-মান বা পেস্ট-সূত্র ব্যবহার করা। গন্তব্যটিতে ডান ক্লিক করুন এবং আটকান বিকল্প বিভাগ 123 (মান) এবং চ (সূত্র) অফার করবে। ফর্ম্যাটটি অনুলিপি / পেস্ট করবেন না কারণ শর্তগুলি অনুলিপি / আটকানো হয় এবং কখনও কখনও সেগুলি খণ্ডিত হয়ে যায়।

আপনি যখন একটি স্ট্যান্ডার্ড অনুলিপি / পেস্ট করেন তা ঘরের শর্তসাপেক্ষ সূত্রগুলিও অনুলিপি করে। ধরা যাক আপনার দুটি বিধি রয়েছে:
1) $ এ $ 1: $ এ $ 30 রেড
2 তৈরি করুন) $ বি $ 1: $ বি $ 30 নীল তৈরি করুন
এখন A10: B10 নির্বাচন করুন এবং এটিকে A20: B20 এ অনুলিপি করুন / আটকান। এক্সেল যা করবে তা হ'ল A20: B20 এর শর্তসাপেক্ষ বিন্যাসগুলি মুছে ফেলা যা সেই কক্ষগুলিতে প্রযোজ্য বিধিগুলি থেকে এবং নতুন বিধিগুলিতে যুক্ত হয় যা A20: B20 এর ফর্ম্যাটিং রয়েছে। আপনি চারটি বিধি দ্বারা শেষ।
1) মেক = $ এ $ 20 রেড
2) মেক = $ বি $ 20 নীল
3) মেক = $ এ $ 1: $ এ $ 19, $ এ $ 21: $ এ $ 30 রেড
4) মেক = $ বি $ 1: $ বি $ 19, $ বি $ 21: $ B $ 30 নীল
আপনি যদি কেবল A10 তে A20 অনুলিপি / আটকানো হয়ে থাকেন তবে উত্স এবং গন্তব্য উভয় ক্ষেত্রেই একই নিয়ম প্রয়োগ হয়েছে এবং বিধিগুলি খণ্ডন না করে। আপনার অনুলিপি / পেস্ট দুটি বা ততোধিক শর্তসাপেক্ষ্য ফর্ম্যাটগুলিতে প্রভাব ফেললে কীভাবে খণ্ডন এড়ানো যায় তা নির্ধারণ করার জন্য এক্সেল যথেষ্ট স্মার্ট নয়।

সারি সন্নিবেশ করা এবং মোছার ফলে বিভাজন ঘটে না কারণ এক্সেল কেবলমাত্র শর্ত বিধিগুলি প্রসারিত বা সঙ্কুচিত করে যেখানে আপনি সারিটি সন্নিবেশ করিয়েছেন বা মোছার ক্ষেত্রটি কভার করেছেন।

কেউ $ Q $ 1: $ Q $ 30 এর পরিবর্তে $ Q: $ Q ব্যবহার করার পরামর্শ দিয়েছেন। এটি সাহায্য করে না এবং আপনি উপরে উল্লিখিত হিসাবে ঘর বিন্যাসটি অনুলিপি / পেস্ট করার সময় আপনি বিভাজন পাবেন।


আরও মনে রাখবেন যে কাট <কেবিডি> সিটিআরএল-এক্স <কেবিডি> সেল কাট থেকে শর্তসাপেক্ষ বিন্যাসটি মুছে ফেলবে (এখন সেলটির কোনও বিন্যাস নেই), এবং নতুন কক্ষে বিন্যাসটি পেস্ট করুন। আমি এখানে কাউকে বাজি ধরব কীভাবে এটি প্রতিরোধ করতে হয়?
ব্যবহারকারী5389726598465

@ ব্যবহারকারী135711 এটি আপনি যা করার চেষ্টা করছেন তার উপর নির্ভর করে। ডিফল্টরূপে, উভয় সূত্র, বিন্যাসকরণ এবং উত্স ঘর থেকে একই সরিয়ে কাটা সহ উত্স ঘরের লিঙ্কগুলি অনুলিপি করুন এবং কাটুন। যদি উদ্দেশ্যটি উত্স থেকে সূত্র / মানটি সরিয়ে ফেলা হয় তবে বিন্যাসটি রাখা হয় তবে আমি গন্তব্যে স্টাফটি অনুলিপি / পেস্ট করব এবং তারপরে উত্সটি মুছে ফেলব। মুছুন (ডেল কী) কেবল সূত্র বা মান সাফ করে। এটি ফরম্যাটিং এবং লিঙ্কগুলি জায়গায় রেখে দেয়।
ব্যবহারকারী3347790

1
এই প্রশ্নের অন্য সংস্করণে উত্তর হিসাবে চিহ্নিত (INDIRECT) ফাংশনটি কাজ করে না কারণ ক্ষেত্রের ক্ষেত্রে যেমন প্রয়োগ করা হয় ঠিক তেমনভাবে আপনি যখন সেলগুলিতে ম্যানুয়ালি প্রবেশ করিয়েছিলেন তখন সেগুলি সম্পর্কে মূল্যায়ন করা হয়।
ব্যবহারকারী5389726598465

superuser.com/a/1113566/79488 আপনি যদি অনুলিপি / পেজ ব্যবহার করেন তবে খণ্ডিত নিয়মগুলি পরিষ্কার করার জন্য একটি ভাল কাজ রয়েছে
ফ্যাবিয়ান শ্মিড

5

টেবিলের একটি কলামে শর্তসাপেক্ষ বিন্যাস প্রয়োগ করার সময় একই সমস্যা ছিল। সারি যুক্ত করার সময়, আমি পুরো কলামটিতে $A:$Aবা যে কোনও কলাম ব্যবহার করে নিয়মটি প্রয়োগ করা ভাল বলে মনে হয়েছে ।

এখানে চিত্র বর্ণনা লিখুন


আমার অভিজ্ঞতা অনুসারে, যখন কার্যপত্রকটি কিছুটা বড় হয়, এটি করার ফলে শর্তসাপেক্ষিক ফর্ম্যাটগুলি স্ফীত হয়ে যায় এবং গণনাগুলি ক্রল কমে যেতে পারে।
rohrl77

3

(এটি একটি কার্যতালিকা, তাই আমি এটি একটি মন্তব্য হিসাবে রেখেছিলাম, তবে আমার যথেষ্ট খ্যাতি নেই))

দুর্ভাগ্যক্রমে মনে হয় যে বিধিগুলি মেনে গেলে আপনি নিয়ম সেটগুলি সাফ করার জন্য বিনষ্ট হয়ে গেছেন।

এটি করার একটি সহজ উপায় হ'ল আপনার প্রয়োজনীয় ফর্ম্যাটিং যুক্ত ওয়ার্কশিট তৈরি করা, তবে কোনও ডেটা নেই। এটি আপনার মূল ওয়ার্কশিটের মতো একই ওয়ার্কবুকে বা কোনও টেম্পলেট হিসাবে আপনি রেখে যাওয়া অন্য কোনও কার্যপত্রে থাকতে পারে।

আপনার যখন পরিষ্কার করার দরকার হয় তখন এই ওয়ার্কশিটে যান, সমস্ত নির্বাচন করুন বোতামে ডান ক্লিক করুন , ফর্ম্যাট পেইন্টারটি নির্বাচন করুন, তারপরে আপনার মূল ওয়ার্কশিটে সমস্ত নির্বাচন করুন বোতামটি ক্লিক করুন। বিন্যাসগুলি অবিচ্ছিন্ন সংস্করণ দিয়ে ফর্ম্যাটগুলি ওভাররাইট করা হয়।


2

ম্যানুয়ালি সেলগুলি অনুলিপি / আটকানো / কাটা / সন্নিবেশ করানো সমস্যার কারণ এবং এটি এড়ানো শক্ত।

ভিবিএ ম্যাক্রোর মাধ্যমে সমস্যার সমাধান হয়েছে।

ম্যানুয়ালি সেলগুলি অনুলিপি / আটকানো / কাটা / সন্নিবেশ করার পরিবর্তে, আমি এটি এক্সেল ম্যাক্রোর মাধ্যমে করি, যা ঘর রেঞ্জগুলি সংরক্ষণ করে (একটি বোতামের মাধ্যমে সক্রিয় করা হয়)।

Sub addAndBtnClick()
    Set Button = ActiveSheet.Buttons(Application.Caller)
    With Button.TopLeftCell
        ColumnIndex = .Column
        RowIndex = Button.TopLeftCell.Row
    End With
    currentRowIndex = RowIndex
    Set Table = ActiveSheet.ListObjects("Table name")
    Table.ListRows.Add (currentRowIndex)
    Set currentCell = Table.DataBodyRange.Cells(currentRowIndex, Table.ListColumns("Column name").Index)
    currentCell.Value = "Cell value"
    Call setCreateButtons
End Sub

Sub removeAndBtnClick()
    Set Button = ActiveSheet.Buttons(Application.Caller)
    With Button.TopLeftCell
        ColumnIndex = .Column
        RowIndex = Button.TopLeftCell.Row
    End With
    currentRowIndex = RowIndex
    Set Table = ActiveSheet.ListObjects("Table name")
    Table.ListRows(currentRowIndex - 1).Delete
End Sub

Sub setCreateButtons()
    Set Table = ActiveSheet.ListObjects("Table name")
    ActiveSheet.Buttons.Delete
    For x = 1 To Table.Range.Rows.Count
        For y = 1 To Table.Range.Columns.Count

            If y = Table.ListColumns("Column name").Index Then
                Set cell = Table.Range.Cells(x, y)
                If cell.Text = "Some condition" Then
                    Set btn = ActiveSheet.Buttons.Add(cell.Left + cell.Width - 2 * cell.Height, cell.Top, cell.Height, cell.Height)
                    btn.Text = "-"
                    btn.OnAction = "removeAndBtnClick"
                    Set btn = ActiveSheet.Buttons.Add(cell.Left + cell.Width - cell.Height, cell.Top, cell.Height, cell.Height)
                    btn.Text = "+"
                    btn.OnAction = "addAndBtnClick"
                End If
            End If
        Next
    Next
End Sub

ফর্ম্যাটটি পুনরায় সেট করতে (আসলেই প্রয়োজন নেই):

Sub setCondFormat()
    Set Table = ActiveSheet.ListObjects("Table name")
    Table.Range.FormatConditions.Delete
    With Table.ListColumns("Column name").DataBodyRange.FormatConditions _
        .Add(xlExpression, xlEqual, "=ISTLEER(A2)") 'Rule goes here
        With .Interior
            .ColorIndex = 3 'Formatting goes here
        End With
    End With
    ...
End Sub

3
দয়া করে একাধিক প্রশ্নের একই উত্তর পোস্ট করবেন না। যদি একই তথ্য সত্যই উভয় প্রশ্নের উত্তর দেয়, তবে একটি প্রশ্ন (সাধারণত নতুন একটি) অন্যটির সদৃশ হিসাবে বন্ধ করা উচিত। আপনি এটি সদৃশ হিসাবে বন্ধ করতে ভোট দিয়ে ইঙ্গিত করতে পারেন বা যদি এর পক্ষে আপনার যথেষ্ট সুনাম না থাকে তবে এটি একটি সদৃশ এটি চিহ্নিত করতে একটি পতাকা বাড়াতে । অন্যথায় এই প্রশ্নের আপনার উত্তরটি শিখুন এবং একই উত্তরটি একাধিক জায়গায় পেস্ট করবেন না।
ডেভিডপস্টিল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.