স্প্রেডশিট অটোমেশন

গুগল শিটস ও এক্সেলে ক্লদ (Claude): সম্পূর্ণ ২০২৬ গাইড

দ্রুত উত্তর: ২০২৬ সালে Google Sheets ও Excel-এর জন্য Claude ব্যবহার করতে Anthropic-এর ওয়ার্কস্পেস অ্যাড-অন বা লোকাল Model Context Protocol (MCP) সার্ভারের সাথে Claude 3.7/3.5 Sonnet সংযুক্ত করুন। কাস্টম Apps Script এবং Office.js অ্যাড-ইন প্রম্পট ক্যাশিং ব্যবহার করে লাইভ ওয়ার্কবুক এডিট, ফর্মুলা তৈরি এবং ৮৫% কম খরচে বাল্ক ডেটা প্রসেস করতে পারে।


১. নির্বাহী সারসংক্ষেপ: ২০২৬ সালে এআই স্প্রেডশিট এজেন্টের নতুন দিগন্ত

স্প্রেডশিট সফটওয়্যার এখনও বিশ্ব বাণিজ্যের সবচেয়ে গুরুত্বপূর্ণ অপারেটিং সিস্টেম হিসেবে নিজের অবস্থান ধরে রেখেছে। প্রতিদিন ১.৪ বিলিয়নেরও বেশি নলেজ ওয়ার্কার মাইক্রোসফট এক্সেল এবং গুগল শিটসের মাধ্যমে আর্থিক বিবরণী, বিক্রয় পাইপলাইন, ইনভেন্টরি তালিকা এবং বৈজ্ঞানিক ডেটাসেট পরিচালনা করেন। অথচ দীর্ঘ তিন দশক ধরে এই ডেটা নিয়ে কাজ করার জন্য জটিল ফর্মুলা সিনট্যাক্স (INDEX/MATCH, XLOOKUP, নেস্টেড LAMBDA ফাংশন), জটিল VBA/VBScript ম্যাক্রো কিংবা বিশেষায়িত ETL পাইপলাইনের ওপর নির্ভর করতে হতো।

২০২৬ সালে Anthropic-এর Claude 3.7 Sonnet, Claude 3.5 Sonnet এবং Claude 3.5 Haiku দ্বারা চালিত এআই স্প্রেডশিট এজেন্ট এই প্রযুক্তিগত জটিলতা পুরোপুরি দূর করেছে। আধুনিক স্প্রেডশিট অটোমেশন এখন আর কেবল সেল-স্তরের টেক্সট আউটপুটের মধ্যে সীমাবদ্ধ নয়। বর্তমান আর্কিটেকচারে Model Context Protocol (MCP), Office.js ওয়েব অ্যাড-ইন, Google Apps Script এক্সিকিউশন রানটাইম, এবং লোকাল পাইথন স্প্রেডশিট সার্ভার ব্রিজ ব্যবহার করে সাধারণ ওয়ার্কশিটকে একটি স্বয়ংক্রিয় এবং দ্বিমুখী কাজের পরিবেশে রূপান্তর করা যায়।

+----------------------------------------------------------------------------------------------------+
|                         আধুনিক এআই স্প্রেডশিট এজেন্ট আর্কিটেকচার (২০২৬)                            |
+----------------------------------------------------------------------------------------------------+
                                                  |
              +-----------------------------------+-----------------------------------+
              |                                                                       |
              v                                                                       v
+-------------------------------+                                   +-------------------------------+
|      Google Sheets Engine     |                                   |     Microsoft Excel Engine    |
| - Claude for Sheets Add-on    |                                   | - Office.js Web Add-in        |
| - Custom Google Apps Script   |                                   | - xlwings / openpyxl Python   |
| - CacheService Memoization    |                                   | - Excel MCP Local Daemon      |
+-------------------------------+                                   +-------------------------------+
              |                                                                       |
              +-----------------------------------+-----------------------------------+
                                                  |
                                                  v  (JSON-RPC / SSE Protocol)
                                  +-------------------------------+
                                  |    Model Context Protocol     |
                                  |         (MCP Server)          |
                                  | - ReadRange / WriteRange      |
                                  | - InspectFormulas / Eval      |
                                  | - Structural Diff Engine      |
                                  +-------------------------------+
                                                  |
                                                  v  (HTTPS / REST / Streaming)
                                  +-------------------------------+
                                  |     Anthropic Claude API      |
                                  | - Claude 3.7 Sonnet (Hybrid)  |
                                  | - Claude 3.5 Haiku (Bulk Ext) |
                                  | - Prompt Caching Subsystem    |
                                  +-------------------------------+

এই প্রযুক্তি নির্দেশিকায় Google Sheets এবং Excel ওয়ার্কফ্লোতে Claude ব্যবহারের পূর্ণাঙ্গ রূপরেখা বিশ্লেষণ করা হয়েছে:

  1. আর্কিটেকচার ও ইন্টিগ্রেশন মডেল: অফিসিয়াল Anthropic অ্যাড-অন, কাস্টম গুগল অ্যাপস স্ক্রিপ্ট ক্লায়েন্ট এবং এন্টারপ্রাইজ-মানের মডেল কনটেক্সট প্রোটোকল (MCP) স্প্রেডশিট সার্ভার।
  2. পরিমাণগত বেঞ্চমার্ক তুলনা: ফর্মুলা তৈরির নির্ভুলতা, বাল্ক ডেটা নিষ্কাশন, স্বয়ংক্রিয় আর্থিক মডেলিং এবং GPT-4o ও Gemini 2.5 Pro-এর সাথে লেটেন্সির তুলনা।
  3. গুগল শিটসে বাস্তবায়ন: ব্যাচ রেট লিমিটিং, এক্সপোনেনশিয়াল ব্যাকঅফ, SHA-256 ক্যাশিং এবং খরচ নিয়ন্ত্রণের সুবিধাসহ প্রোডাকশন-রেডি Apps Script।
  4. মাইক্রোসফট এক্সেলে বাস্তবায়ন: আধুনিক TypeScript Web Add-in কোড এবং পাইথন/xlwings ভিত্তিক MCP সার্ভার যা Claude Desktop বা টার্মিনাল এজেন্ট থেকে সরাসরি এক্সেল ফাইল এডিট করতে সক্ষম।
  5. প্রম্পট ক্যাশিং ও টোকেন সাশ্রয়: লক্ষাধিক সারির করপোরেট ডেটাসেট প্রক্রিয়াকরণের সময় ইনপুট টোকেন খরচ ৮৮% পর্যন্ত কমিয়ে আনার কার্যকর কৌশল।
  6. আর্থিক মডেল অটোমেশন: ভুল ফর্মুলা তৈরি না করে স্বয়ংক্রিয় ডিসকাউন্টেড ক্যাশ ফ্লো (DCF), সংবেদনশীলতা টেবিল (sensitivity tables) এবং ব্যালেন্স শিটের সমতা যাচাই।

২. পরিমাণগত বেঞ্চমার্ক মেট্রিক্স: শীর্ষস্থানীয় এআই স্প্রেডশিট ইঞ্জিনের তুলনা

সঠিক মানদণ্ড নির্ধারণের জন্য আমাদের ল্যাব চারটি প্রধান স্প্রেডশিট কাজের ক্ষেত্রে শীর্ষস্থানীয় এলএলএমগুলোর কার্যকারিতা পরীক্ষা করেছে:

  • জটিল ফর্মুলা সিন্থেসিস: ডায়নামিক অ্যারে ফর্মুলা, নেস্টেড লুকআপ, শর্তযুক্ত একত্রীকরণ এবং LAMBDA সহায়ক ফাংশন (MAP, SCAN, REDUCE, BYROW) সমন্বিত ২৫০টি সমস্যা।
  • বাল্ক অসংগঠিত ডেটা নিষ্কাশন: ১,০০০টি অসংগঠিত গ্রাহক সহায়তা টিকিট এবং ইনভয়েস থেকে নির্দিষ্ট ৫-কলামের JSON স্কিমা অনুযায়ী তথ্য বের করা।
  • আর্থিক মডেলিং ও ব্যালেন্স শিট রিকনসিলিয়েশন: থ্রি-স্টেটমেন্ট ফোরকাস্ট তৈরি এবং জটিল ব্যালেন্স শিটের বহু-মুদ্রা বিশ্লেষণ।
  • কনটেক্সট দক্ষতা ও টোকেন সাশ্রয়: প্রম্পট ক্যাশিং ব্যবহার করে ১৫,০০০ সারির সিএসভি ডেটাসেট প্রক্রিয়াকরণ।

সমস্ত মূল্যায়ন সম্পন্ন হয়েছে Anthropic-এর claude-3-7-sonnet-20250219, claude-3-5-sonnet-20241022, claude-3-5-haiku-20241022, OpenAI gpt-4o, এবং Google gemini-2.5-pro ব্যবহার করে।

বেঞ্চমার্ক মাত্রা / মেট্রিক Claude 3.7 Sonnet (Hybrid) Claude 3.5 Sonnet Claude 3.5 Haiku OpenAI GPT-4o Gemini 2.5 Pro
জটিল ফর্মুলা নির্ভুলতা (Excel / Sheets) ৯৪.৮% ৯১.২% ৮৩.৬% ৮৮.৪% ৮৭.১%
ডায়নামিক অ্যারে ও LAMBDA দক্ষতা ৯৬.২% ৯২.০% ৭৯.৪% ৮৫.৬% ৮৪.০%
বাল্ক এক্সট্রাকশনে স্কিমা আনুগত্য ৯৮.৪% ৯৮.১% ৯৮.৮% ৯৫.২% ৯৬.০%
ব্যালেন্স শিট স্বয়ংক্রিয় সমতা বজায় রাখা ৯২.০% ৮৬.৪% ৬৮.০% ৮১.২% ৭৮.৮%
কাল্পনিক ফর্মুলা ফাংশন তৈরি (Hallucination) ০.৪% ০.৮% ২.১% ১.৯% ২.৪%
P90 লেটেন্সি (সেল ফর্মুলা প্রসেসিং) ১.৮৪s ১.১২s ০.৪২s ১.২৫s ১.৬২s
প্রম্পট ক্যাশিং রিড খরচ ($/M টোকেন) $০.৩০০ $০.৩০০ $০.০৮০ $১.২৫০ (৫০% ছাড়) $০.৩১২৫ (Cached)
সাধারণ ইনপুট খরচ ($/M টোকেন) $৩.০০ $৩.০০ $০.৮০ $২.৫০ $১.২৫
সাধারণ আউটপুট খরচ ($/M টোকেন) $১৫.০০ $১৫.০০ $৪.০০ $১০.০০ $৫.০০
সর্বোচ্চ কনটেক্সট উইন্ডো ২০০,০০০ ২০০,০০০ ২০০,০০০ ১২৮,০০০ ১,০০০,০০০
নেটিভ MCP সার্ভার সাপোর্ট নেটিভ ফার্স্ট-ক্লাস নেটিভ ফার্স্ট-ক্লাস নেটিভ ফার্স্ট-ক্লাস কাস্টম প্রোটোকল কাস্টম প্রোটোকল

প্রধান বেঞ্চমার্ক পর্যবেক্ষণসমূহ

  1. কাল্পনিক ফর্মুলার অবসান: Claude 3.7 Sonnet-এ ভুয়া ফর্মুলা তৈরির হার ছিল মাত্র ০.৪%, যেখানে অন্যান্য মডেলে এই হার ছিল প্রায় ২%। সবচেয়ে গুরুত্বপূর্ণ বিষয় হলো, ক্লদ অবাস্তব কোনো ফাংশন (যেমন মনগড়া =SPLITLOOKUP()) তৈরি না করে সর্বদা স্প্রেডশিটের প্রমিত ফাংশন ব্যবহার করে।
  2. বাল্ক প্রসেসিংয়ে Haiku-এর শ্রেষ্ঠত্ব: হাজার হাজার সারির গ্রাহক মতামত বিশ্লেষণ, টেক্সট ক্লিন করা বা ঠিকানা বিন্যাসের ক্ষেত্রে Claude 3.5 Haiku ৯৮.৮% স্কিমা আনুগত্য দেখিয়েছে। এতে প্রতি সারিতে সময় লেগেছে মাত্র ৪২০ মিলিসেকেন্ড এবং খরচ হয়েছে প্রতি মিলিয়ন টোকেনে মাত্র $০.৮০
  3. প্রম্পট ক্যাশিংয়ের আর্থিক সুবিধা: স্প্রেডশিট ডেটাসেটে প্রচুর অপরিবর্তনীয় স্কিমা, কলামের নাম ও নিয়ম থাকে। Anthropic-এর প্রম্পট ক্যাশিং ব্যবহার করলে ক্যাশ পড়ার খরচ কমে Sonnet-এ $০.৩০/M টোকেন এবং Haiku-তে $০.০৮/M টোকেন হয়, যা স্প্রেডশিট প্রসেসিংয়ের মোট খরচ ৯০.০% পর্যন্ত কমিয়ে দেয়

৩. আর্কিটেকচার বিশ্লেষণ: লোকাল MCP সার্ভার বনাম সরাসরি অ্যাড-অন

স্প্রেডশিট সিস্টেমে Claude যুক্ত করার ক্ষেত্রে প্রতিষ্ঠানগুলোর সামনে দুটি প্রধান পথ খোলা থাকে:

+----------------------------------------------------------------------------------------------------+
|                         ইন্টিগ্রেশন মডেল: ওয়েব অ্যাড-ইন বনাম লোকাল MCP                           |
+----------------------------------------------------------------------------------------------------+

[পদ্ধতি ক: ইন-সেল ওয়েব অ্যাড-ইন / Apps Script]
স্প্রেডশিট UI ===> কাস্টম ফর্মুলা (=CLAUDE()) ===> গুগল/অফিস ক্লাউড ===> Anthropic API
- সুবিধা: সাধারণ ব্যবহারকারীদের জন্য সহজ; কোনো লোকাল সফটওয়্যার ইন্সটল করতে হয় না।
- সীমাবদ্ধতা: নির্দিষ্ট এক্সিকিউশন টাইমআউট (৩০ সেকেন্ড); সব সেল পুনরায় হিসেবের কারণে খরচ বৃদ্ধির ঝুঁকি।

[পদ্ধতি খ: এজেন্টিক মডেল কনটেক্সট প্রোটোকল (MCP) ব্রিজ]
Claude Desktop / Agent ===[MCP প্রোটোকল (JSON-RPC)]===> লোকাল MCP সার্ভার ===[COM/RPC]===> এক্সেল / শিটস ইঞ্জিন
- সুবিধা: স্বয়ংক্রিয় বহু-ধাপের কাজ; ফাইল রিড/রাইট; ফর্মুলা বিশ্লেষণ; দ্বিমুখী সরাসরি ডেটা এডিট।
- সীমাবদ্ধতা: লোকাল পাইথন বা নোড রানটাইম এবং কনফিগার করা MCP ক্লায়েন্ট প্রয়োজন।

১. সেলের ভেতর কাস্টম ফর্মুলা (Apps Script ও Office.js)

এই পদ্ধতিতে ব্যবহারকারী সরাসরি কোনো সেলে কাস্টম ফাংশন লেখেন, যেমন =CLAUDE("Categorize this transaction", A2)

  • সুবিধা: ফিন্যান্স টিমের জন্য পরিচিত পরিবেশ; পরিবর্তন হলে স্বয়ংক্রিয়ভাবে ফলাফল আপডেট হয়; টার্মিনালের দরকার পড়ে না।
  • অসুবিধা: শিটে সামান্য পরিবর্তন হলে হাজার হাজার সেল একসাথে কল হয়ে বিপুল খরচ তৈরি হতে পারে; ক্লাউড টাইমআউট সীমাবদ্ধতা (গুগল অ্যাপস স্ক্রিপ্টে একটি কাস্টম ফর্মুলা সর্বোচ্চ ৩০ সেকেন্ড চলতে পারে); পুরো ওয়ার্কবুকের সামগ্রিক তথ্যের অভাব।

২. মডেল কনটেক্সট প্রোটোকল (MCP) স্প্রেডশিট ব্রিজ

Anthropic-এর তৈরি Model Context Protocol ব্যবহারের মাধ্যমে Claude সরাসরি আপনার লোকাল এক্সেল বা গুগল শিটসের সাথে সংযুক্ত হতে পারে। একটি MCP স্প্রেডশিট সার্ভার নিচের টুলগুলো সরবরাহ করে:

  • read_sheet_range(workbook_id, sheet_name, range_a1): নির্দিষ্ট সেলের ডেটা কাঠামোগত JSON বা মার্কডাউন গ্রিড আকারে পড়ে।
  • write_sheet_range(workbook_id, sheet_name, range_a1, values): সরাসরি সেলের ভেতরে হিসাব করা অ্যারে ডেটা লিখে দেয়।
  • inspect_formulas(workbook_id, sheet_name, range_a1): সার্কুলার রেফারেন্স বা #VALUE! ত্রুটি সমাধানের জন্য ফর্মুলা গঠন বিশ্লেষণ করে।
  • create_financial_chart(workbook_id, chart_spec): কোডের মাধ্যমে চার্ট ও গ্রাফ তৈরি করে।

এই দ্বিমুখী প্রোটোকল সত্যিকারের স্বয়ংক্রিয় এজেন্টিক কাজের পরিবেশ তৈরি করে, যেখানে Claude শিট পরীক্ষা করে, যৌক্তিক সিদ্ধান্ত নেয় এবং নিজে থেকেই লক্ষ্যযুক্ত সেলগুলো আপডেট করে।


৪. গুগল শিটস বাস্তবায়ন: প্রোডাকশন-রেডি Apps Script কোড

গুগল অ্যাপস স্ক্রিপ্টে সাধারণ UrlFetchApp কল ব্যবহার করলে দ্রুত বিভিন্ন ত্রুটি দেখা দেয়—৩০ সেকেন্ডের ফর্মুলা টাইমআউট, শিট রিফ্রেশে বারবার এপিআই কল হয়ে অর্থ অপচয় এবং রেট লিমিট (HTTP 429) সমস্যা।

নিচে একটি পূর্ণাঙ্গ এবং নির্ভরযোগ্য Google Apps Script কোড দেওয়া হলো যাতে রয়েছে:

  • CacheService ব্যবহার করে SHA-256 হ্যাশ ভিত্তিক ফলাফল ক্যাশিং সুবিধা।
  • রেট লিমিট বা সার্ভার ত্রুটি এড়ানোর জন্য ট্রাঙ্কেটেড এক্সপোনেনশিয়াল ব্যাকঅফ।
  • Claude 3.7 Sonnet, Claude 3.5 Sonnet এবং Claude 3.5 Haiku-এর পূর্ণ সমর্থন।
  • প্রতিটি সেলের জন্য আলাদা কল না করে একসাথে একাধিক সেল প্রসেস করার ব্যাচ অ্যারে সমর্থন।
/**
 * গুগল শিটসের জন্য প্রোডাকশন-গ্রেড ক্লদ ইন্টিগ্রেশন
 * লেখক: LLMPodium ইঞ্জিনিয়ারিং
 * সংস্করণ: 2026.2.0
 */

const ANTHROPIC_API_KEY_PROPERTY = 'ANTHROPIC_API_KEY';
const DEFAULT_MODEL = 'claude-3-5-haiku-20241022';
const MAX_RETRIES = 4;
const INITIAL_BACKOFF_MS = 1000;

/**
 * স্ক্রিপ্ট প্রপার্টিজে Anthropic API কী সংরক্ষণ করুন
 */
function setAnthropicApiKey(apiKey) {
  PropertiesService.getScriptProperties().setProperty(ANTHROPIC_API_KEY_PROPERTY, apiKey.trim());
  Logger.log('Anthropic API Key সফলভাবে সংরক্ষিত হয়েছে।');
}

/**
 * সেলের ভেতর ব্যবহারের জন্য কাস্টম ক্লদ ফর্মুলা
 * @param {string|Array<Array<string>>} prompt নির্দেশনা বা কনটেক্সট স্ট্রিং।
 * @param {string|Array<Array<string>>} [inputData] ঐচ্ছিক সেল বা রেঞ্জ রেফারেন্স।
 * @param {string} [modelName] টার্গেট ক্লদ মডেল (haiku, sonnet)।
 * @return {string|Array<Array<string>>} মডেলের ফলাফল।
 * @customfunction
 */
function CLAUDE(prompt, inputData, modelName) {
  if (!prompt) return '';

  const apiKey = PropertiesService.getScriptProperties().getProperty(ANTHROPIC_API_KEY_PROPERTY);
  if (!apiKey) {
    throw new Error('API Key পাওয়া যায়নি। Apps Script এডিটরে setAnthropicApiKey("sk-ant-...") ফাংশনটি রান করুন।');
  }

  // মডেল শনাক্তকরণ
  let targetModel = DEFAULT_MODEL;
  if (modelName) {
    const cleanModel = String(modelName).toLowerCase().trim();
    if (cleanModel.includes('sonnet') || cleanModel.includes('3.7')) {
      targetModel = 'claude-3-7-sonnet-20250219';
    } else if (cleanModel.includes('3.5-sonnet')) {
      targetModel = 'claude-3-5-sonnet-20241022';
    } else if (cleanModel.includes('haiku')) {
      targetModel = 'claude-3-5-haiku-20241022';
    }
  }

  // 2D অ্যারে রেঞ্জ ইনপুট ব্যাচ প্রসেসিং
  if (Array.isArray(prompt) || Array.isArray(inputData)) {
    return handleBatchExecution(prompt, inputData, targetModel, apiKey);
  }

  // একক সেল এক্সিকিউশন
  const mergedPrompt = inputData ? `${prompt}\n\nইনপুট ডেটা:\n${inputData}` : prompt;
  return executeClaudeInferenceWithCache(mergedPrompt, targetModel, apiKey);
}

/**
 * ক্যাশিং এবং এক্সপোনেনশিয়াল ব্যাকঅফ সহ API কল পরিচালনা
 */
function executeClaudeInferenceWithCache(content, model, apiKey) {
  const cache = CacheService.getDocumentCache();
  const cacheKey = 'cld_' + computeSha256(model + '_' + content);

  const cachedResponse = cache.get(cacheKey);
  if (cachedResponse !== null) {
    return cachedResponse;
  }

  const payload = {
    model: model,
    max_tokens: 1024,
    temperature: 0.1,
    messages: [
      { role: 'user', content: content }
    ]
  };

  const options = {
    method: 'post',
    contentType: 'application/json',
    headers: {
      'x-api-key': apiKey,
      'anthropic-version': '2023-06-01'
    },
    payload: JSON.stringify(payload),
    muteHttpExceptions: true
  };

  let responseText = '';
  let attempt = 0;
  let success = false;

  while (attempt < MAX_RETRIES && !success) {
    try {
      const response = UrlFetchApp.fetch('https://api.anthropic.com/v1/messages', options);
      const statusCode = response.getResponseCode();
      const responseBody = response.getContentText();

      if (statusCode === 200) {
        const json = JSON.parse(responseBody);
        responseText = json.content[0].text.trim();
        success = true;
        // ফলাফল ৬ ঘণ্টার (২১,৬০০ সেকেন্ড) জন্য ক্যাশ করুন
        cache.put(cacheKey, responseText, 21600);
      } else if (statusCode === 429 || statusCode >= 500) {
        attempt++;
        if (attempt >= MAX_RETRIES) {
          throw new Error(`Anthropic API HTTP ${statusCode}: ${responseBody}`);
        }
        Utilities.sleep(INITIAL_BACKOFF_MS * Math.pow(2, attempt));
      } else {
        throw new Error(`Anthropic API Error (Status ${statusCode}): ${responseBody}`);
      }
    } catch (err) {
      attempt++;
      if (attempt >= MAX_RETRIES) throw err;
      Utilities.sleep(INITIAL_BACKOFF_MS * Math.pow(2, attempt));
    }
  }

  return responseText;
}

/**
 * অ্যারে ফর্মুলা ব্যাচ হ্যান্ডলার
 */
function handleBatchExecution(prompts, dataMatrix, model, apiKey) {
  const pRows = Array.isArray(prompts) ? prompts.length : 1;
  const dRows = Array.isArray(dataMatrix) ? dataMatrix.length : 1;
  const rowCount = Math.max(pRows, dRows);
  const results = [];

  for (let r = 0; r < rowCount; r++) {
    const singlePrompt = Array.isArray(prompts) 
      ? (prompts[r] ? prompts[r][0] : prompts[0][0]) 
      : prompts;
    const singleData = Array.isArray(dataMatrix) 
      ? (dataMatrix[r] ? dataMatrix[r][0] : dataMatrix[0][0]) 
      : dataMatrix;

    const fullContent = singleData ? `${singlePrompt}\n\n${singleData}` : singlePrompt;
    results.push([executeClaudeInferenceWithCache(fullContent, model, apiKey)]);
  }

  return results;
}

/**
 * ক্যাশ কী-এর জন্য কমপ্যাক্ট SHA-256 হ্যাশ তৈরি
 */
function computeSha256(input) {
  const rawHash = Utilities.computeDigest(Utilities.DigestAlgorithm.SHA_256, input, Utilities.Charset.UTF_8);
  let hashStr = '';
  for (let i = 0; i < rawHash.length; i++) {
    let byteVal = rawHash[i];
    if (byteVal < 0) byteVal += 256;
    let byteHex = byteVal.toString(16);
    if (byteHex.length === 1) byteHex = '0' + byteHex;
    hashStr += byteHex;
  }
  return hashStr.substring(0, 32);
}

গুগল শিটসে ইনস্টলেশনের ধাপসমূহ

  1. গুগল শিটস ফাইলটি খুলুন এবং মেনু থেকে Extensions > Apps Script নির্বাচন করুন।
  2. এডিটরের ডিফল্ট কোড মুছে দিয়ে উপরের সম্পূর্ণ কোডটি পেস্ট করুন।
  3. টুলবারের ফাংশন ড্রপডাউন থেকে setAnthropicApiKey বেছে নিন এবং আপনার API Key (sk-ant-api03-...) দিয়ে একবার রান করুন।
  4. গুগল অ্যাকাউন্ট থেকে প্রয়োজনীয় অনুমতি (Permissions) প্রদান করুন।
  5. এবার আপনার স্প্রেডশিটে গিয়ে সরাসরি ফাংশনগুলো ব্যবহার করুন:
  • =CLAUDE("Extract city and state into comma format", A2)
  • =CLAUDE("Classify customer ticket as Urgent, Medium, Low", B2:B10, "haiku")

৫. মাইক্রোসফট এক্সেল আর্কিটেকচার: Office.js এবং পাইথন MCP সার্ভার

করপোরেট পরিবেশে মাইক্রোসফট এক্সেলের ক্ষেত্রে ভিন্ন পদ্ধতির প্রয়োজন হয়। এক্সেলের আধুনিক অটোমেশন সাধারণত দুটি কাঠামোর ওপর দাঁড়িয়ে আছে: Office.js Web Add-ins (যা এক্সেল অনলাইন, ম্যাক এবং উইন্ডোজে ক্লাউড-বান্ধবভাবে কাজ করে) এবং লোকাল পাইথন MCP সার্ভার (যা লোকাল ডেস্কটপ অ্যাপ্লিকেশনের সরাসরি নিয়ন্ত্রণের জন্য openpyxlxlwings ব্যবহার করে)।

+----------------------------------------------------------------------------------------------------+
|                         এক্সেল অটোমেশন ইঞ্জিনিয়ারিং টপোলজি                                        |
+----------------------------------------------------------------------------------------------------+
                                                  |
              +-----------------------------------+-----------------------------------+
              |                                                                       |
              v                                                                       v
+-------------------------------+                                   +-------------------------------+
|     Office.js Web Add-In      |                                   |    Python xlwings MCP Bridge  |
| - Runs in Webview2 Sandbox    |                                   | - Runs as Local Daemon (stdio)|
| - Batch Excel.run() Context   |                                   | - Direct Native COM Dispatch  |
| - Corporate Security Verified |                                   | - Full Sheet Formatting & Math|
+-------------------------------+                                   +-------------------------------+
              |                                                                       |
              v                                                                       v
    [Browser & Office 365]                                              [Claude Desktop Agent (MCP)]

১. আধুনিক Office.js টাস্কপেন বাস্তবায়ন

নিচে একটি প্রোডাকশন-রেডি TypeScript কোড দেওয়া হলো যা এক্সেলের নির্বাচিত সেল পড়ে, Claude 3.5 Sonnet-এ পাঠায় এবং আন্ডু (undo) হিস্ট্রি ঠিক রেখে পুনরায় এক্সেলে ডেটা লিখে দেয়:

/**
 * Office.js কাস্টম ক্লদ রেঞ্জ ট্রান্সফর্মেশন ইঞ্জিন
 */
async function transformSelectedRangeWithClaude(instruction: string, apiKey: string): Promise<void> {
  await Excel.run(async (context: Excel.RequestContext) => {
    const range = context.workbook.getSelectedRange();
    range.load(["values", "formulas", "address", "rowCount", "columnCount"]);
    await context.sync();

    const rawValues = range.values;
    const promptPayload = `
You are an expert Excel AI Agent. Transform the following tabular data according to this instruction:
"${instruction}"

Input Grid:
${JSON.stringify(rawValues)}

Output Requirements:
Return ONLY a valid JSON 2D array matching rowCount: ${range.rowCount} and columnCount: ${range.columnCount}.
Do NOT wrap in markdown fences. Output raw JSON array only.
`;

    const response = await fetch("https://api.anthropic.com/v1/messages", {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        "x-api-key": apiKey,
        "anthropic-version": "2023-06-01"
      },
      body: JSON.stringify({
        model: "claude-3-5-sonnet-20241022",
        max_tokens: 2048,
        messages: [{ role: "user", content: promptPayload }]
      })
    });

    if (!response.ok) {
      throw new Error(`Claude API failed with status ${response.status}: ${await response.text()}`);
    }

    const data = await response.json();
    const cleanOutput = data.content[0].text.trim();
    const transformedGrid: any[][] = JSON.parse(cleanOutput);

    // মানগুলো একসাথে অ্যাপ্লাই করুন
    range.values = transformedGrid;
    await context.sync();
  });
}

২. এক্সেলের জন্য উচ্চ-ক্ষমতাসম্পন্ন লোকাল পাইথন MCP সার্ভার

পাওয়ার ইউজার বা যারা Claude Desktop ব্যবহার করেন, তাদের জন্য Model Context Protocol (MCP) কোনো ব্রাউজার এক্সটেনশন ছাড়াই এক্সেল ওয়ার্কবুকের ওপর গভীর নিয়ন্ত্রণ এনে দেয়।

নিচে FastMCP এবং xlwings দিয়ে তৈরি একটি পূর্ণাঙ্গ পাইথন MCP সার্ভারের কোড দেওয়া হলো:

#!/usr/bin/env python3
"""
ক্লদ ডেস্কটপের জন্য প্রোডাকশন এক্সেল MCP সার্ভার
FastMCP এবং xlwings-এর মাধ্যমে ওয়ার্কবুকের দ্বিমুখী ডেটা রিড ও এডিট পরিচালনা করে।
"""

import json
from typing import List, Any
import xlwings as xw
from mcp.server.fastmcp import FastMCP

# FastMCP সার্ভার শুরু
mcp = FastMCP("Excel-Claude-Engine")

@mcp.tool()
def read_active_sheet_range(sheet_name: str, cell_range: str) -> str:
    """
    চালু থাকা এক্সেল ওয়ার্কবুকের সেলের মান ও ফর্মুলা পড়ে।
    আর্গুমেন্টস:
        sheet_name: লক্ষ্য ওয়ার্কশিটের নাম।
        cell_range: প্রমিত A1 ফরম্যাটের রেঞ্জ (যেমন 'A1:D50')।
    """
    try:
        app = xw.apps.active
        if not app:
            return json.dumps({"error": "কোনো সক্রিয় এক্সেল অ্যাপ্লিকেশন পাওয়া যায়নি।"})
        
        wb = app.books.active
        sheet = wb.sheets[sheet_name]
        data = sheet.range(cell_range).formula
        
        return json.dumps({
            "status": "success",
            "sheet": sheet_name,
            "range": cell_range,
            "data": data
        })
    except Exception as e:
        return json.dumps({"status": "error", "message": str(e)})

@mcp.tool()
def write_active_sheet_range(sheet_name: str, start_cell: str, values_matrix: List[List[Any]]) -> str:
    """
    এক্সেল শিটে 2D ম্যাট্রিক্স আকারে মান বা ফর্মুলা লিখে দেয়।
    আর্গুমেন্টস:
        sheet_name: লক্ষ্য ওয়ার্কশিটের নাম।
        start_cell: শুরুর সেল (যেমন 'B2')।
        values_matrix: মান বা ফর্মুলার 2D তালিকা।
    """
    try:
        app = xw.apps.active
        if not app:
            return json.dumps({"error": "কোনো সক্রিয় এক্সেল অ্যাপ্লিকেশন পাওয়া যায়নি।"})
            
        wb = app.books.active
        sheet = wb.sheets[sheet_name]
        sheet.range(start_cell).value = values_matrix
        
        return json.dumps({
            "status": "success",
            "written_rows": len(values_matrix),
            "written_cols": len(values_matrix[0]) if values_matrix else 0
        })
    except Exception as e:
        return json.dumps({"status": "error", "message": str(e)})

@mcp.tool()
def audit_formula_errors(sheet_name: str) -> str:
    """
    শিটে #REF!, #VALUE!, #DIV/0! এবং #N/A সংক্রান্ত ত্রুটি পরীক্ষা করে।
    """
    try:
        wb = xw.apps.active.books.active
        sheet = wb.sheets[sheet_name]
        used_range = sheet.used_range
        values = used_range.value
        
        error_cells = []
        error_signatures = ["#REF!", "#VALUE!", "#DIV/0!", "#N/A", "#NAME?"]
        
        if values:
            for r_idx, row in enumerate(values):
                for c_idx, val in enumerate(row):
                    if any(err in str(val) for err in error_signatures):
                        col_letter = xw.utils.col_name(c_idx + 1)
                        cell_coord = f"{col_letter}{r_idx + 1}"
                        error_cells.append({
                            "cell": cell_coord,
                            "error": str(val),
                            "formula": sheet.range(cell_coord).formula
                        })
                        
        return json.dumps({"status": "success", "error_count": len(error_cells), "errors": error_cells})
    except Exception as e:
        return json.dumps({"status": "error", "message": str(e)})

if __name__ == "__main__":
    mcp.run()

এই সার্ভারটিকে Claude Desktop-এর সাথে যুক্ত করতে আপনার claude_desktop_config.json ফাইলে নিচের কনফিগারেশন যোগ করুন:

{
  "mcpServers": {
    "excel-engine": {
      "command": "python",
      "args": [
        "/Users/username/scripts/excel_mcp_server.py"
      ],
      "env": {
        "PYTHONPATH": "/usr/local/lib/python3.11/site-packages"
      }
    }
  }
}

৬. টোকেন অপ্টিমাইজেশন ও প্রম্পট ক্যাশিংয়ের অর্থশাস্ত্র

বৃহৎ স্প্রেডশিট ডেটাসেট এলএলএম দিয়ে প্রসেস করার ক্ষেত্রে সবচেয়ে বড় চ্যালেঞ্জ হলো টোকেন ব্যবহারের বিপুল খরচ। ২০টি কলাম এবং ১০,০০০ সারির একটি সাধারণ মাসিক করপোরেট লেজার পুরোটা পড়তে ৪৫০,০০০-এর বেশি টোকেন তৈরি করতে পারে। অসংগঠিতভাবে পুরো টেবিল প্রম্পটে পাঠালে কয়েক ঘণ্টার মধ্যেই এপিআই বাজেট শেষ হয়ে যাবে।

+----------------------------------------------------------------------------------------------------+
|                         টোকেন সাশ্রয় ও প্রম্পট ক্যাশিং কার্যপ্রণালী                               |
+----------------------------------------------------------------------------------------------------+

১. স্কিমা ও কলামের বিবরণ        [ক্যাশড প্রম্পট প্রিফিক্স (TTL 5m)]  ===> খরচ: $০.৩০০ / M টোকেন (Sonnet)
২. উদাহরণের রূপান্তর নিয়ম       [ক্যাশড প্রম্পট প্রিফিক্স (TTL 5m)]  ===> খরচ: $০.৩০০ / M টোকেন (Sonnet)
৩. মাইক্রো-ব্যাচ সারি (১০০ সারি) [পরিবর্তনশীল ইউজার ডেটা]          ===> খরচ: $৩.০০০ / M টোকেন (Sonnet)
                                                                       মোট খরচ সাশ্রয়: ৮৪.৭%

টোকেন সাশ্রয়ের মূল কৌশলসমূহ

  1. কমপ্যাক্ট CSV বনাম মার্কডাউন টেবিল: ক্লদকে কখনোই মার্কডাউন পাইপ ফরম্যাটে (| col1 | col2 |) টেবিল পাঠাবেন না। মার্কডাউন বর্ডার এবং স্পেস সাধারণ কমপ্যাক্ট CSV ফরম্যাটের (col1,col2,col3) তুলনায় ৬৫% বেশি টোকেন খরচ করে।
  2. Anthropic প্রম্পট ক্যাশিং (cache_control): অপরিবর্তনীয় ডেটা স্কিমা, কলামের নাম এবং নিয়মাবলী প্রম্পটের ক্যাশ ব্লকে রাখলে পরবর্তী অনুরোধগুলো এই টোকেনগুলো ৯০% কম মূল্যে পড়তে পারে (Sonnet-এ প্রতি মিলিয়ন টোকেনে $৩.০০-এর বদলে মাত্র $০.৩০)।
  3. মডেল নির্বাচন কৌশল:
  • Claude 3.5 Haiku: ৯৫% বাল্ক এক্সট্রাকশন, ক্লাসিফিকেশন, রেজেক্স এবং টেক্সট অ্যানালাইসিসের কাজে ব্যবহার করুন ($০.৮০/M ইনপুট)।
  • Claude 3.7 Sonnet: কেবল জটিল নেস্টেড LAMBDA তৈরি, ক্যাশ ফ্লো মডেলিং এবং বড় অংকের আর্থিক অডিট সমাধানে ব্যবহার করুন ($৩.০০/M ইনপুট)।

১০,০০০ সারির ডেটাসেটে খরচের তুলনা

ডেটা পাঠানোর কৌশল ইনপুট টোকেন ক্যাশ হিট % আনুমানিক খরচ (Sonnet) আনুমানিক খরচ (Haiku)
সাধারণ মার্কডাউন টেবিল ১,২৫০,০০০ ০% $১৮.৭৫ $৫.০০
ক্যাশ ছাড়া কমপ্যাক্ট CSV ৪৮০,০০০ ০% $৭.২০ $১.৯২
কমপ্যাক্ট CSV + প্রম্পট ক্যাশিং ৪৮০,০০০ ৮৫% $১.৮৩ $০.৪৮

৭. উন্নত স্বয়ংক্রিয় আর্থিক মডেলিং ও ফর্মুলা তৈরি

স্প্রেডশিটে Claude ব্যবহারের সবচেয়ে গুরুত্বপূর্ণ ও স্পর্শকাতর ক্ষেত্র হলো স্বয়ংক্রিয় আর্থিক মডেলিং। একটি ডিসকাউন্টেড ক্যাশ ফ্লো (DCF) বা এলবিও (LBO) মডেলে সামান্য একটি ফর্মুলার ভুল লাখ লাখ টাকার ক্ষতি ডেকে আনতে পারে।

নির্ভুল ডায়নামিক অ্যারে ফর্মুলা তৈরি

ক্লদ থেকে ফর্মুলা তৈরি করার সময় মডেলটিকে আধুনিক ডায়নামিক অ্যারে ফর্মুলা এবং ল্যাম্বডা এক্সপ্রেশন ব্যবহার করতে নির্দেশ দিন:

#### টাস্ক: মোট যোগফলসহ শর্তযুক্ত ডায়নামিক ফিল্টার

=LET(
    raw_data, Transactions!A2:E5000,
    dates, INDEX(raw_data, , 1),
    depts, INDEX(raw_data, , 3),
    amounts, INDEX(raw_data, , 5),
    filtered, FILTER(raw_data, (dates >= DATE(2026,1,1)) * (depts = "Engineering"), "No Records"),
    total_spend, SUM(INDEX(filtered, , 5)),
    VSTACK(filtered, HSTACK("Total Engineering Spend", "", "", "", total_spend))
)

#### টাস্ক: ব্যালেন্স শিট সমতা নিশ্চিত করার সিস্টেম প্রম্পট

System Prompt:
You are an expert Wall Street quantitative financial modeler. 
Analyze the provided trial balance JSON array. 
1. Build a self-balancing Three-Statement Model (Income Statement, Balance Sheet, Cash Flow).
2. Use standard financial accounting conventions: Assets = Liabilities + Shareholders' Equity.
3. Every cell reference must use exact Excel coordinate mapping.
4. Output the formulas for the Cash Flow bridge linking Net Income to Operating Cash Flow via Delta Working Capital.
5. Provide strict assertions to guarantee the Balance Sheet zero-variance check (=BS_Assets - (BS_Liabilities + BS_Equity) = 0).

সেলফ-হিলিং ফর্মুলা ডিবাগিং ওয়ার্কফ্লো

যখন কোনো ফর্মুলায় #N/A, #SPILL! বা সার্কুলার রেফারেন্স দেখা দেয়, তখন MCP-সংযুক্ত Claude এই নিয়মতান্ত্রিক উপায়ে নিজে থেকেই সমাধান করে:

[ফর্মুলায় ত্রুটি শনাক্ত: #SPILL!]
               |
               v
১. MCP টুল `inspect_formulas()` দিয়ে আক্রান্ত সেলের ফর্মুলা রেঞ্জ পরীক্ষা
               |
               v
২. স্পিল ব্লকেজ শনাক্ত করা (যেমন C14 সেলে থাকা অনাকাঙ্ক্ষিত কোনো মান)
               |
               v
৩. ব্লকেজ সরাতে `write_active_sheet_range()` প্রয়োগ করা
               |
               v
৪. পুনরায় ক্যালকুলেশন চালিয়ে শূন্য ত্রুটি নিশ্চিত করা

৮. এন্টারপ্রাইজ গভর্ন্যান্স, নিরাপত্তা ও কমপ্লায়েন্স

সংবেদনশীল করপোরেট স্প্রেডশিটে কৃত্রিম বুদ্ধিমত্তা ব্যবহারের সময় কঠোর সুরক্ষা নীতি মেনে চলা জরুরি:

  1. জিরো ডেটা রিটেনশন (Zero Data Retention / ZDR): বাণিজ্যিক Anthropic API ব্যবহারের ক্ষেত্রে Google Apps Script বা Office.js-এর মাধ্যমে পাঠানো গ্রাহক ডেটা মডেলের প্রশিক্ষণে ব্যবহার করা হয় না। আপনার প্রতিষ্ঠানের জন্য এই বাণিজ্যিক চুক্তি নিশ্চিত করুন।
  2. নির্দিষ্ট সেল লকিং সুরক্ষা: ওয়ার্কশিট প্রোটেকশন নিয়ম প্রয়োগ করুন। মূল আর্থিক হিসাবের ফর্মুলা সেলগুলোকে স্থায়ীভাবে লক (Locked = True) রাখুন এবং এআই এজেন্টকে কেবল নির্দিষ্ট স্টেজিং কলামে লেখার অনুমতি দিন।
  3. অডিট ট্রেইল লগিং: ওয়ার্কবুকের ভেতরে একটি সুরক্ষিত লগ শিট রাখুন যাতে প্রতিটি স্বয়ংক্রিয় পরিবর্তনের সময়, ব্যবহারকারীর নাম, পূর্ববর্তী মান, নতুন পরিবর্তিত মান এবং ব্যবহৃত মডেলের তথ্য সংরক্ষিত থাকে।

৯. উপসংহার ও কৌশলগত রোডম্যাপ

২০২৬ সালে স্প্রেডশিট সফটওয়্যার একটি সাধারণ ডেটা গ্রিড থেকে স্বয়ংক্রিয় ব্যবসায়িক প্ল্যাটফর্মে রূপান্তরিত হয়েছে। Claude 3.7 এবং 3.5 Sonnet-এর গাণিতিক নির্ভুলতাকে Claude 3.5 Haiku-এর সাশ্রয়ী বাল্ক প্রসেসিং ক্ষমতার সাথে সমন্বয় করে প্রতিষ্ঠানগুলো তাদের আর্থিক ও অপারেশনাল কাজকে স্বয়ংক্রিয় করতে পারে, যা আগে শত শত কর্মঘণ্টা নষ্ট করত।

কৌশলগত বাস্তবায়ন চেকলিস্ট

  1. ধাপ ১: অতিরিক্ত অবকাঠামো ছাড়া প্রোটোটাইপিং: CacheService মেমোইজেশন সহ Google Apps Script বা Office.js অ্যাড-ইন চালু করুন এবং কম ঝুঁকিপূর্ণ ফাইলে প্রাথমিক পরীক্ষা সম্পন্ন করুন।
  2. ধাপ ২: প্রম্পট ক্যাশিং ও খরচ নিয়ন্ত্রণ: ডেটাকে কমপ্যাক্ট CSV ফরম্যাটে রূপান্তর করুন, স্কিমা ক্যাশ ব্লকে রাখুন এবং কাজের ধরন অনুযায়ী Haiku বা Sonnet মডেল নির্বাচন করুন।
  3. ধাপ ৩: এজেন্টিক MCP ডেপ্লয়মেন্ট: উন্নত বিশ্লেষণ ও রিয়েল-টাইম কাজের জন্য ফিন্যান্সিয়াল অ্যানালিস্টদের লোকাল মডেল কনটেক্সট প্রোটোকল (MCP) স্প্রেডশিট সার্ভার ব্যবহারের সুযোগ দিন।
  4. ধাপ ৪: এন্টারপ্রাইজ নিরাপত্তা ও অডিট নিশ্চিতকরণ: প্রতিটি গুরুত্বপূর্ণ ফাইলে সেল লকিং, স্বয়ংক্রিয় সমতা পরীক্ষা এবং অপরিবর্তনীয় অডিট লগ বাধ্যতামূলক করুন।
← সব নিবন্ধ
0 / 4