• 締切済み

GASで文字列を下から検索し2列目から該当列を削除

Google sheetsのGASで特定文字列を下から検索し2列目から該当列までを削除する方法を探しています。 添付図のようにダウンロードするデータに余計な区分が入っており、GASで並べ替えを行うと上に集中するので、その余分な区分の文字を含むセルの最下限の列から2列目を選択範囲にして一気に消したいです 該当の文字列を判定して消す方法だと1列ずつの処理となり、タイムオーバーを吐きまくったので、結果的に余計な列をタイムオーバーを吐かせずに消せる方法ならば何でも良いです よろしくお願いします。

みんなの回答

  • dedypraja
  • ベストアンサー率40% (88/219)
回答No.1

下から特定文字列を検索し、その列から2列目以降を削除するには、以下のGASコードを使用できます。 function deleteColumnsFromLastRow() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); // Sheet1を変更する var lastRow = sheet.getLastRow(); var searchRange = sheet.getRange(lastRow, 1, 1, sheet.getLastColumn()); // 最後の行の全列を対象とする var searchString = "余分な区分"; // 削除したい文字列を指定する var searchResult = searchRange.createTextFinder(searchString).findPrevious(); if (searchResult) { sheet.deleteColumns(searchResult.getColumn() + 1, sheet.getLastColumn() - searchResult.getColumn()); // 検索結果の列から2列目以降を削除する } } このコードでは、最後の行を取得し、その行から全列を検索対象とします。次に、指定された文字列を検索し、最後に見つかった列から2列目以降を削除します。削除する列が見つからない場合は何も行いません。この方法で、余分な区分の文字列を含む列から2列目以降を一括で削除することができます。

GASFling
質問者

補足

すいません行と列を間違えてました あと手動か自動かは分かりませんがchatGPTで質問しても出なかったので、聞いています 一旦締め切らせて頂いて再度質問あげさせていただきます

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • GASで文字列を下から検索し2列目から該当列を削除

    Google sheetsのGASで特定文字列を下から検索し2行目から該当行までを削除する方法を探しています。 添付図のようにダウンロードするデータに余計な区分が入っており、GASで並べ替えを行うと上に集中するので、その余分な区分の文字を含むセルの最下限の行から2行目を選択範囲にして一気に消したいです 該当の文字列を判定して消す方法だと1行ずつの処理となり、タイムオーバーを吐きまくったので、結果的に余計な列をタイムオーバーを吐かせずに消せる方法ならば何でも良いです よろしくお願いします。 それとchatGPTでも答えは出ませんでしたので…

  • テキストの文字列検索で、検索した文字の色を変える方法は?

    教えてください。 テキストボックスの内容を読み込んで、指定した文字列を検索するというコードを書いているのですが、 jl = InStr(i, Text2.Text) If (jl > 0) Then のように、テキストを一行ずつOpen~で読み込んで、Instrで指定した文字があるかどうかを判定しています。 これでは、検索した文字があったかどうか、という判定はできますが、検索あるいは置き換えした文字がどれであるか、またトータル何件あったかが分かりません。 検索ならば、一つずつ対象文字を発見したときにその文字の場所で止めて、またその文字の色を変える方法が分かりません。 また、置き換えならば、全文対象に一気に置き換えて、その置き換えた文字の色を変えて分かりやすくしたいのですが、その方法が分かりません。 検索あるいは置き換えの方法はマニュアルにあるのですが、その場所で止めて色を変えるというコードがなかなか載っていません。 どなたか教えてくださいませ。 お願いいたします。

  • 【Excel】文字列だと並べ替えができません

    書式設定の「数値」で並べ替えをすると普通にできるのですが、数に円などの単位をつけて文字列に設定した場合、並べ替えができません。 文字列では並べ替えができないのでしょうか? もしそうでしたら、数値に単位をつけて並べ替えをする方法を教えてください。 バージョン2019利用です。

  • 15文字を超える文字列のランク付け方法

    いつもお世話になっております。 Office2007にて、ExcelVBAでプログラムを組んでいるのですが、 現在、15文字を超える文字列の並べ替えについていい方法が浮かばず 悩んでおります。 例えば、以下のケースにおいて、B列に、A列の長い文字列の大小関係を 判定して、RANK関数のように順位を表示させたいのですが、名案が中々 浮かびません。文字列長15桁を超えてしまうと、様々な関数が機能しないようです。               A                        B 1234567890123456789012345678901234567890 0987654321098765432109876543210987654321 6789012345678901234567890123456789012345              ・・・ ⇒               A                        B 1234567890123456789012345678901234567890        2 0987654321098765432109876543210987654321        1 6789012345678901234567890123456789012345        3              ・・・ 昨日半日悩んでしまい非常に困っています。 どなたかご教授いただければ幸いです。

  • (VBA)対応する番号の下に行挿入して文字列を追加

    以下を行うVBAのコードを知りたい シート名「Extra」のA列に文字列が複数行に渡って記入されています 必ずA1は1で数行後に2と以後連番が続く形式です。 Sheets名「Time」は、 A列に1から始まる連番 B列にA列に対応する文字列が対であります。 やりたいことは、 「Time」のA列の連番と「Extra」にある同じ連番行の一つ下に行を挿入して 「Time」のA列と同じ行のB列の文字列を書き込みです。 例えば、「Extra」が 435 ABC で 「Time」 435 123456 ならば 「Extra」を以下のように書き換える 435 123456 ABC 判りにくい内容でしょうがよろしくお願いします。 ’-----------------------------------------

  • AWKでの特殊文字の削除

    今処理しているデータが以下の様なデータです。 name、 lower ’3e-3 このデータから必要な部分(1,3列目)を抽出することは簡単にできるのですが 1列目の文字列についている余分な”、”(カンマ)、3列目についている余分な’(シングルクォート)を削除する方法がよくわかりません。 どなたか教えていただけないでしょうか?

  • 文字列の並べ替えで、お知恵拝借

    Excel 2003、2013 を使用しています。 添付図に基づいて説明させていただきます。 列Bの文字列データを[昇順]で[並べ替え]ると、 “ふりがなを使う”の場合は、列Cに示した番号順で、 “ふりがなを使わない”場合は、列Dに示した番号順で、 上から並べ替わります。 しかしながら、私の実力では実際に[並べ替え]操作をしてみないことには、列C、Dの数値が判明しません。 質問は、=RANK()関数みたいに、[並べ替え]操作をしなくても、列C、Dに示した数値を求めたいので、その方法を教えてください。 差行列、作業シートを使用も、式が寿限無式になることも厭わないので、マクロを使わない方法を教えてください。 文字列の長さは最大10文字としておきます。

  • 検索文字に該当し除外字に該当しない情報を抽出したい

    検索文字に該当し除外字に該当しない情報を抽出したい  ■やりたいこと Excelの別シートに並んでいる顧客データから、検索文字に該当し、かつ、除外文字に該当しない住所を別シートに抽出したいです。 ---------------------------------------------------------------------------------------------------------  ■条件 シート参照元:B列に住所,C列に郵便番号,D列に名前,E列にメアドが並んでいます。 シート参照先:A1に検索文字 A3に除外文字が入力されています。 検索文字に該当し、除外文字に該当しない住所のみを参照元と同じ列の並びに表示させたいです ---------------------------------------------------------------------------------------------------------  ■除外文字がない場合においての数式 参照先シートのB2セルに =IFERROR(INDEX(参照元!B$1:B$10,LARGE(INDEX((FIND($A$1,参照元!$B$1:$B$10&$A$1)<LEN(参照元!$B$1:$B$10))*ROW(参照元!B$1:B$10),0),COUNTIF(参照元!$B$1:$B$10,"*"&$A$1&"*")+1-ROWS(B$2:B2))),"") と入力 過去の質問"INDEX関数で住所の途中から抽出する方法"こちらの回答No.5を応用させていただいています ---------------------------------------------------------------------------------------------------------  ■判らないところ 除外文字がない場合においての数式を応用してやろうとしましたが、うまくいきません。 (1)内側のIndex関数の"範囲"の部分(おそらく"*ROW(参照元!B$1:B$10)"の前の()内の「比較演算を行うところ」の設定)がわかりません。 (2)LARGE関数の"順位"部分の設定(おそらく"-ROWS(B$2:B2)"の前の「検索文字があり、且つ、除外文字がない行の数をカウントする」の設定)がわかりません。        (1)は私なりに色々試してみましたが、失敗しました。(2)は私の力不足でどうしたらよいか全く浮かびませんでした ---------------------------------------------------------------------------------------------------------  ■過去の質問 INDEX関数で住所の途中から抽出する方法 https://okwave.jp/qa/q9362447.html アスタリスクを使用しindex関数で抽出したいです https://okwave.jp/qa/q9362227.html”  よろしくおねがいします

  • 文字を検索し、同行の離れたセルに単語と数値を反映

    B列から「○○」という文字を検索し、 (1)該当した行のIセルに「小計」と入力 (2)Jセルに、Cセルの数値に「個」を付けたものを表示させる という作業を延々と繰り返しています。 該当する行はランダムにあります。 並べ替えが出来ない状態なので、VBAなのかな??と思うのですが、 マクロの記録ぐらいしかやったことがなくて…。 良い方法があれば教えて下さい。 お願いします。

  • 文字列でメールのフィルタリングはできますか?

    メールフィルタですが、アドレスとかURL判定とかはやったことあるのですが 件名の文字列でフィルタリングする項目がないように思えます。 件名や本文の文字列でフィルタリングする方法があれば教えてください。

    • ベストアンサー
    • au

専門家に質問してみよう