Officeスクリプト 指定列の文字列を検索してカウントする

ある列に格納されている文章データに対して、文字列検索を行い合致したものに対して処理を行うスクリプトを紹介します。

ドノ

載せているスクリプトの検索文字列には例が入っていますので変更して活用してみてください

目次

指定の列データにおいて文字列を検索

検索文字列と検索する列データを指定して文字列を検索するスクリプトを紹介します。

下記の例では以下のような条件でスクリプトを作成しています。

  • 検索文字列:”検索文字列”
  • 検索する列:A列
  • 結果列:B列
  • 処理:文章中の検索文字列の数を入力
function main(workbook: ExcelScript.Workbook) {

    // 検索文字列、検索列、処理列の設定
    const searchString = "検索文字列";  // ここに検索したい文字列を入力してください
    const dataColumn = "A";            // 検索列を設定してください(例: "A")
    const resultColumn = "B";          // 検索列を設定してください(例: "B")

    // アクティブなワークシートを取得
    const sheet = workbook.getActiveWorksheet();

    // 検索列のデータを取得
    const lastRow = sheet.getUsedRange().getRowCount()
    const values = sheet.getRange(dataColumn + "1:" + dataColumn + lastRow).getValues();

    // 検索結果を格納する配列
    const result: number[] = [];

    // 各セルの文字列に対して検索を実行
    values.forEach((row) => {
        const cellValue = row[0] as string;
        if (cellValue) {
            // 正規表現で検索文字列の出現回数をカウント
            const matchCount = (cellValue.match(new RegExp(searchString, "g")) || []).length;
            result.push(matchCount);

        } else {
            // 空セルの場合は0を追加
            result.push(0);
        }
    });

    // 結果列に検索文字列の出現回数を出力
    const resultRange = sheet.getRange(resultColumn + "1:" + resultColumn + lastRow);
    resultRange.setValues(result.map((count) => [count]));
}

上記スクリプトの実行結果は下記になります。

Sponsored link

Officeスクリプトの学習

オフィススクリプトを書籍で学習したいという方はコチラがオススメです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

コメントは日本語で入力してください。(スパム対策)

CAPTCHA

目次