いきなり答える備忘録

G Suite・Microsoft 365・LibreOfficeなどに関するメモと日々の実験

Googleスプレッドシート

(Gスプレッドシート)エラーを除いて合計する

GoogleスプレッドシートのSUM関数で合計を求める際に、対象にエラー値が含まれていると結果はエラーになります。そこで、エラーがあっても無視して(エラーを0とみなして)合計を求める方法を紹介します。 SUM関数とIFERROR関数を組み合わせることで、エラー…

(Gスプレッドシート)URL文字列からファイル名を取得する

Googleスプレッドシートで、URLからファイル名を取得する方法についてです。 具体的な考え方として、URL中の最後の「/」より後にある文字列を取得するものとします。 REGEXEXTRACT関数を使ってURLの文字列からファイル名を取得することができます。手順 画像…

(Gスプレッドシート)最も多い文字列を取得する

Googleスプレッドシートで、多数の文字列のうち最も多く出現しているものを、関数を使って取得する方法についてです。 数値の場合はMODE関数が使えますが、文字列の場合は少し工夫が必要です。 INDEX関数やMODE関数等の組み合わせにより、最も多い文字列を取…

(Gスプレッドシート)図形や画像の重なり順を変更する

Googleスプレッドシートで、重なって表示されている図形や画像の重なりの順序を変更する方法についてです。 図形描画のダイアログ内で図形や画像を右クリックし、メニューから「順序」→「最背面へ」などと選択することで図形等の重なり順を変更することがで…

(Gスプレッドシート)独自の順序で並べ替える

Googleスプレッドシートで、ABC順とかあいうえお順ではなく、任意に設定した基準でデータを並べ替える方法についてです。 Excelの場合はユーザー設定リストの機能を使って並べ替え操作を行うことにより可能ですが、スプレッドシート関数にはこの機能がありま…

(Gスプレッドシート)図形を透過させる

Googleスプレッドシートで、図形の透明度を設定して背後を透過させる方法についてです。 図形描画のダイアログ上で、図形を選択した状態でバケツのマーク(塗りつぶしの色)を選択します。 「カスタム」という文字列の下にある「⊕」のマークをクリックします…

(Gスプレッドシート)文字列中に文字が何種類あるか数える

Googleスプレッドシートで、文字列に含まれる文字の種類をカウントする方法についてです。 MID関数やCOUNTUNIQUE関数等を組み合わせて、文字列中に何種類の文字があるかを数えられます。手順 画像ではC3セルに式を入力し、B3セルにある文字列に何種類の文字…

(Gスプレッドシート)三辺の長さから三角形が成立するか判定する

Googleスプレッドシートで、3つの辺の長さに基づき、三角形が成立するか(そのような三角形が存在するか)どうかを判定する方法についてです。 簡単な不等式を使って、三角形の成立条件を判定することができます。手順 B~D列に、三角形の各辺a,b,cの長さが記…

(Gスプレッドシート)行列の生成と各種の演算

Googleスプレッドシートで行列を生成する方法と、行列を使った各種の計算を行う方法についてです。 各要素となる数値をセルに直接入力するほか、1つの式で行列を生成することもできます。 MUNIT関数で単位行列を生成でき、SEQUENCE関数でも行列を生成できま…

(Gスプレッドシート)空白セルだけを一括置換する操作

Googleスプレッドシートで、空白セルだけを一括して置き換え、指定した値を入力する方法についてです。 対象範囲を選択してメニューから「編集」→「検索と置換」と進み、ダイアログで値を適宜設定することで空白セルの一括置換ができます。 ただし、枠線(罫…

(Gスプレッドシート)XLOOKUP関数の代替手段

GoogleスプレッドシートにはXLOOKUP関数がありません(2020年10月現在)。ただし大抵のケースは既存の機能で置換が可能です。 基本的にFILTER関数でXLOOKUP関数の代替ができます。手順 XLOOKUP関数の詳しい解説は省略しますが、検索範囲と戻り値の範囲を(VL…

(Gスプレッドシート)部分一致検索の逆引き

Googleスプレッドシートで、部分一致の逆の検索(検索値が検索範囲の値を「含んでいる」かどうか)をして値を表引きする方法についてです。「VLOOKUP関数で検索範囲側にワイルドカードをつけて検索するには」といった形で問題提起されることもあります。ただ…

(Gスプレッドシート)シートの保護と解除

Googleスプレッドシートで、書き換えを防ぐためにシートを保護したり、設定した保護を解除する方法についてです。 メニューから「ツール」→「シートを保護」と進むことで、シートを編集できるユーザーを制限したり、編集時に警告を表示できます(シートのタ…

(Gスプレッドシート)ARRAYFORMULA関数の効果とメリット

Googleスプレッドシートで重用されるARRAYFORMULA関数の効果とそのメリットについて、実例を見ながら紹介します。 ARRAYFORMULA関数を使う主なメリットとして、式のメンテナンスが容易になること、絶対参照を使わずに済ませられること、演算速度が向上するこ…

(Gスプレッドシート)期間中の特定の曜日を数える

Googleスプレッドシートで、一定の期間中に指定した曜日が何日あるかカウントする方法についてです。 複数の曜日を指定するのも容易です。 NETWORKDAYS.INTL関数を使って、特定の曜日が何日あるかを数えることができます。手順 画像ではC2,C3セルに期間の初…

(Gスプレッドシート)2つの日付から日数を求める

Googleスプレッドシートで、2つの日付からその間の日数を求める方法についていくつか示します。 何もヒネリはありませんがDAYS関数のはたらきがちょっと意外かもしれません。 2つの日付から日数を求める方法としてはDAYS関数を用いる方法、DATEDIF関数を用い…

(Gスプレッドシート)FIND関数で複数条件を指定する

GoogleスプレッドシートでのFIND関数で、検索の文字列(検索条件)を複数指定して最初に出現する位置を取得する方法です。 例としては、文字列に含まれる「@」と「#」のうち先に出現するものの位置を取得することができます。 FIND関数の第2引数(検索文字列…

(Gスプレッドシート)関数で郵便番号から住所を取得する

Googleスプレッドシートで、入力された郵便番号をもとに住所を取得する方法についてです。 ただしここで紹介するのはIMEの設定によるものではなく、関数を使って郵便番号を住所に変換する方法です。具体的には無料で利用できる郵便番号検索APIから都道府県・…

(Gスプレッドシート)区切り文字なしでJOIN関数を使う

GoogleスプレッドシートのJOIN関数のちょっとした活用についてです。 JOIN関数で区切り文字を空文字列("")にするか省略(カッコ内をカンマからはじめる)すれば単純に文字列を結合できます。CONCATENATE関数より若干記述を短くできます。手順 画像ではE3セ…

(Gスプレッドシート)郵便番号にハイフンを入れる

Googleスプレッドシートで、郵便番号が数字のみで記録されているときにハイフンを入れる方法についてです。 表示形式(書式設定)の設定により、ハイフンを入れて表示させることができます。このときカスタム数値形式を使うため、番号は(文字列として記録さ…

(Gスプレッドシート)空き番のない順位を求める

Googleスプレッドシートで、同順位(例えば1位タイ)があってもその次の数字(2位)を飛ばさずに順位をつける方法についてです。 「=RANK(値,UNIQUE(範囲))」という式で、空き番のない順位を求めることができます。手順 画像ではC列に点数が記録されています…

(Gスプレッドシート)条件にマッチする文字列を結合する

Googleスプレッドシートで、一定の条件付きで文字列を抽出して結合する方法についてです。実用性を考慮し、区切り文字を挿んで結合するものとします。 FILTER関数とJOIN関数を使って、条件にマッチする文字列を結合することができます。 手順 条件に直接マッ…

(Gスプレッドシート)シートの非表示/再表示の設定

Googleスプレッドシートで、シートを非表示にする方法と再度表示する方法についてです。 更新する頻度が低いシートや中間的なデータ加工用シート、むやみに操作されたくないシートを隠しておくのに有効です。 ウインドウ下部のシート名の右にある▼マークをク…

(Gスプレッドシート)メールアドレスを@の前後に分割する

Googleスプレッドシートでメールアドレスの文字列を「@」の前後に、つまりユーザー名とドメインに分割して取得する方法です。 SPLIT関数を使ってメールアドレスをユーザー名とドメインに分割することができます。 REGEXEXTRACT関数を使う方法もあります。 手…

(Gスプレッドシート)再計算ボタンを作る

Googleスプレッドシートで、クリックするだけでブック(ファイル)を再計算させるボタンを作成する方法です。 チェックボックスを設置してクリックすればブックは再計算されます。手順 画像のシートでは、RANDARRAY関数を使ってサイコロを振った結果を集計す…

(Gスプレッドシート)URLからドメインを抽出する

Googleスプレッドシートで、URLの文字列からドメイン部分を抽出する方法についてです。 SPLIT関数とINDEX関数を使ってURLからドメイン部分を抽出することができます。 REGEXEXTRACT関数を使う方法もあります。 手順 「www.」を除かない場合 SPLIT関数とINDEX…

(Gスプレッドシート)平方根を求める

Googleスプレッドシートで、数値の平方根(ルート)を求める方法についてです。 SQRT関数を使って数値の平方根を求めることができます。 べき乗の記号「^」を使う方法もあります。ただし演算の優先順位に注意が必要です。 手順 SQRT関数を使う方法 べき乗の…

(Gスプレッドシート)表の中のn行目(n列目)を取得する

Googleスプレッドシートで、指定した範囲の中で上からn行目(左からn列目)を抽出する方法についてです。 「=INDEX(範囲,n)」で、指定した範囲内の上からn行目を取得できます。 「=INDEX(範囲,,n)」で、左からn列目を取得できます。 ARRAYFORMULAを使っても…

(Gスプレッドシート)行を入れ替える操作

Googleスプレッドシートで、特定の行を上下に移動させ、移動先にある行を押しのけることで結果的に行同士を入れ替える操作についてです。同様にして列を入れ替えることもできます。 行を選択した状態で上下方向にドラッグし、適当な位置でドロップ(マウスの…

(Gスプレッドシート)クロス表からデータを抽出する

Googleスプレッドシートで、検索値に基づいて行と列を特定し、その行と列が交差するセルにあるデータを取得する方法についてです。 クロス表からデータを抽出するときは、INDEX関数とMATCH関数を組み合わせるのがオーソドックスな方法です。 実はDGET関数だ…