0

パスであるテキスト文字列の特定の部分を引き出すために、REGEXEXTRACT の結果にインデックスを付けようとしています。特定の試合にアクセスするにはどうすればよいですか。

  A1 A2
  ------------------------------------ -----------------------
  =REGEXEXTRACT($B$2,"/[A-Za-z_-]+/") /a/b/c/d.txt

上記の式は、最初の配列値「/a/」をセル A1 に入れます。配列の 4 番目または最後の値にアクセスするにはどうすればよいでしょうか?

4

1 に答える 1

1

パスを分割するために使用することを主張するREGEXTRACT()場合は、次のリソースが役立つ場合があります。

ただし、Google スプレッドシートでは、パスとファイル名の文字列の特定の部分にアクセスする最も効果的な方法は、埋め込みスクリプトでカスタム関数を使用することです。アプリ スクリプト プログラミングに精通していることを前提としています。初めてのスクリプトの作成を参照してください。

次のコードには 2 つのスクリプトが含まれており、一方は他方の上に構築されています。たとえば、 を呼び出すpathExtract()と、指定されたパス文字列の指定されたセグメントが返されます。

/**
 * Split path into parts, return in array. If path started
 * at 'root', first part will be "/". This function may be used
 * as a custom function in Google Spreadsheets.
 *
 * @var {string} path   The search path, e.g. "/a/b/c/d.txt"
 * @return {array}      Result of splitting path at "/". 
 */
function pathSplit( path ) {
  var arr = path.split('/');
  if (path[0] === "/") {
    arr[0] = "/";
  }
  return ( arr );
}

/*
 * Get a portion of a path string. To match INDEX() function,
 * the parameter index is 1-based. Requesting index 0 will
 * result in the last element from the string. This function
 * may be used as a custom function in Google Spreadsheets.
 *
 * @var {string} path   The search path, e.g. "/a/b/c/d.txt".
 * @var {number} index  1-n, the element to extract. 0 for last.
 * @return {string}     Element [index] from path, or *ERROR*.
 */
function pathExtract( path, index ) {
  var result = "*ERROR*";
  var pathArray = pathSplit( path );
  if (index >= 1 && index <= pathArray.length) {
    result = pathArray[index-1];
  }
  if (index === 0) {
    result = pathArray[pathArray.length-1];
  }

  return ( result );
}

スプレッドシートに追加されたこれらのスクリプトでできることの例をいくつか示します。 表示される式

結果表示

于 2013-01-11T17:54:16.103 に答える