{"id":189482,"date":"2026-07-08T14:09:21","date_gmt":"2026-07-08T05:09:21","guid":{"rendered":"https:\/\/support.questetra.com\/?p=189482"},"modified":"2026-07-09T16:18:59","modified_gmt":"2026-07-09T07:18:59","slug":"date-tsv-create-pivot-by-month-2026","status":"publish","type":"post","link":"https:\/\/support.questetra.com\/en\/addons\/date-tsv-create-pivot-by-month-2026\/","title":{"rendered":"Date #TSV: Create Pivot by Month"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Overview<\/h3>\n\n\n\n<h4 class=\"wp-block-heading has-background\" style=\"background-color:#084A28;color:#ffffff;margin-top:var(--wp--preset--spacing--30);margin-right:0;margin-bottom:0;margin-left:0;padding-top:var(--wp--preset--spacing--10);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--10);padding-left:var(--wp--preset--spacing--20)\"><strong>Date #TSV: Create Pivot by Month<\/strong><\/h4>\n\n\n\n<p class=\"has-text-align-right has-background has-small-font-size mt-0 pt-0 wp-block-paragraph\" style=\"background-color:#084A28;color:#ffffff;margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:var(--wp--preset--spacing--30);padding-bottom:0;padding-left:var(--wp--preset--spacing--30)\"><span class=\"material-icons\">translate<\/span> \u65e5\u4ed8 #TSV: \u6708\u6b21\u30d4\u30dc\u30c3\u30c8\u751f\u6210<\/p>\n\n\n\n<p class=\"has-background mt-0 pt-0 wp-block-paragraph\" style=\"border:2px solid #084A28;color:#333333;margin-top:0;margin-right:0;margin-bottom:var(--wp--preset--spacing--30);margin-left:0;padding-top:var(--wp--preset--spacing--10);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--10);padding-left:var(--wp--preset--spacing--20)\">Creates monthly pivot tables (count, sum, avg) by parsing a date column as Y-axis and another column as X-axis from the input TSV string. Date column need not be col-A (id=0). Datetime supported.<\/p>\n\n\n\n<figure class=\"wp-block-image alignright has-custom-border is-style-default\" style=\"margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px\"><img decoding=\"async\" src=\"data:image;base64,\niVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAFE0lEQVR4AcSWvY4cRRSFz+kx8+fMkCIhERIhISES3oCEgAQSAsTaawQBEjkhAQTYXtsIEgIeCfEcYO\/MMNPFd27NrjW7ay+OXKpb9\/+e\nW9U13TO0VzQGvcS49fgNzU+Wmt+fafYgNNfsBLo\/1\/Lh8iUqSf8LeA7I9N5M\/2z\/1thGqKk1QaNQim+3W03TEHEc4rVNvBB4cTKrYmOjjiUmQIBFcDdm1YWRJuc\/zy5YD9XnAid5DCJba+yywUt3oaqN\n7o2knrNIiWnIAzEjjU3vTbvjivVK4CnHZRLBUlXfF\/OAECPbtHLcCOc6PgC1HzY68ozjh12al4ADqoByopQlwWAPPEq0gAQcP0aJ4raVMdJIzDC1EjgBHEmZ3ZsjHc4D4Fyi2gkxnpi6EDyN2MbKzPEL\nmZnS7FtRh31Dybd7WcuqGBqZc4oo57NH7FX2pEaBhMeUZ7Y+OtX69lqr2\/A7a62P19rcWWmDbXO80QZ9dXuliov\/7rpiCzNFaDh1UjfqGZ0Dzx\/040jH5eSMBjqvC6Um+uHylAct+4CIYcomC+revtq0\nn+phUMDzc+teKa6S4+BBqo2lRpRcU0JokBiYWCUbsKY+zjgtVR2sxWPPoyEpl5UUPH0eACeunPwmLGdLWjy+qeWjBbTUTfgcSmoKJ5YoLR4ttTxZaAEtkRePl2THQ8UEoeVkQskNFfDrv9yiV8vOLiDj\nYuu5OG03Kse92+203WHZ4SM6M1L4OBJD1cbuRmJ2m23liA0IuzhF29zRpulJ\/20X8JPNE0Cb8jpklVNxKBdSU8BF8wMkGlIiEgTlRcHRCGw1itdJxJ9Y\/CWaGsLARfFWNap6aiVm4JEPJMdjOm28nWBJ\nwWSN7jtDAYtCzFxAmNJnakQuP0pqOMjUIZkcPINZBFKxdIS9OrPSfgrUhSDRNuBjJNmDsisRltTI6X5EqZw4iCcos1sTm9rFs2gPfMNKLNUzJdpPkcr0s9zaPbrNopDO14BXfFVoMjXibXRUeWK0UBap\n4j995zN2aaVK9pYC5TAaWUYxoahSKgmGHVYwaMrOw1VB3ZNzDExOjhIxSqfgIJX+24e\/UoAQpoSD2esCLMq1cJzYHT\/ROufxi0FMniVSmgiokSss8TREhNbfrmJlG8WkIQ4ogAYoCQk0eJTuUZFDaNmF\nEiSGIYqXrQqQAU9oXIjKQY0REgrVjuHKR0E4Ata\/LvRMlgeWBJwRqgvQZ5Y9RzeEzxpkDwIekoZ63k3mLpWBJV4YR3\/EEUSrZEzhradaxsCE7c0oKismZeR4E939\/UbZ3UuZhGhztCmeJVDhRT9+8BO5\nhPU8ZMycAuv5bHkMaAEikgNWbwAMm58aFsu6OFq98Z5ZD4CP3z3mkJKsnrrPD5YHFAQegPpA70JBRcyrs1tZM4tcr8p\/v36228QeAMewurvSZEJwh8bk2nnjndg0Kg3M+RgsHi6UT2k+DA1oAiU77x54\nZmRzbZrWdw9BxbgEjE0rPujD2UXItQZbHqhrmYBqgmsawNolJ4GZ0zJhHSyBSNpcAdpjs15Bp1y2JDlHjN97anmwyKKyQzZijOGIYdh+\/+gPbb66vFPtx7Dnz2X52\/PDe9+LWsSkahic483vMruWovNE\nwM+ly9+hT978WC8a1wIn+Zv3v6vjz\/+t06Onem3Cd2x6Q5Mbk6I\/P\/9LG\/5rFfE\/LDnX0XBdwEX\/ZJjoCX8AV1881Qp++uWp3l6+dTHsWv0\/AAAA\/\/\/Tj\/y2AAAABklEQVQDADFH2+PQ78D5AAAAAElF\nTkSuQmCC\n\" alt=\"Auto Step icon\" class=\"has-border-color has-ast-global-color-4-border-color\" style=\"border-width:0.5em\"\/><\/figure>\n\n\n\n<div class=\"wp-block-coblocks-accordion\">\n<div class=\"wp-block-coblocks-accordion-item\"><details open><summary class=\"wp-block-coblocks-accordion-item__title\">Configs for this Auto Step<\/summary><div class=\"wp-block-coblocks-accordion-item__content\">\n<dl style=\"margin: 0 0 -0.7em 0\">\n<div style=\"margin:4px 0px 1em; border:1px dotted #aaa; padding:4px 0 0 4px\" title=\"Main\"><dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">StrConfA<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">A: Set Input TSV String containing Date Column<span style=\"color:#990000;\"> *<\/span><span style=\"color:#000099;\"><sup style=\"font-style:italic;\">#{EL}<\/sup><\/span><\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">StrConfB1<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">B1: Set ID of Date Column (col-A is &#8220;0&#8221;, col-B is &#8220;1&#8221;)<span style=\"color:#990000;\"> *<\/span><span style=\"color:#000099;\"><sup style=\"font-style:italic;\">#{EL}<\/sup><\/span><\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">StrConfB2<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">B2: Set ID of Num Column (col-A is &#8220;0&#8221;, col-B is &#8220;1&#8221;)<span style=\"color:#000099;\"><sup style=\"font-style:italic;\">#{EL}<\/sup><\/span><\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">StrConfB3<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">B3: Set ID of X-axis Aggregation Column (col-A is &#8220;0&#8221;)<span style=\"color:#990000;\"> *<\/span><span style=\"color:#000099;\"><sup style=\"font-style:italic;\">#{EL}<\/sup><\/span><\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">StrConfC2<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">C2: To Switch, Set YE Month (eg &#8220;3&#8221;; Q-202604~06 \u2192 FY2027-Q1)<span style=\"color:#000099;\"><sup style=\"font-style:italic;\">#{EL}<\/sup><\/span><\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">SelectConfC3<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">C3: Select DATA to store Line-Count TSV Strings (update)<\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">SelectConfC4<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">C4: Select DATA to store Cumulative-Sum TSV Strings (update)<\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">SelectConfC5<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">C5: Select DATA to store Average TSV Strings (update)<\/dd>\n<\/div>\n<div style=\"margin:4px 0px 1em; border:1px dotted #aaa; padding:4px 0 0 4px\" title=\"Advanced\"><dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">SelectConfD1<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">D1: Select NUMERIC for Number of Input TSV Lines (update)<\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">SelectConfD2<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">D2: Select NUMERIC for Input TSV Rows (ignore blanks) (update)<\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">SelectConfD3<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">D3: Select NUMERIC for Number of Output TSV Rows (update)<\/dd>\n<\/div>\n\n<\/dl>\n<\/div><\/details><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-coblocks-accordion\">\n<div class=\"wp-block-coblocks-accordion-item\"><details><summary class=\"wp-block-coblocks-accordion-item__title\">Script (click to open)<\/summary><div class=\"wp-block-coblocks-accordion-item__content\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ Script Example of Business Process Automation\n\/\/ for &#39;engine type: 3&#39; (&quot;GraalJS standard mode&quot;)\n\/\/ cf. &#39;engine type: 2&#39; (&quot;GraalJS Nashorn compatible mode&quot;) (renamed from &quot;GraalJS&quot; at 20230526)\n\n\n\/\/\/\/\/\/\/\/ START &quot;main()&quot; \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\nmain();\nfunction main(){ \n\n\/\/\/\/ == Config Retrieving \/ \u5de5\u7a0b\u30b3\u30f3\u30d5\u30a3\u30b0\u306e\u53c2\u7167 ==\nconst strTsv         = configs.get        ( &quot;StrConfA&quot; );     \/\/ REQUIRED\n  if( strTsv === &quot;&quot; ){\n    throw new Error( &quot;\\n AutomatedTask ConfigError:&quot; +\n                     &quot; Config {A: TSV} is empty \\n&quot; );\n  }\n  const arr2dTsv     = parseAsRectangular ( strTsv );  \/\/ [row,col]\nconst strColIdDate   = configs.get( &quot;StrConfB1&quot; );            \/\/ REQUIRED\nconst strColIdsNum   = configs.get( &quot;StrConfB2&quot; );            \/\/ not required\nconst strColIdX      = configs.get( &quot;StrConfB3&quot; );            \/\/ REQUIRED\nconst strFyMonth     = configs.get( &quot;StrConfC2&quot; );            \/\/ not required\nconst strPocketC3    = configs.getObject ( &quot;SelectConfC3&quot; );  \/\/ not required\nconst strPocketC4    = configs.getObject ( &quot;SelectConfC4&quot; );  \/\/ not required\nconst strPocketC5    = configs.getObject ( &quot;SelectConfC5&quot; );  \/\/ not required\nconst numPocketD1    = configs.getObject ( &quot;SelectConfD1&quot; );  \/\/ not required\nconst numPocketD2    = configs.getObject ( &quot;SelectConfD2&quot; );  \/\/ not required\nconst numPocketD3    = configs.getObject ( &quot;SelectConfD3&quot; );  \/\/ not required\n\n\n\n\n\/\/\/\/ == Data Retrieving \/ \u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u30c7\u30fc\u30bf\u306e\u53c2\u7167 ==\n\/\/ (Nothing. Retrieved via Expression Language in Config Retrieving)\n\n\n\n\n\/\/\/\/ == Calculating \/ \u6f14\u7b97 ==\n\/\/ \u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u30d1\u30fc\u30b9\u3068\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\nconst idxDate = parseInt(strColIdDate, 10);\nif (isNaN(idxDate) || idxDate &lt; 0) {\n  throw new Error(&quot;\\n AutomatedTask ConfigError: Invalid Date Column ID in B1 \\n&quot;);\n}\n\nconst idxX = parseInt(strColIdX, 10);\nif (isNaN(idxX) || idxX &lt; 0) {\n  throw new Error(&quot;\\n AutomatedTask ConfigError: Invalid X-axis Column ID in B3 \\n&quot;);\n}\n\nlet idxNum = NaN;\nif (strColIdsNum !== &quot;&quot;) {\n  idxNum = parseInt(strColIdsNum.trim(), 10);\n  if (isNaN(idxNum) || idxNum &lt; 0) {\n    throw new Error(&quot;\\n AutomatedTask ConfigError: Invalid Numeric Column ID in B2 \\n&quot;);\n  }\n}\n\nlet yeMonth = 0;\nif (strFyMonth !== &quot;&quot;) {\n  yeMonth = parseInt(strFyMonth, 10);\n  if (isNaN(yeMonth) || yeMonth &lt; 0 || yeMonth &gt; 12) {\n    throw new Error(&quot;\\n AutomatedTask ConfigError: Invalid YE Month in C2 (must be 1-12) \\n&quot;);\n  }\n}\n\n\/\/ \u30d8\u30c3\u30c0\u30fc\u884c\u306e\u51e6\u7406\u3068\u30c1\u30a7\u30c3\u30af\nif (arr2dTsv.length === 0) {\n  throw new Error(&quot;\\n AutomatedTask DataError: Input TSV is empty \\n&quot;);\n}\nconst headerRow = arr2dTsv[0];\nif (idxDate &gt;= headerRow.length) {\n  throw new Error(`\\n AutomatedTask ConfigError: Date Column ID (${idxDate}) is out of bounds \\n`);\n}\nif (idxX &gt;= headerRow.length) {\n  throw new Error(`\\n AutomatedTask ConfigError: X-axis Column ID (${idxX}) is out of bounds \\n`);\n}\nif (!isNaN(idxNum) && idxNum &gt;= headerRow.length) {\n  throw new Error(`\\n AutomatedTask ConfigError: Numeric Column ID (${idxNum}) is out of bounds \\n`);\n}\n\n\/\/ X\u8ef8\u306e\u4e00\u610f\u306a\u5024\u3092\u62bd\u51fa\u3057\u3001\u5168\u4f53\u306e\u5408\u8a08\u5024\uff08\u6570\u5024\u5217\u306e\u7dcf\u548c\u3001\u307e\u305f\u306f\u884c\u6570\uff09\u3067\u964d\u9806\u30bd\u30fc\u30c8\u3059\u308b\u305f\u3081\u306e\u6e96\u5099\nconst xLabelsSet = new Set();\nconst mapXTotal = new Map();\n\nfor (let i = 1; i &lt; arr2dTsv.length; i++) {\n  const row = arr2dTsv[i];\n  const strDate = row[idxDate];\n  if (idxX &lt; row.length) {\n    const xVal = row[idxX].trim();\n    if (xVal !== &quot;&quot;) {\n      xLabelsSet.add(xVal);\n      \n      \/\/ \u6709\u52b9\u306a\u30c7\u30fc\u30bf\u884c\uff08\u65e5\u4ed8\u304c\u7a7a\u3067\u306a\u3044\uff09\u306e\u5834\u5408\u306e\u307f\u30bd\u30fc\u30c8\u7528\u5408\u8a08\u306b\u30ab\u30a6\u30f3\u30c8\n      if (strDate && strDate.trim() !== &quot;&quot;) {\n        if (!mapXTotal.has(xVal)) {\n          mapXTotal.set(xVal, 0);\n        }\n        \n        if (!isNaN(idxNum) && idxNum &lt; row.length) {\n          const cellVal = row[idxNum];\n          if (cellVal !== &quot;&quot;) {\n            const numValStr = cellVal.replace(\/[^0-9.-]\/g, &#39;&#39;); \n            const numVal = Number(numValStr);\n            if (numValStr !== &quot;&quot; && !isNaN(numVal)) {\n              mapXTotal.set(xVal, mapXTotal.get(xVal) + numVal);\n            }\n          }\n        } else {\n          mapXTotal.set(xVal, mapXTotal.get(xVal) + 1);\n        }\n      }\n    }\n  }\n}\n\n\/\/ \u5168\u4f53\u306e\u5408\u8a08\u5024\u304c\u5927\u304d\u3044\u9806\uff08\u964d\u9806\uff09\u306bX\u8ef8\u30e9\u30d9\u30eb\u3092\u30bd\u30fc\u30c8\nconst xLabels = Array.from(xLabelsSet).sort((a, b) =&gt; {\n  const totalA = mapXTotal.get(a) || 0;\n  const totalB = mapXTotal.get(b) || 0;\n  return totalB - totalA; \n});\n\n\/\/ \u96c6\u8a08\u51e6\u7406\u306e\u6e96\u5099\n\/\/ mapPivot: key = yLabel + &quot;\\t&quot; + xLabel, value = { count: 0, sum: 0 }\nconst mapPivot = new Map();\nlet minAbsM = Infinity;\nlet maxAbsM = -Infinity;\n\n\/\/ \u30c7\u30fc\u30bf\u884c\u306e\u30eb\u30fc\u30d7\uff081\u884c\u76ee\u306f\u30d8\u30c3\u30c0\u30fc\u3068\u3057\u3066\u30b9\u30ad\u30c3\u30d7\uff09\nfor (let i = 1; i &lt; arr2dTsv.length; i++) {\n  const row = arr2dTsv[i];\n  const strDate = row[idxDate];\n  const strX = row[idxX] ? row[idxX].trim() : &quot;&quot;;\n\n  \/\/ \u65e5\u4ed8\u307e\u305f\u306fX\u8ef8\u306e\u5024\u304c\u7a7a\u306a\u3089\u30b9\u30ad\u30c3\u30d7\n  if (!strDate || strDate.trim() === &quot;&quot; || strX === &quot;&quot;) continue;\n\n  let dateObj;\n  try {\n    dateObj = parseAsLocalDate(strDate);\n  } catch (e) {\n    engine.log(`Row ${i + 1} skipped: Failed to parse date &quot;${strDate}&quot;.`);\n    continue;\n  }\n\n  \/\/ \u30e9\u30d9\u30eb\u3068\u7d76\u5bfe\u6708\u756a\u53f7\u306e\u53d6\u5f97\n  const mInfo = getMonthInfo(dateObj, yeMonth);\n  const yLabel = mInfo.label;\n  const absM = mInfo.absM;\n\n  \/\/ \u6700\u5c0f\u30fb\u6700\u5927\u306e\u6708\u3092\u8a18\u9332\n  if (absM &lt; minAbsM) minAbsM = absM;\n  if (absM &gt; maxAbsM) maxAbsM = absM;\n\n  const key = yLabel + &quot;\\t&quot; + strX;\n  if (!mapPivot.has(key)) {\n    mapPivot.set(key, { count: 0, sum: 0 });\n  }\n\n  const data = mapPivot.get(key);\n  data.count++;\n\n  \/\/ \u6570\u5024\u5217\u306e\u52a0\u7b97\n  if (!isNaN(idxNum) && idxNum &lt; row.length) {\n    const cellVal = row[idxNum];\n    if (cellVal !== &quot;&quot;) {\n      const numValStr = cellVal.replace(\/[^0-9.-]\/g, &#39;&#39;); \n      const numVal = Number(numValStr);\n      \n      if (numValStr !== &quot;&quot; && !isNaN(numVal)) {\n        data.sum += numVal;\n      } else if (cellVal.trim() !== &quot;&quot;) {\n        engine.log(`Row ${i + 1} Col ${idxNum} warning: Unparseable number &quot;${cellVal}&quot;.`);\n      }\n    }\n  }\n}\n\n\/\/ Y\u8ef8\u306e\u6708\u6b21\u30e9\u30d9\u30eb\u306e\u30ea\u30b9\u30c8\uff08\u30c8\u30d3\u306e\u7a74\u57cb\u3081\u3092\u542b\u3080\uff09\nconst yLabels = [];\nif (minAbsM !== Infinity) {\n  for (let m = minAbsM; m &lt;= maxAbsM; m++) {\n    yLabels.push(getLabelFromAbsoluteMonth(m, yeMonth));\n  }\n}\n\n\/\/ ==== \u51fa\u529b\u7528TSV\u306e\u69cb\u7bc9 ====\nconst arrCountTsv = [];\nconst arrSumTsv = [];\nconst arrAvgTsv = [];\n\n\/\/ \u30d8\u30c3\u30c0\u30fc\u8a2d\u5b9a\nconst xHeaderName = headerRow[idxX] ? `(${headerRow[idxX]})` : &quot;(Source)&quot;;\nconst tsvHeader = [xHeaderName].concat(xLabels).join(&quot;\\t&quot;);\n\narrCountTsv.push(tsvHeader);\nif (!isNaN(idxNum)) {\n  arrSumTsv.push(tsvHeader);\n  arrAvgTsv.push(tsvHeader);\n}\n\n\/\/ \u30c7\u30fc\u30bf\u884c\u306e\u69cb\u7bc9\nfor (const yLabel of yLabels) {\n  const rowCount = [yLabel];\n  const rowSum = [yLabel];\n  const rowAvg = [yLabel];\n\n  for (const xLabel of xLabels) {\n    const key = yLabel + &quot;\\t&quot; + xLabel;\n    const data = mapPivot.get(key);\n\n    const count = data ? data.count : 0;\n    const sum = data ? data.sum : 0;\n    \n    const avg = (data && data.count &gt; 0) ? Number((data.sum \/ data.count).toFixed(2)) : 0;\n\n    rowCount.push(String(count));\n    if (!isNaN(idxNum)) {\n      rowSum.push(String(sum));\n      rowAvg.push(String(avg));\n    }\n  }\n\n  arrCountTsv.push(rowCount.join(&quot;\\t&quot;));\n  if (!isNaN(idxNum)) {\n    arrSumTsv.push(rowSum.join(&quot;\\t&quot;));\n    arrAvgTsv.push(rowAvg.join(&quot;\\t&quot;));\n  }\n}\n\n\n\n\n\/\/\/\/ == Data Updating \/ \u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u30c7\u30fc\u30bf\u3078\u306e\u4ee3\u5165 ==\n\nif ( strPocketC3 !== null ){ \n  engine.setData( strPocketC3, arrCountTsv?.join( &#39;\\n&#39; ) ?? &quot;&quot; );\n}\nif ( strPocketC4 !== null ){ \n  engine.setData( strPocketC4, !isNaN(idxNum) ? (arrSumTsv?.join( &#39;\\n&#39; ) ?? &quot;&quot;) : &quot;&quot; );\n}\nif ( strPocketC5 !== null ){ \n  engine.setData( strPocketC5, !isNaN(idxNum) ? (arrAvgTsv?.join( &#39;\\n&#39; ) ?? &quot;&quot;) : &quot;&quot; );\n}\n\nif ( numPocketD1 !== null ){ \n  engine.setData( numPocketD1, new java.math.BigDecimal( strTsv.split(&quot;\\n&quot;).length ) );\n}\nif ( numPocketD2 !== null ){ \n  engine.setData( numPocketD2, new java.math.BigDecimal( arr2dTsv.length ) );\n}\nif ( numPocketD3 !== null ){ \n  engine.setData( numPocketD3, new java.math.BigDecimal( arrCountTsv.length ) );\n}\n\n} \/\/\/\/\/\/\/\/ END &quot;main()&quot; \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n\n\/**\n * \u65e5\u4ed8\u3068\u6c7a\u7b97\u6708\u304b\u3089\u6708\u6b21\u30e9\u30d9\u30eb\u3068\u7d76\u5bfe\u6708\u756a\u53f7\uff08\u30bd\u30fc\u30c8\u30fb\u88dc\u9593\u7528\uff09\u3092\u751f\u6210\u3059\u308b\n * @param {Date} dateObj - JavaScript Date object\n * @param {number} yeMonth - Year End Month (0 for standard month, 1-12 for FY)\n * @returns {Object} { label: string, absM: number }\n *\/\nfunction getMonthInfo(dateObj, yeMonth) {\n  const y = dateObj.getFullYear();\n  const m = dateObj.getMonth() + 1; \/\/ 1-12\n\n  if (yeMonth === 0) {\n    \/\/ \u901a\u5e38\u306e\u6708\u6b21 (YYYY-MM)\n    const absM = y * 12 + (m - 1);\n    const mStr = m &lt; 10 ? `0${m}` : `${m}`;\n    return { label: `${y}-${mStr}`, absM: absM };\n  } else {\n    \/\/ FY\u30d9\u30fc\u30b9\u306e\u6708\u6b21 (FYYYY-MM)\n    let fy = y;\n    if (m &gt; yeMonth) {\n      fy = y + 1;\n    }\n    let shiftedM = m - yeMonth;\n    if (shiftedM &lt;= 0) {\n      shiftedM += 12;\n    }\n    const absM = fy * 12 + (shiftedM - 1);\n    const mStr = m &lt; 10 ? `0${m}` : `${m}`;\n    return { label: `FY${fy}-${mStr}`, absM: absM };\n  }\n}\n\n\/**\n * \u7d76\u5bfe\u6708\u756a\u53f7\u3068\u6c7a\u7b97\u6708\u304b\u3089\u3001\u30e9\u30d9\u30eb\u6587\u5b57\u5217\u3092\u5fa9\u5143\u3059\u308b\uff08\u30c8\u30d3\u306e\u7a74\u57cb\u3081\u7528\uff09\n * @param {number} absM - Absolute Month Number\n * @param {number} yeMonth - Year End Month\n * @returns {string} Month label\n *\/\nfunction getLabelFromAbsoluteMonth(absM, yeMonth) {\n  if (yeMonth === 0) {\n    const y = Math.floor(absM \/ 12);\n    const m = (absM % 12) + 1;\n    const mStr = m &lt; 10 ? `0${m}` : `${m}`;\n    return `${y}-${mStr}`;\n  } else {\n    const fy = Math.floor(absM \/ 12);\n    const shiftedM = (absM % 12) + 1;\n    let m = shiftedM + yeMonth;\n    if (m &gt; 12) {\n      m -= 12;\n    }\n    const mStr = m &lt; 10 ? `0${m}` : `${m}`;\n    return `FY${fy}-${mStr}`;\n  }\n}\n\n\n\/**\n * Parses TSV string as a two-dimensional rectangular data matrix and creates a 2D array.\n * @param {string} strTsv - The input TSV string\n * @returns {Array&lt;Array&lt;string&gt;&gt;} Rectangular 2D array\n *\/\nfunction parseAsRectangular( strTsv ){\n  const arrTsv = strTsv.split(&quot;\\n&quot;);\n  let numMinWidth   = Infinity;\n  let numMaxWidth   = 0;\n  let numBlanklines = 0;\n  \n  const parsedRows = [];\n  for( let i = 0; i &lt; arrTsv.length; i++ ){\n    const line = arrTsv[i];\n    if( line === &quot;&quot; ){\n      numBlanklines++;\n      continue;\n    }\n    const arrCells = line.split(&quot;\\t&quot;);\n    const len = arrCells.length;\n    if( len &lt; numMinWidth ){ numMinWidth = len; }\n    if( len &gt; numMaxWidth ){ numMaxWidth = len; }\n    parsedRows.push( arrCells );\n  }\n  \n  if( numMinWidth === Infinity ){\n    numMinWidth = 0;\n  }\n  engine.log( &quot; AutomatedTask TsvDataCheck:&quot; + \n              &quot; MinWidth:&quot; + numMinWidth +\n              &quot; MaxWidth:&quot; + numMaxWidth +\n              &quot; Lines:&quot; + arrTsv.length +\n              &quot; (BlankLines:&quot; + numBlanklines + &quot;)&quot; );\n\n  for( let i = 0; i &lt; parsedRows.length; i++ ){\n    const row = parsedRows[i];\n    while( row.length &lt; numMaxWidth ){\n      row.push( &quot;&quot; );\n    }\n  }\n  return parsedRows;\n}\n\n\n\/**\n * Parses a Date or Datetime string and returns a JavaScript `Date` object as local time.\n * Timezone information in the string (such as &quot;Z&quot; or &quot;+09:00&quot;) is forcefully ignored.\n * Supports various formats: &quot;YYYYMMDD&quot;, &quot;YYYY-MM-DD&quot;, ISO 8601, Japanese localized formats, etc.\n * * @param {string} str - The date or datetime string to parse.\n * @returns {Date} A local Date object.\n * @throws {Error} Throws an error if the string is empty or contains fewer than 2 numeric parts.\n *\/\nfunction parseAsLocalDate ( str ){ \/\/ strDateOrDatetime\n  if( str === &quot;&quot; ){\n    throw new Error( &quot;\\n AutomatedTask ParseDateError:&quot; +\n                     &quot; String is empty \\n&quot; );\n  }\n  const arrNumParts = str.match( \/\\d+\/g );\n  if( arrNumParts === null ){\n    throw new Error( &quot;\\n AutomatedTask ParseDateError:&quot; +\n                     &quot; No numeric characters in: &quot; + str + &quot;\\n&quot; );\n  }\n\n  \/\/\/ function default\n  let numYear    = 0; \/\/ limit in QBPMS: 1900 to 2100 (asof 2026-06)\n  let indexMonth = 0;\n  let numDay     = 1; \/\/ \u65e5\u4ed8\u304c\u7701\u7565\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u300c1\u65e5\u300d\u306b\u30d5\u30a9\u30fc\u30eb\u30d0\u30c3\u30af (Default to 1st)\n  let numHours   = 0;\n  let numMinutes = 0;\n\n  \/\/\/ case: startsWith YYYYMMDD (8 digits)\n  if( arrNumParts[0].length === 8 ){\n    numYear      = parseInt( arrNumParts[0].slice( 0, 4 ), 10 );\n    indexMonth   = parseInt( arrNumParts[0].slice( 4, 6 ), 10 ) - 1;\n    numDay       = parseInt( arrNumParts[0].slice( 6, 8 ), 10 );\n    if (arrNumParts.length &gt; 1) {\n      if (arrNumParts[1].length &gt;= 4) {\n        \/\/ like &quot;2359&quot; or &quot;235959Z&quot;\n        numHours = parseInt(arrNumParts[1].slice(0, 2), 10);\n        numMinutes = parseInt(arrNumParts[1].slice(2, 4), 10);\n      } else {\n        \/\/ like &quot;23:59&quot; -&gt; arrNumParts is [&#39;...&#39;, &#39;23&#39;, &#39;59&#39;]\n        numHours = parseInt(arrNumParts[1], 10);\n        if (arrNumParts.length &gt; 2) {\n          numMinutes = parseInt(arrNumParts[2], 10);\n        }\n      }\n    }\n\n  \/\/\/ case: startsWith YYYYMM (6 digits)\n  } else if ( arrNumParts[0].length === 6 ){\n    numYear      = parseInt( arrNumParts[0].slice( 0, 4 ), 10 );\n    indexMonth   = parseInt( arrNumParts[0].slice( 4, 6 ), 10 ) - 1;\n    \/\/ numDay remains 1\n\n  \/\/\/ case: not startsWith YYYYMMDD, like &quot;2026-12-31 23:59&quot;, &quot;2025\/06&quot;, &quot;2025\u5e746\u6708&quot;\n  } else {\n    \/\/ \u5fc5\u9808\u30d1\u30fc\u30c4\u3092\u300c3\u300d\u304b\u3089\u300c2\uff08\u5e74\u6708\uff09\u300d\u306b\u7de9\u548c\n    if( arrNumParts.length &lt; 2){\n      throw new Error( &quot;\\n AutomatedTask ParseDateError:&quot; +\n                       &quot; At least 2 Parts (Year, Month) are needed in: &quot; + str + &quot;\\n&quot; );\n    }\n    numYear      = parseInt( arrNumParts[0], 10 );\n    indexMonth   = parseInt( arrNumParts[1], 10 ) - 1;\n    \n    \/\/ \u65e5\u4ed8\u304c\u5b58\u5728\u3059\u308b\u5834\u5408\u306e\u307f\u4e0a\u66f8\u304d\n    if (arrNumParts.length &gt; 2) {\n      numDay       = parseInt( arrNumParts[2], 10 );\n    }\n    if (arrNumParts.length &gt; 3) {\n      numHours = parseInt(arrNumParts[3], 10);\n    }\n    if (arrNumParts.length &gt; 4) {\n      numMinutes = parseInt(arrNumParts[4], 10);\n    }\n  }\n\n  \/\/\/ return JavaScript `Date` object\n  const localDate = new Date(numYear, indexMonth, numDay, numHours, numMinutes);\n  localDate.setFullYear(numYear);\n  return localDate;\n}\n\n\n\n\/*\n### Sample Data 1 (date:id1, num:4, x-axis:2)\n\nID\tDATE\tSource-Channel\tRank\tTotal\nL-001\t2026\/01\/15\tJaSite\tA\t\\ 150,000\nL-002\t2026-02-10\tGmail\tB\t30,000\nL-003\t2026.02.28\tEnSite\tA\t$ 1,200\nL-004\t20260305\tJaSite\tC\t50,000\nL-005\t2026\/04\/12\tGmail\tA\t120,000\nL-006\t2026-05-20\tEnSite\tB\t85,000\nL-007\t2026\/06\/01\tJaSite\tA\t210,000\nL-008\t2026-07-15\tGmail\tA\t95,000\nL-009\t2026\/08\/22\tEnSite\tC\t\t\nL-010\t2026\/09\tJaSite\tB\t130,000\n\n### Sample Data 2\n\n\u53d6\u5f15No\t\u53d6\u5f15\u65e5\t\u62c5\u5f53\u90e8\u9580\t\u52d8\u5b9a\u79d1\u76ee\t\u91d1\u984d\uff08\u5186\uff09\t\u30a4\u30f3\u30dc\u30a4\u30b9\n1\t2026\/04\/01\t\u7ba1\u7406\u90e8\t\u6d88\u8017\u54c1\u8cbb\t5,500\t\u9069\u683c\n2\t2026\/04\/02\t\u55b6\u696d\u90e8\t\u65c5\u8cbb\u4ea4\u901a\u8cbb\t1,320\t\u9069\u683c\n3\t2026-05-15\t\u30de\u30fc\u30b1\u30c6\u30a3\u30f3\u30b0\u90e8\t\u5e83\u544a\u5ba3\u4f1d\u8cbb\t55,000\t\u9069\u683c\n4\t2026\/06\/03\t\u7ba1\u7406\u90e8\t\u901a\u4fe1\u8cbb\t8,800\t\u9069\u683c\n5\t2026\/07\/05\t\u30de\u30fc\u30b1\u30c6\u30a3\u30f3\u30b0\u90e8\t\u5e83\u544a\u5ba3\u4f1d\u8cbb\t110,000\t\u9069\u683c\n6\t2026-08-12\t\u55b6\u696d\u90e8\t\u65c5\u8cbb\u4ea4\u901a\u8cbb\t24,500\t\u9069\u683c\n7\t2026\/09\/01\t\u7ba1\u7406\u90e8\t\u798f\u5229\u539a\u751f\u8cbb\t12,000\t\u9069\u683c\n8\t2026\/11\/20\t\u55b6\u696d\u90e8\t\u4ea4\u969b\u8cbb\t18,000\t\u975e\u9069\u683c\n9\t2027-01-06 12:30\t\u30de\u30fc\u30b1\u30c6\u30a3\u30f3\u30b0\u90e8\t\u5e83\u544a\u5ba3\u4f1d\u8cbb\t33,000\t\u9069\u683c\n10\t2027\/02\/15\t\u7ba1\u7406\u90e8\t\u6d88\u8017\u54c1\u8cbb\t4,200\t\u9069\u683c\n\n\n### NOTES-en\n\n* When a case reaches this [Automated Step], the TSV pivot table creation process is automatically executed.\n    * The first row of the input TSV is recognized as the header row.\n* The input TSV string is parsed as a simple tab-separated values string.\n    * Double quotes and other specific characters within the TSV string are retained as is.\n    * Blank lines within the TSV string are ignored.\n    * For rows lacking the expected number of cells, empty string (&quot;&quot;) cells are automatically appended.\n    * The number of rows in the input\/output TSV string can be stored as Case Data.\n* The date column used as the Y-axis aggregation key is specified by its column ID.\n    * It does not necessarily have to be Column A (id=0).\n    * Set this to &quot;1&quot; if Column B (id=1) is to serve as the aggregation key.\n* The column used as the X-axis aggregation key is specified by its column ID.\n    * If the computation time becomes excessive (eg, due to an extremely large number of columns), a timeout may occur.\n    * The columns on the X-axis are dynamically sorted in descending order of occurrence frequency or total value.\n\n\n### NOTES-ja\n\n* \u6848\u4ef6\uff08\u30b1\u30fc\u30b9\uff09\u304c\u3053\u306e\uff3b\u81ea\u52d5\u5de5\u7a0b\uff3d\u306b\u5230\u9054\u3059\u308b\u3068\u3001Pivot\u751f\u6210\u51e6\u7406\u304c\u81ea\u52d5\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002\n    * \u5165\u529bTSV\u306e1\u884c\u76ee\u306f\u3001\u30d8\u30c3\u30c0\u30fc\u884c\u3068\u3057\u3066\u8a8d\u8b58\u3055\u308c\u307e\u3059\u3002\n* \u5165\u529bTSV\u6587\u5b57\u5217\u306f\u3001\u30b7\u30f3\u30d7\u30eb\u306a\u30bf\u30d6\u533a\u5207\u308a\u6587\u5b57\u5217\u3068\u3057\u3066\u30d1\u30fc\u30b9\u3055\u308c\u307e\u3059\u3002\n    * TSV\u6587\u5b57\u5217\u5185\u306e\u30c0\u30d6\u30eb\u30af\u30aa\u30fc\u30c8\u6587\u5b57\u7b49\u3082\u3001\u305d\u306e\u307e\u307e\u4fdd\u6301\u3055\u308c\u307e\u3059\u3002\n    * TSV\u6587\u5b57\u5217\u5185\u306e\u7a7a\u884c\u306f\u3001\u7121\u8996\u3055\u308c\u307e\u3059\u3002\n    * TSV\u6587\u5b57\u5217\u5185\u3067\u30bb\u30eb\u6570\u306e\u8db3\u308a\u306a\u3044\u884c\u306f\u3001\u7a7a\u6587\u5b57\uff08&quot;&quot;\uff09\u306e\u30bb\u30eb\u304c\u81ea\u52d5\u7684\u306b\u88dc\u5b8c\u3055\u308c\u307e\u3059\u3002\n    * \u5165\u51fa\u529bTSV\u306e\u884c\u6570\u306f\u3001\u30b1\u30fc\u30b9\u30c7\u30fc\u30bf\u3068\u3057\u3066\u683c\u7d0d\u53ef\u80fd\u3067\u3059\u3002\n* Y\u96c6\u8a08\u30ad\u30fc\u3068\u306a\u308b\u65e5\u4ed8\u5217\u306fID\u3067\u6307\u5b9a\u3057\u307e\u3059\n    * \u5fc5\u305a\u3057\u3082A\u5217\uff08id=0\uff09\u3067\u306a\u304f\u3066\u3082\u69cb\u3044\u307e\u305b\u3093\u3002\n    * B\u5217\uff08id=1\uff09\u304c\u96c6\u8a08\u30ad\u30fc\u3068\u306a\u308b\u5834\u5408\u3001&quot;1&quot; \u3068\u30bb\u30c3\u30c8\u3057\u307e\u3059\u3002\n* X\u96c6\u8a08\u30ad\u30fc\u3068\u306a\u308b\u5217\u306fID\u3067\u6307\u5b9a\u3057\u307e\u3059\n    * \u8a08\u7b97\u6642\u9593\u304c\u5927\u304d\u304f\u306a\u308b\uff08\u6975\u7aef\u306b\u5217\u6570\u304c\u591a\u3044\u306a\u3069\uff09\u3068\u3001\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u3059\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002\n    * \u203bX\u8ef8\u306e\u5217\u306f\u3001\u51fa\u73fe\u983b\u5ea6\u307e\u305f\u306f\u5408\u8a08\u5024\u306e\u964d\u9806\u3067\u52d5\u7684\u306b\u4e26\u3073\u66ff\u308f\u308a\u307e\u3059\u3002\n\n\n### APPENDIX-en\n* The default format for the month label is `2026-04`.\n    * By setting the Year-End (YE) Month, you can switch to the FY format (Fiscal Year basis \/ End-Year style).\n        * Note) End-Year style: FY2027 = 2026\/04\/01 to 2027\/03\/31\n        * e.g.: &quot;3&quot;; `2026-04` \u2192 `FY2027-04`\n        * e.g.: &quot;12&quot;; `2026-04` \u2192 `FY2026-04`\u3000(Since Jan-Mar is Q1)\n* Cells in the specified numeric columns are parsed as numbers as much as possible. *(Excluding the first header row)*\n    * Any characters other than periods (`.`), minus signs (`-`), and digits (`0-9`) are stripped out.\n        * such as commas acting as digit separators or currency symbols\n    * The resulting string is evaluated using `Number()`.\n    * If parsing fails, the value is treated as `0`.\n    * e.g.: `$ 1,500.50 usd` \u21d2 `1500.5`\n* If there are missing periods (gaps) between the oldest and newest months in the input data, they are automatically filled with `0`.\n    * Both the row count and the numeric sums will be output as `0`.\n    * e.g.: If data only exists for `2026-04` and `2026-06`, the missing `2026-05` will automatically be generated and output with a count of `0`.\n\n\n### APPENDIX-ja\n* \u6708\u6b21\u30e9\u30d9\u30eb\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u306f `2026-04` \u3067\u3059\u3002\n    * \u6c7a\u7b97\u6708\u3092\u30bb\u30c3\u30c8\u3059\u308c\u3070FY\u65b9\u5f0f\uff08\u4f1a\u8a08\u5e74\u5ea6\u30d9\u30fc\u30b9\uff0f\u7d42\u4e86\u5e74\u65b9\u5f0f\uff09\u306b\u5909\u66f4\u53ef\u80fd\u3067\u3059\u3002\n        * \u203b \u7d42\u4e86\u5e74\u65b9\u5f0f\uff1a FY2027 = 2026\/04\/01 \uff5e 2027\/03\/31\n        * \u4f8b: &quot;3&quot;; `2026-04` \u2192 `FY2027-04`\n        * \u4f8b: &quot;12&quot;; `2026-04` \u2192 `FY2026-04`\n* \u6570\u5024\u5217\u3068\u3057\u3066\u6307\u5b9a\u3055\u308c\u305f\u5217\u306e\u5404\u30c7\u30fc\u30bf\u306f\u3001\u53ef\u80fd\u306a\u9650\u308a\u6570\u5024\u3068\u3057\u3066\u89e3\u6790\u3055\u308c\u307e\u3059\u3002\u203b\u5148\u982d1\u884c\u76ee\uff08\u30d8\u30c3\u30c0\u30fc\u884c\uff09\u3092\u9664\u304f\n    * \u300c\u30d4\u30ea\u30aa\u30c9(.)\u300d\u300c\u30de\u30a4\u30ca\u30b9\u8a18\u53f7(-)\u300d\u300c\u6570\u5b57(0\uff5e9)\u300d\u4ee5\u5916\u306e\u6587\u5b57\u304c\u5b58\u5728\u3059\u308b\u5834\u5408\u306f\u3001\u305d\u308c\u3089\u304c\u9664\u53bb\u3055\u308c\u305f\u4e0a\u3067\u89e3\u6790\u3055\u308c\u307e\u3059\u3002\n        * \u6841\u533a\u5207\u308a\u30ab\u30f3\u30de\u3084\u901a\u8ca8\u8a18\u53f7\u306a\u3069\n    * \u9664\u53bb\u5f8c\u306e\u6587\u5b57\u5217\u306f `Number()` \u306b\u3088\u3063\u3066\u6570\u5024\u5316\u3055\u308c\u307e\u3059\u3002\n    * \u89e3\u6790\u306b\u5931\u6557\u3057\u305f\u5834\u5408\u306f `0` \u3068\u3057\u3066\u52a0\u7b97\u3055\u308c\u307e\u3059\u3002\n    * \u4f8b: `$ 1,500.50 usd` \u21d2 `1500.5`\n* \u5165\u529b\u30c7\u30fc\u30bf\u306b\u304a\u3051\u308b\u300c\u6700\u3082\u53e4\u3044\u6708\u300d\u304b\u3089\u300c\u6700\u3082\u65b0\u3057\u3044\u6708\u300d\u307e\u3067\u306e\u9593\u306b\u3001\u30c7\u30fc\u30bf\u304c\u5b58\u5728\u3057\u306a\u3044\u6708\uff08\u30c8\u30d3\uff09\u304c\u3042\u308b\u5834\u5408\u3001\u305d\u306e\u6708\u306f\u81ea\u52d5\u7684\u306b\u7a74\u57cb\u3081\uff08\u88dc\u5b8c\uff09\u3055\u308c\u307e\u3059\u3002\n    * \u30ab\u30a6\u30f3\u30c8\u304a\u3088\u3073\u6570\u5024\u5217\u306e\u5408\u8a08\u306f `0` \u3068\u3057\u3066\u51fa\u529b\u3055\u308c\u307e\u3059\u3002\n    * \u4f8b: `2026-04` \u3068 `2026-06` \u306e\u30c7\u30fc\u30bf\u306e\u307f\u304c\u5b58\u5728\u3059\u308b\u5834\u5408\u3001\u9593\u306e `2026-05` \u306f\u30ab\u30a6\u30f3\u30c8 `0` \u306e\u884c\u3068\u3057\u3066\u81ea\u52d5\u751f\u6210\u3055\u308c\u307e\u3059\u3002\n*\/\n<\/code><\/pre><\/div>\n<\/div><\/details><\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"margin-top:var(--wp--preset--spacing--30)\"><span>Download<\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/drive.google.com\/file\/d\/1HjGTudoZKSEYWFgzzpJnwA_Cexbn9KYY\/view?usp=drivesdk\" target=\"_blank\">date-tsv-create-pivot-by-month-2026.xml<\/a>\n<ul class=\"wp-block-list\">\n<li>2026-07-07 (C) Questetra, Inc. (MIT License)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<div class=\"has-small-font-size\" style=\"text-align: right;\"><div style=\"display: inline-block; background: #FBE7DD; text-align: center;\">\n<span class=\"material-icons\">warning<\/span> Freely modifiable JavaScript (ECMAScript) code. No warranty of any kind.<br>\n(Installing <em><strong>Addon Auto-Steps<\/strong><\/em> are available only on the <em><strong><span style=\"color: #1970B9\">Professional<\/span><\/strong><\/em> edition.)\n<\/div><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"margin-top:var(--wp--preset--spacing--30)\"><span>Notes<\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>When a case reaches this [Automated Step], the TSV pivot table creation process is automatically executed.\n<ul class=\"wp-block-list\">\n<li>The first row of the input TSV is recognized as the header row.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>The input TSV string is parsed as a simple tab-separated values string.\n<ul class=\"wp-block-list\">\n<li>Double quotes and other specific characters within the TSV string are retained as is.<\/li>\n\n\n\n<li>Blank lines within the TSV string are ignored.<\/li>\n\n\n\n<li>For rows lacking the expected number of cells, empty string (&#8220;&#8221;) cells are automatically appended.<\/li>\n\n\n\n<li>The number of rows in the input\/output TSV string can be stored as Case Data.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>The date column used as the Y-axis aggregation key is specified by its column ID.\n<ul class=\"wp-block-list\">\n<li>It does not necessarily have to be Column A (id=0).<\/li>\n\n\n\n<li>Set this to &#8220;1&#8221; if Column B (id=1) is to serve as the aggregation key.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>The column used as the X-axis aggregation key is specified by its column ID.\n<ul class=\"wp-block-list\">\n<li>If the computation time becomes excessive (eg, due to an extremely large number of columns), a timeout may occur.<\/li>\n\n\n\n<li>The columns on the X-axis are dynamically sorted in descending order of occurrence frequency or total value.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"margin-top:var(--wp--preset--spacing--30)\"><span>Capture<\/span><\/h3>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6aaa4fae50e4b&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6aaa4fae50e4b\" class=\"wp-block-image aligncenter size-full has-lightbox wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"628\" data-attachment-id=\"189453\" data-permalink=\"https:\/\/support.questetra.com\/en\/incident\/bug-20260831\/attachment\/date-tsv-create-pivot-by-month-2026-en-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?fit=1200%2C628&amp;ssl=1\" data-orig-size=\"1200,628\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;,&quot;alt&quot;:&quot;&quot;}\" data-image-title=\"date-tsv-create-pivot-by-month-2026-en\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?fit=1024%2C536&amp;ssl=1\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?resize=1200%2C628&#038;ssl=1\" alt=\"\" class=\"wp-image-189453\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?w=1200&amp;ssl=1 1200w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?resize=600%2C315&amp;ssl=1 600w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?resize=1024%2C536&amp;ssl=1 1024w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?resize=768%2C402&amp;ssl=1 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6aaa4fae521d5&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6aaa4fae521d5\" class=\"wp-block-image aligncenter size-large has-custom-border is-style-rounded has-lightbox is-style-rounded--1 wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"536\" data-attachment-id=\"189457\" data-permalink=\"https:\/\/support.questetra.com\/en\/incident\/bug-20260831\/attachment\/date-tsv-create-pivot-by-month-2026-sample1-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample1.png?fit=1200%2C628&amp;ssl=1\" data-orig-size=\"1200,628\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;,&quot;alt&quot;:&quot;&quot;}\" data-image-title=\"date-tsv-create-pivot-by-month-2026-sample1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample1.png?fit=1024%2C536&amp;ssl=1\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample1.png?resize=1024%2C536&#038;ssl=1\" alt=\"\" class=\"has-border-color wp-image-189457\" style=\"border-color:#009900;border-width:3px;border-radius:9px\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample1.png?resize=1024%2C536&amp;ssl=1 1024w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample1.png?resize=600%2C315&amp;ssl=1 600w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample1.png?resize=768%2C402&amp;ssl=1 768w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample1.png?w=1200&amp;ssl=1 1200w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6aaa4fae532bb&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6aaa4fae532bb\" class=\"wp-block-image aligncenter size-large has-custom-border is-style-rounded has-lightbox is-style-rounded--2 wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"536\" data-attachment-id=\"189459\" data-permalink=\"https:\/\/support.questetra.com\/en\/incident\/bug-20260831\/attachment\/date-tsv-create-pivot-by-month-2026-sample2-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample2.png?fit=1200%2C628&amp;ssl=1\" data-orig-size=\"1200,628\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;,&quot;alt&quot;:&quot;&quot;}\" data-image-title=\"date-tsv-create-pivot-by-month-2026-sample2\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample2.png?fit=1024%2C536&amp;ssl=1\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample2.png?resize=1024%2C536&#038;ssl=1\" alt=\"\" class=\"has-border-color wp-image-189459\" style=\"border-color:#009900;border-width:3px;border-radius:9px\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample2.png?resize=1024%2C536&amp;ssl=1 1024w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample2.png?resize=600%2C315&amp;ssl=1 600w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample2.png?resize=768%2C402&amp;ssl=1 768w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample2.png?w=1200&amp;ssl=1 1200w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6aaa4fae54532&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6aaa4fae54532\" class=\"wp-block-image aligncenter size-large has-custom-border is-style-rounded has-lightbox is-style-rounded--3 wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"536\" data-attachment-id=\"189461\" data-permalink=\"https:\/\/support.questetra.com\/en\/incident\/bug-20260831\/attachment\/date-tsv-create-pivot-by-month-2026-sample3-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample3.png?fit=1200%2C628&amp;ssl=1\" data-orig-size=\"1200,628\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;,&quot;alt&quot;:&quot;&quot;}\" data-image-title=\"date-tsv-create-pivot-by-month-2026-sample3\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample3.png?fit=1024%2C536&amp;ssl=1\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample3.png?resize=1024%2C536&#038;ssl=1\" alt=\"\" class=\"has-border-color wp-image-189461\" style=\"border-color:#009900;border-width:3px;border-radius:9px\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample3.png?resize=1024%2C536&amp;ssl=1 1024w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample3.png?resize=600%2C315&amp;ssl=1 600w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample3.png?resize=768%2C402&amp;ssl=1 768w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample3.png?w=1200&amp;ssl=1 1200w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6aaa4fae55a4f&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6aaa4fae55a4f\" class=\"wp-block-image aligncenter size-large has-custom-border is-style-rounded has-lightbox is-style-rounded--4 wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"536\" data-attachment-id=\"189463\" data-permalink=\"https:\/\/support.questetra.com\/en\/incident\/bug-20260831\/attachment\/date-tsv-create-pivot-by-month-2026-sample4-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample4.png?fit=1200%2C628&amp;ssl=1\" data-orig-size=\"1200,628\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;,&quot;alt&quot;:&quot;&quot;}\" data-image-title=\"date-tsv-create-pivot-by-month-2026-sample4\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample4.png?fit=1024%2C536&amp;ssl=1\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample4.png?resize=1024%2C536&#038;ssl=1\" alt=\"\" class=\"has-border-color wp-image-189463\" style=\"border-color:#009900;border-width:3px;border-radius:9px\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample4.png?resize=1024%2C536&amp;ssl=1 1024w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample4.png?resize=600%2C315&amp;ssl=1 600w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample4.png?resize=768%2C402&amp;ssl=1 768w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-sample4.png?w=1200&amp;ssl=1 1200w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"margin-top:var(--wp--preset--spacing--30)\"><span>Appendix<\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The default format for the month label is <code>2026-04<\/code>.\n<ul class=\"wp-block-list\">\n<li>By setting the Year-End (YE) Month, you can switch to the FY format (Fiscal Year basis \/ End-Year style).\n<ul class=\"wp-block-list\">\n<li>Note) End-Year style: FY2027 = 2026\/04\/01 to 2027\/03\/31<\/li>\n\n\n\n<li>e.g.: &#8220;3&#8221;; <code>2026-04<\/code> \u2192 <code>FY2027-04<\/code><\/li>\n\n\n\n<li>e.g.: &#8220;12&#8221;; <code>2026-04<\/code> \u2192 <code>FY2026-04<\/code>\u3000(Since Jan-Mar is Q1)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Cells in the specified numeric columns are parsed as numbers as much as possible. <em>(Excluding the first header row)<\/em>\n<ul class=\"wp-block-list\">\n<li>Any characters other than periods (<code>.<\/code>), minus signs (<code>-<\/code>), and digits (<code>0-9<\/code>) are stripped out.\n<ul class=\"wp-block-list\">\n<li>such as commas acting as digit separators or currency symbols<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>The resulting string is evaluated using <code>Number()<\/code>.<\/li>\n\n\n\n<li>If parsing fails, the value is treated as <code>0<\/code>.<\/li>\n\n\n\n<li>e.g.: <code>$ 1,500.50 usd<\/code> \u21d2 <code>1500.5<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>If there are missing periods (gaps) between the oldest and newest months in the input data, they are automatically filled with <code>0<\/code>.\n<ul class=\"wp-block-list\">\n<li>Both the row count and the numeric sums will be output as <code>0<\/code>.<\/li>\n\n\n\n<li>e.g.: If data only exists for <code>2026-04<\/code> and <code>2026-06<\/code>, the missing <code>2026-05<\/code> will automatically be generated and output with a count of <code>0<\/code>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"margin-top:var(--wp--preset--spacing--30)\"><span>See also<\/span><\/h3>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-questetra-support wp-block-embed-questetra-support\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"5r26fTD4fA\"><a href=\"https:\/\/support.questetra.com\/en\/addons\/date-tsv-create-pivot-by-quarter-2026\/\">Date #TSV: Create Pivot by Quarter<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"\u201cDate #TSV: Create Pivot by Quarter\u201d \u2014 Questetra Support\" src=\"https:\/\/support.questetra.com\/en\/addons\/date-tsv-create-pivot-by-quarter-2026\/embed\/#?secret=dZoLwfVnw7#?secret=5r26fTD4fA\" data-secret=\"5r26fTD4fA\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-questetra-support wp-block-embed-questetra-support\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"Xu9RxZhEo6\"><a href=\"https:\/\/support.questetra.com\/en\/addons\/questetra-bpms-cases-extract-by-report-id-2026\/\">Questetra BPMS #Cases: Extract by Report ID<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"\u201cQuestetra BPMS #Cases: Extract by Report ID\u201d \u2014 Questetra Support\" src=\"https:\/\/support.questetra.com\/en\/addons\/questetra-bpms-cases-extract-by-report-id-2026\/embed\/#?secret=Yjio9iVFHS#?secret=Xu9RxZhEo6\" data-secret=\"Xu9RxZhEo6\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-questetra-support wp-block-embed-questetra-support\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"wpnyIe0edT\"><a href=\"https:\/\/support.questetra.com\/en\/addons\/date-tsv-group-by-quarter-2026\/\">Date #TSV: Group by Quarter<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"\u201cDate #TSV: Group by Quarter\u201d \u2014 Questetra Support\" src=\"https:\/\/support.questetra.com\/en\/addons\/date-tsv-group-by-quarter-2026\/embed\/#?secret=g4TdzjVaIq#?secret=wpnyIe0edT\" data-secret=\"wpnyIe0edT\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Creates monthly pivot tables (count, sum, avg) by parsing a date column as Y-axis and another column as X-axis from the input TSV string. Date column need not be col-A (id=0). Datetime supported.<\/p>\n","protected":false},"author":2,"featured_media":189453,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_uag_custom_page_level_css":"","advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"{title}\n\n{excerpt}\n\n{url}","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpas_customize_per_network":false,"jetpack_post_was_ever_published":false},"categories":[168],"tags":[389],"faq_section":[],"class_list":["post-189482","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-addons","tag-tsv-csv"],"jetpack_publicize_connections":[],"uagb_featured_image_src":{"full":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?fit=1200%2C628&ssl=1",1200,628,false],"thumbnail":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?resize=440%2C440&ssl=1",440,440,true],"medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?fit=600%2C315&ssl=1",600,315,true],"medium_large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?fit=768%2C402&ssl=1",768,402,true],"large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?fit=1024%2C536&ssl=1",1024,536,true],"1536x1536":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?fit=1200%2C628&ssl=1",1200,628,true],"2048x2048":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?fit=1200%2C628&ssl=1",1200,628,true],"newspack-article-block-landscape-large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?resize=1200%2C628&ssl=1",1200,628,true],"newspack-article-block-portrait-large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?resize=900%2C628&ssl=1",900,628,true],"newspack-article-block-square-large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?resize=1200%2C628&ssl=1",1200,628,true],"newspack-article-block-landscape-medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?resize=800%2C600&ssl=1",800,600,true],"newspack-article-block-portrait-medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?resize=600%2C628&ssl=1",600,628,true],"newspack-article-block-square-medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?resize=800%2C628&ssl=1",800,628,true],"newspack-article-block-landscape-intermediate":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?resize=600%2C450&ssl=1",600,450,true],"newspack-article-block-portrait-intermediate":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?resize=450%2C600&ssl=1",450,600,true],"newspack-article-block-square-intermediate":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?resize=600%2C600&ssl=1",600,600,true],"newspack-article-block-landscape-small":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?resize=400%2C300&ssl=1",400,300,true],"newspack-article-block-portrait-small":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?resize=300%2C400&ssl=1",300,400,true],"newspack-article-block-square-small":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?resize=400%2C400&ssl=1",400,400,true],"newspack-article-block-landscape-tiny":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?resize=200%2C150&ssl=1",200,150,true],"newspack-article-block-portrait-tiny":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?resize=150%2C200&ssl=1",150,200,true],"newspack-article-block-square-tiny":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?resize=200%2C200&ssl=1",200,200,true],"newspack-article-block-uncropped":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?fit=1200%2C628&ssl=1",1200,628,true]},"uagb_author_info":{"display_name":"IMAMURA, Genichi","author_link":"https:\/\/support.questetra.com\/en\/author\/imamuragenichi\/"},"uagb_comment_info":0,"uagb_excerpt":"Creates monthly pivot tables (count, sum, avg) by parsing a date column as Y-axis and another column as X-axis from the input TSV string. Date column need not be col-A (id=0). Datetime supported.","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9DiIh-Nia","jetpack-related-posts":[{"id":82429,"url":"https:\/\/support.questetra.com\/en\/addons\/tsv-string-create-cross-tab-for-numerical-sum\/","url_meta":{"origin":189482,"position":0},"title":"TSV String, Create Cross Tab for Numerical Sum","author":"IMAMURA, Genichi","date":"2019-12-05","format":false,"excerpt":"Creates a crosstab (pivot table) for numeric fields in TSV data. For example, the \"Amount\" in the order history (TSV) is aggregated on two axes, \"Responsible\" and \"Product\". The fields for X-axis and Y-axis aggregation are specified by TSV field ID.","rel":"","context":"In &quot;Add-ons&quot;","block_context":{"text":"Add-ons","link":"https:\/\/support.questetra.com\/en\/category\/addons\/"},"img":{"alt_text":"TSV String, Create Cross Tab for Numerical Sum","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/12\/TSV-String-Create-Cross-Tab-for-Numerical-Sum-en.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/12\/TSV-String-Create-Cross-Tab-for-Numerical-Sum-en.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/12\/TSV-String-Create-Cross-Tab-for-Numerical-Sum-en.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/12\/TSV-String-Create-Cross-Tab-for-Numerical-Sum-en.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/12\/TSV-String-Create-Cross-Tab-for-Numerical-Sum-en.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":189558,"url":"https:\/\/support.questetra.com\/en\/addons\/date-tsv-create-pivot-by-quarter-2026\/","url_meta":{"origin":189482,"position":1},"title":"Date #TSV: Create Pivot by Quarter","author":"IMAMURA, Genichi","date":"2026-07-08","format":false,"excerpt":"Creates quarterly pivot tables (count, sum, avg) by parsing a date column as Y-axis and another column as X-axis from the input TSV string. Date column need not be col-A (id=0). Datetime supported.","rel":"","context":"In &quot;Add-ons&quot;","block_context":{"text":"Add-ons","link":"https:\/\/support.questetra.com\/en\/category\/addons\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-quarter-2026-en.png?fit=1200%2C628&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-quarter-2026-en.png?fit=1200%2C628&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-quarter-2026-en.png?fit=1200%2C628&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-quarter-2026-en.png?fit=1200%2C628&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-quarter-2026-en.png?fit=1200%2C628&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":109999,"url":"https:\/\/support.questetra.com\/en\/addons\/tsv-string-create-cross-tab-for-numerical-sum-2021\/","url_meta":{"origin":189482,"position":2},"title":"TSV String, Create Cross Tab for Numerical Sum","author":"Hirotaka NISHI","date":"2021-07-21","format":false,"excerpt":"Creates a crosstab table (or pivot table) for the numeric fields of TSV data. For example, the \"Amount\" in the order history (TSV) is aggregated on the two axes of \"Person Responsible\" and \"Product\". The fields for X-axis and Y-axis aggregation are specified by the TSV field ID.","rel":"","context":"In &quot;Add-ons&quot;","block_context":{"text":"Add-ons","link":"https:\/\/support.questetra.com\/en\/category\/addons\/"},"img":{"alt_text":"TSV String, Create Cross Tab for Numerical Sum","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/12\/TSV-String-Create-Cross-Tab-for-Numerical-Sum-en.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/12\/TSV-String-Create-Cross-Tab-for-Numerical-Sum-en.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/12\/TSV-String-Create-Cross-Tab-for-Numerical-Sum-en.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/12\/TSV-String-Create-Cross-Tab-for-Numerical-Sum-en.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/12\/TSV-String-Create-Cross-Tab-for-Numerical-Sum-en.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":174802,"url":"https:\/\/support.questetra.com\/en\/addons\/tsv-string-extract-range-columns-2025\/","url_meta":{"origin":189482,"position":3},"title":"#TSV-String: Extract Range Columns","author":"IMAMURA, Genichi","date":"2025-07-10","format":false,"excerpt":"Extracts the specified range of columns from START index to END index of the TSV (END not included). The index starts from \"0\". Negative index counts back from the end. If START is omitted \"from the beginning\", and if END is omitted \"to the end\".","rel":"","context":"In &quot;Add-ons&quot;","block_context":{"text":"Add-ons","link":"https:\/\/support.questetra.com\/en\/category\/addons\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2025\/07\/tsv-string-extract-range-columns-2025-en.png?fit=1200%2C628&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2025\/07\/tsv-string-extract-range-columns-2025-en.png?fit=1200%2C628&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2025\/07\/tsv-string-extract-range-columns-2025-en.png?fit=1200%2C628&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2025\/07\/tsv-string-extract-range-columns-2025-en.png?fit=1200%2C628&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2025\/07\/tsv-string-extract-range-columns-2025-en.png?fit=1200%2C628&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":112915,"url":"https:\/\/support.questetra.com\/en\/addons\/tsv-string-create-cross-table-of-count-2021\/","url_meta":{"origin":189482,"position":4},"title":"TSV String, Create Cross Table of Count","author":"IMAMURA, Genichi","date":"2021-09-13","format":false,"excerpt":"Aggregates the count of data by 2 aggregation-key columns: Pivot table. Count and Percentage are tabulated as a cross table TSV. Eg, Survey Results TSV is automatically generated from Survey Records TSV. 2D frequency distribution.","rel":"","context":"In &quot;Add-ons&quot;","block_context":{"text":"Add-ons","link":"https:\/\/support.questetra.com\/en\/category\/addons\/"},"img":{"alt_text":"TSV String, Create Cross Table of Count","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/09\/tsv-string-create-cross-table-of-count-2021-nocode-en.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/09\/tsv-string-create-cross-table-of-count-2021-nocode-en.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/09\/tsv-string-create-cross-table-of-count-2021-nocode-en.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/09\/tsv-string-create-cross-table-of-count-2021-nocode-en.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/09\/tsv-string-create-cross-table-of-count-2021-nocode-en.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":112879,"url":"https:\/\/support.questetra.com\/en\/addons\/tsv-string-switch-rows-and-columns-2021\/","url_meta":{"origin":189482,"position":5},"title":"TSV String, Switch Rows and Columns","author":"IMAMURA, Genichi","date":"2021-09-13","format":false,"excerpt":"Switches the row and column indices of the rectangle TSV. The output matrix (Transposed Matrix) is obtained by changing cell(x,y) to (y,x). Used for data arrangement for frequency distribution tables and histograms.","rel":"","context":"In &quot;Add-ons&quot;","block_context":{"text":"Add-ons","link":"https:\/\/support.questetra.com\/en\/category\/addons\/"},"img":{"alt_text":"TSV String, Switch Rows and Columns","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/09\/tsv-string-switch-rows-and-columns-2021-nocode-en.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/09\/tsv-string-switch-rows-and-columns-2021-nocode-en.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/09\/tsv-string-switch-rows-and-columns-2021-nocode-en.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/09\/tsv-string-switch-rows-and-columns-2021-nocode-en.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/09\/tsv-string-switch-rows-and-columns-2021-nocode-en.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/date-tsv-create-pivot-by-month-2026-en.png?fit=1200%2C628&ssl=1","_links":{"self":[{"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/posts\/189482","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/comments?post=189482"}],"version-history":[{"count":9,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/posts\/189482\/revisions"}],"predecessor-version":[{"id":189830,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/posts\/189482\/revisions\/189830"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/media\/189453"}],"wp:attachment":[{"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/media?parent=189482"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/categories?post=189482"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/tags?post=189482"},{"taxonomy":"faq_section","embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/faq_section?post=189482"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}