আইএফ সূত্রটি সংক্ষিপ্ত করার জন্য সমাধান খুঁজছেন Looking


9

নিম্নলিখিত কাঠামোর সাথে আমার একটি দীর্ঘ সূত্র রয়েছে:

=IF(!X!<>0,!X!+A1,"")

কোথায় ! এক্স! একটি খুব দীর্ঘ সূত্র।

! এক্স পুনরাবৃত্তি এড়াতে কোন সমাধান আছে! দুইবার? আমার এটি দুটি কারণে প্রয়োজন:

  1. সূত্রটি শীটের ব্যবহারকারীর জন্য পঠনযোগ্য করে তোলা
  2. প্রক্রিয়া সময় কমাতে

আমি কোন সাহায্যের প্রশংসা করি।

ধন্যবাদ, ডিও


1
আপনি যদি চান To reduce the process timeতবে অবশ্যই ফলাফলটি আপনাকে অন্য কোথাও সংরক্ষণ করতে হবে, অন্যথায় শর্ত মেলে যখন এক্সেলকে আবার মানটি গণনা করতে হয়।
বিভাগটিও

2
শুধু কৌতূহলও, আপনি যতটা পারেন দীর্ঘ সূত্রটি "গল্ফ" করেছিলেন? এটি আরও সংক্ষিপ্ত করতে নামযুক্ত রেঞ্জ যুক্ত করতে চান?
ব্রুসওয়েেন

দীর্ঘ সূত্রটি আরও পঠনযোগ্য করতে, Alt + রিটার্ন ব্যবহার করে বিভিন্ন লাইনে যুক্তিগুলি পৃথক করুন। ব্যবহারকারীরা সূত্র বারের উচ্চতা প্রসারিত না করা অবধি একটি সূত্রটি সূত্রটি অসম্পূর্ণ দেখাচ্ছে।
ব্র্যাড স্মিথ

উত্তর:


12

আর একটি উপায় ডাবল বিপরীত ব্যবহার করা হয় :

=IFERROR(1/(1/really_long_formula)+A1,"")

যদি সত্যিকারের_লং_ফর্মুলা 0 তে মূল্যায়ন করে , আপনি শূন্য দ্বারা একটি বিভাজন পাবেন এবং এটি IFERROR()এটি ধরা ফেলবে!

দয়া করে নোট করুন যে এই প্রয়োজনটি পরিচালনা করার স্বাভাবিক উপায় (এবং সর্বোত্তম উপায়) হেল্পার সেল সহ is


7
এটি ভাসমান-পয়েন্ট বিভাগের কারণে হারিয়ে যাওয়া নির্ভুলতায় ভুগতে পারে
ফুলচলভি

3
@ LưuVĩnhPhúc আপনি সম্পূর্ণ সঠিক! AFH পদ্ধতির সবচেয়ে ভালো হয়!
গ্যারি এর শিক্ষার্থী

এটি একটি দুর্দান্ত, নোংরা কৌশল। আমি এটি ব্যবহার থেকে ভারী থেকে বিরত থাকব, তবে, একটি সর্বশেষ উপায় হিসাবে, কে জানে?
আন্ড্রে চেল্লা

3
দ্রষ্টব্য: এটি সত্য যে এখানে কিছু নির্ভুল ক্ষতি হতে পারে, তবে এটি খুব কমই কোনও প্রাসঙ্গিক সমস্যা হতে পারে। আমি এক্সলে 1/1/xএকাধিকবার 100,000 এলোমেলো সংখ্যার সাথে পরীক্ষা করেছি এবং সময়টির মাত্র 1.4% ছিল একটি গোলাকার ত্রুটি। আমি যে সর্বাধিক আপেক্ষিক ত্রুটিটি পেয়েছি তা হ'ল 1.6e-16, যা ভাল, কার্যকরভাবে শূন্য। এছাড়াও, আকর্ষণীয়ভাবে, পূর্ণসংখ্যাগুলি কখনই রাউন্ডিং ত্রুটিগুলি প্রদর্শন করে না (0 থেকে 1e14 পর্যন্ত কয়েকটি রেঞ্জ পরীক্ষা করা হয়)। সুতরাং, এই উত্তরটি বিশুদ্ধতা / পরিষ্কারতার দিক থেকে বিবেচনা করা যেতে পারে তবে ব্যবহারিক গণনার দিক থেকে নয়।
আন্ড্রে চেল্লা

1
গ্যরির সমাধানটি আমি সেরা হিসাবে খুঁজে পাই। প্রথম কারণ এটি পরিষ্কার (যেমন আন্দ্রেও উল্লেখ করেছেন) এবং অন্যান্য ব্যবহারকারীদের দ্বারা পঠনযোগ্য। দ্বিতীয়ত, কারণ এটি আমার প্রয়োজন সন্তুষ্ট করে। আমার জটিল বা দীর্ঘ পূর্ণসংখ্যা নেই। আমি আশা করি যে ব্যবহারকারীগণ, যারা এই পদ্ধতির চয়ন করেন তারা এই সমাধানটির উপকারিতা এবং কনস সম্পর্কে সচেতন হওয়ার জন্য মন্তব্যগুলি পড়েন।
ডিও

23

সুস্পষ্ট উত্তরটি হ'ল মূল শীট থেকে দূরে কোনও কার্য কক্ষে সূত্রে রাখা। উদাহরণস্বরূপ, আপনি যদি ব্যবহার করেন তবে H1এটিতে সেট করুন:

=!X!

আপনার সূত্রটি তখন পরিণত হয়:

=IF(H1<>0,H1+A1,"")

এটি অন্য যে কোনও প্রোগ্রামিং ভাষায় কী করবে তা সাধারণ।


আমার সাহায্যের কলাম যুক্ত করার সম্ভাবনা নেই। যাই হোক ধন্যবাদ.
ডিও

2
@ ডিও যদি এটি দেখার কথা না হয় তবে কলামটি কেবল আড়াল করুন। এমনকি পড়া সহজ করার জন্য আপনি কলাম / ব্যাপ্তির নামও দিতে পারেন
ফুক্লভিভি

4
@ ডিও - ঠিক আছে আপনার গৃহীত উত্তরটি বরং চতুর, তবে সচেতন থাকবেন যে, বৃত্তাকার কারণে আপনি নির্ভুলতা হারাতে পারেন ( 1/(1/x)সর্বদা ঠিক একই রকম হয় না x), বিশেষত যদি আপনি পূর্ণসংখ্যার ডেটা নিয়ে কাজ করছেন with এটি আরও সাধারণভাবে প্রযোজ্য নয় (যেমন শূন্যের চেয়ে কম পরীক্ষা করা)। (মন্তব্যটি গৃহীত উত্তরের নিচে @ লুভানফ্যাকের সাথে অতিক্রম করা হয়েছে))
এএফএইচ

আপনার পরামর্শ এবং মন্তব্যের জন্য ধন্যবাদ। এখনও নতুন পরামর্শ আছে কিনা তা দেখার জন্য আমি প্রশ্নটি এখনও উন্মুক্ত রেখে দেব।
ডিও

2
এটি দীর্ঘ সূত্রটি দেখতে সহায়ক হবে। একটি কার্যকরী সেল ছাড়াও, একটি কার্যপত্রকটিতে একটি সূত্র সম্বলিত একটি নাম নির্ধারণ করা সম্ভব
ডেটাতু

3

আপনার কি সত্য ""মিথ্যা মামলায় হওয়ার দরকার আছে? আপনার যদি কেবল ফাঁকা দেখতে কক্ষের প্রয়োজন হয় (যেমন আপনি =ISNUMBER()পরে এর মতো কিছু ব্যবহার করবেন না ), আপনি মিথ্যা ক্ষেত্রে বিষয়বস্তুগুলি আড়াল করতে শর্তযুক্ত বিন্যাস ব্যবহার করতে পারেন ।

শর্তসাপেক্ষ বিন্যাস আপনি সেল যাতে এটি প্রদর্শন করা হয় না করতে প্রয়োগ করব কিছু কাস্টম ফরম্যাট "", এই (এটা পর্তুগিজ কিন্তু আপনি ধারণা পেতে) -এর মত:

ফাঁকা ঘরগুলির জন্য কাস্টম বিন্যাস

কক্ষে সূত্রটি প্রত্যাশা মতো, সহজভাবে হবে =!X!+A1

শর্তসাপেক্ষ বিন্যাসের সূত্রটি হতে পারে =!X!=0তবে এটি পুনরায় গণনা করতে বাধ্য করবে !X!, যা আপনি চান না (আপনার "পয়েন্ট 2")। এটি ব্যবহার করে সেলটি নিজেই ব্যবহার করা ভাল =B1=A1(মনে করুন আমাদের সেলটি বি 1 ) - এটি বোঝাবে !X! = 0

এমনকি আপনার প্রকৃত কক্ষের সামগ্রী প্রয়োজন হলেও "", সাধারণত কার্যপত্রকটিতে ছোটখাটো পরিবর্তন করা যেতে পারে যাতে এই পদ্ধতির ব্যবহার করা যায়। যদি এটি হয় তবে পরিস্থিতি বর্ণনা করে একটি মন্তব্য করুন।


1

আমার সাহায্যের কলাম যুক্ত করার সম্ভাবনা নেই। যাই হোক ধন্যবাদ.

আপনি যদি কোনও সহায়ক কলাম যুক্ত করতে না পারেন তবে কেন একটি সম্পূর্ণ ওয়ার্কশিট যুক্ত করবেন না? এর বিভিন্ন সুবিধা রয়েছে:

  • আপনার সহায়ক সেলটি অন্যথায় ব্যবহৃত হতে পারে এমন স্থান গ্রহণ করবে না কারণ এটি একটি পৃথক ওয়ার্কশিটে রয়েছে।
  • আপনি ঘরে নাম লিখতে পারেন তারপর নাম দিয়ে এটি ঠিকানা করতে পারেন , যেমন=IF(X<>0,X+A1,"")
  • যদি আপনার একাধিক কক্ষে এটি করার দরকার হয় তবে আপনি এটি করতে পারেন:
    1. সহায়ক কার্যপত্রকটির নামকরণ করুন "সহায়ক"
    2. সহায়ক সমীকরণটিকে মূল সমীকরণের মতো একই কক্ষে রাখুন (আসুন আমরা এটি কল করি D5
    3. helper!D5মূল শীটের মতো কক্ষটি সম্বোধন করুন।
  • প্রয়োজনে সাহায্যকারী শীটটি লুকিয়ে রাখতে পারেন।
  • এটি দুবার মূল্যায়ন করার চেয়ে দ্রুত।
  • এটি নির্ভুলতা হারাবে না।

অসুবিধাগুলি আমি দেখতে পাচ্ছি:

  • আপনাকে মূল শীটে নামহীন কক্ষগুলি sheetname!D5কেবলমাত্র পরিবর্তে উল্লেখ করতে হবে D5
  • সূত্রটি একের পরিবর্তে দুটি অংশে রয়েছে।
  • ওয়ার্কশিট প্রসারণ

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


1
দুর্দান্ত উত্তর। অসুবিধাগুলি আমি দেখছি: ১. ব্যবহারকারীর পক্ষে গণনা সহজ করে তুলতে এটি খুব বেশি সাহায্য করে না , যেহেতু এখন থেকে বড় সূত্রটি লুকিয়ে রয়েছে। ২. অনেকগুলি ওয়ার্কবুক ইতিমধ্যে শীটের সাথে ভিড় করছে। এমনকি যদি আপনি এটি লুকিয়ে রাখেন তবে এটিকে লুকিয়ে রাখার জন্য আপনাকে প্রচুর গোপন শিটের মধ্য দিয়ে যেতে হবে। তা ছাড়া এটি একটি ভাল সমাধান।
আন্দ্রে চেল্লা

@ অ্যান্ড্রুনিভস এর জন্য ধন্যবাদ! প্রথমটি আমার কাছে ঘটেছিল তবে আমি অসুবিধাগুলি বিভাগটি লেখার সময় এটি ভুলে গিয়েছিলাম ।
wizzwizz4

1

একটি বিকল্প এখনও প্রস্তাবিত নয় একটি ব্যবহারকারী সংজ্ঞায়িত ফাংশন তৈরি করা হয়। আপনাকে মেনু বারে বিকাশকারী ট্যাব চালু করতে হবে (এটি গুগল) এবং একটি মডিউল তৈরি করতে হবে।

 public function udf_myCalc(ValueToAdd as double)
    dim myvar as double
    dim udf_myCalc as double
    myvar = .. put the logic of !X! in here

    if myvar<>0 then 
        udf_myCalc = myvar + ValueToAdd
    else
        udf_myCalc = ValueToAdd
    end if
 end function

সূত্র বারে আপনি তখন করবেন

=udf_myCalc(A1)

দ্রষ্টব্য: এটি এখন একটি .xlsx (ম্যাক্রো সহ) ফাইলে পরিণত হয়েছে এবং কোনও কর্পোরেট নেটওয়ার্কে অতিরিক্ত অনুমতি প্রয়োজন হতে পারে কারণ ম্যাক্রোগুলি দূষিত উদ্দেশ্যে ব্যবহার করা যেতে পারে এবং কিছু ইমেল ফিল্টার তাদেরকে ব্লক করে দেবে। ফাংশনগুলি অননুমোদিত তাই আপনার ফাংশনগুলি কী করছে সে সম্পর্কে আপনাকে নোট সরবরাহ করতে হবে এবং আমার সমস্ত ফাংশনগুলিকে udf_xxxxx কল করা আমার পক্ষে দরকারী মনে হয় যাতে এটি স্পষ্ট হয় যে এটি কোনও ফাংশনটি অন্তর্নির্মিত নয় function

ইউডিএফ সহ আরও কিছু GOTCHA রয়েছে। কিছু ভাল টিপসের জন্য এই লিঙ্কটি দেখুন http://www.decisionmodels.com/calcsecretsj.htm

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.