数式/関数/パワークエリ:金種を計算する
金種計算(紙幣や硬貨などの通貨の枚数を計算する)については、昔から色んなやり方がありますし、条件を絞れば比較的簡単に計算できます。ただ、金額範囲と通貨範囲を指定してスピルで計算しようとすると、少し面倒になります。金種自体は「金額を、大きいほうの隣りの通貨(紙幣・硬貨)で割った時の余りを、指定の通貨で割る」ことで求められます。例:「52,431円」の場合、千円札は何枚必要か「52,431」を「5千円札...
View ArticlePower Query:複数ブックの複数シートを結合して読み込む
今回は「複数ブックの複数シートを結合して読み込む」クエリの作り方を説明します。最初にこれだけ。このクエリはマウス操作だけではできません。Power Query...
View Article数式/関数:グループに連番を振る
なんとなく思いついたので、備忘録として残しておきます。数式を使って、縦に並んだデータにグループごとの連番を振る方法を考えてみました。データはグループ列でソートされている前提です。というかそうしておかないと、何がなんだか分からなくなります。=LET( _a,DROP(TOCOL(B:B,1),1), _b,VSTACK("",DROP(_a,-1)),...
View ArticlePower Query・数式/関数:法人名から法人格と組織名を分ける
会社名(法人組織名)から、法人格(「株式会社」など)とそれ以外を分ける方法について。関数を使って数式でやるにしても、パワークエリでやるにしても、法人格のリストは用意したほうがいいです。Microsoft365でやるなら、TEXTSPLITが使えるので数式のほうが断然簡単です。テーブル2に法人格リストを用意しているものとして、数式の場合(Microsoft365/Web版):B3:=SUBSTITUT...
View Article数式/関数:小文字のカナを大文字に修正する
銀行振込の際、いざ振り込もうと思ったら振込先名(受取人名)に「ッ」や「ャ」などの小さなカナ文字(半角)が混じっていてエラーを起こしたことはないでしょうか。拗音や促音を表現するための小さなカナ文字は、「捨て文字」とか「小書き文字」とかいうんですが、銀行振込の依頼人名には使うことができません。総合振込や振込先の一括登録の際には、修正しておく必要があります。とはいえ、これを目でチェックして修正するのは地味...
View ArticlePower Query:AとBのリストを比較して抜き出す
慣れないと混乱すると思いますので、2つのリストを使って比較抽出する方法をまとめておきます。「A」と「B」のリストがあるものとして、AとBのすべて = List.Distinct(A & B) もしくは = List.Union({A, B})AとBで重複するものだけ = List.Intersect({A, B})AにあってBにない = List.RemoveItems(A,...
View Article数式/関数:文字列から数字だけを抜き出す
前にどこかで書いた気がするんですけど、忘れてしまったので改めて。下の A列のような文字列と数字が混じった値から「数字」だけを抜き出す方法です。「『数字以外』だったら、TEXTSPLITを使うだけなのに」と思った人は惜しい。というのも、その「数字以外の配列」を区切り文字にして、更に...
View ArticlePower Query:クエリ名の文字列からクエリを呼び出す
実のところ必要性はそれほど感じていないんですが、やれるかどうかに興味があったので「クエリ名の文字列からクエリを呼び出す方法」を考えてみました。予め、上記の3つのテーブルは「テーブル1」「テーブル2」「テーブル3」として、クエリを作成済(接続のみ)とします。クエリ名といってもただの文字列ですから、これをそのままクエリとして認識させることはできません。ではどうするかというと、今回の記事の肝となる「セクシ...
View Article数式/関数:行ごとチェックしてカウント/抽出する
数式で「同じ行に0以外の数値が1つでもあれば」のような、「行全体」を条件にするのって以前は若干面倒でしたけど、BYROW関数とイータ縮小ラムダの組み合わせでとても簡単になりました。件数=COUNT(1/BYROW(1/B2:F5,COUNT))これだけ。抽出だったら下記の通りです。抽出=FILTER(A2:F5,BYROW(1/B2:F5,COUNT)>0)見出し行は...
View ArticlePower Query:特定の文字が含まれる値を置換する
パワークエリでの文字列の変換には、「値の置換(Table.ReplaceValue)」を使いますよね。「A」を「B」に置き換えするような場面なら、これでできます。ただパワークエリでは、今のところワイルドカードや正規表現が使えません。「A...
View Article新年のご挨拶
あけましておめでとうございます。既に三が日もあけてしまいましたが、今年もエクセルネタをあれこれと書いていきたいと考えています。Web検索をした時にピンポイントな記事を見つけられずに困ることがあるので、それを補完するつもりでやっていますが、先走って書いた内容に不備等がありましたらコメントいただけると助かります。なるべくコンスタントに書いていきたいと思いつつ、昨年は月に数件しかアップできていませんでした...
View Article数式/関数:文字列から数字だけを抜き出す改
先日、こんな方法もあったなと思い出して「数式/関数:文字列から数字だけを抜き出す」を書いたところなのに、REGEXEXTRACT関数が使えるようになったので必要なくなってしまいました。いえ、いいことなんですけど。数字を含む文字列から数字だけを抜き出す場合、TEXTSPLIT関数ではなく...
View ArticlePower Query:追加情報だけを読み込む
2025年は、基礎的な操作についても取り上げていきたいと考えています。というわけで今回は、古いテーブルと新しいテーブルを突き合わせて、古いテーブルにはない追加された行だけを抜き出す方法について考えてみます。いわゆる差分抽出(不一致クエリ)というやつです。とてもよく使いますし、過去にも書いたことがあるんですが、改めておさらいしておきます。今回はテーブルの突合をやりますが、リストの場合はこちらを参考にし...
View ArticlePower Query:列名とデータ型を揃える
2つのテーブルを縦に結合する時は、列の名称とデータ型が揃っている必要がありますよね。データ型については、結合した時に揃っていない列が...
View Article数式/関数:SORT関数の昇順/降順の指定方法まとめ
Excel2021で追加された SORT関数なんですが、Googleスプレッドシートの SORT関数とは微妙に仕様が異なります。それどころか同じ Excelなのに、後で追加された GROUPBY関数や...
View Article数式/関数:年と月を指定して1ヶ月分の日付を表示させる
セルに年と月を入力して、1ヶ月分の日付リストが欲しい場合、皆さんはどのようにされているでしょうか。方法はたくさんありますし、スピルに対応していないバージョンでも上のセルと比較しながらやればいいんですが、最新の Excelなら1セルに数式を入れるだけで完成します。1ヶ月分すべて=LAMBDA(年,月,LET( 月初,DATE(A2,B2,1), 月末,EOMONTH(月初,0),...
View Article数式/関数:フィルタで抽出した値を条件付きで集計する
以前にも一度書いたんですが、定期的に質問が出るので記事も定期的にあげてみます。フィルタで抽出してから条件指定で計算する方法です。フィルタをかけるなら全部フィルタでやるべきですし、数式で計算するなら全部数式でやればいいんですが、「フィルタをかけてから SUMIFS関数/COUNTIFS関数で計算」に強いこだわりのある人が時々います。幸い、Microsoft365(もしくは...
View Article数式/関数:特定の曜日だけを抽出する
先日の「年と月を指定して日付リストを作る方法」の続きというか別アプローチです。一から日付リストを作る場合は前回の方法でよいのですが、既に用意されているリストから特定の曜日だけを抽出する場合はどうすればいいでしょうか。指定の曜日を抽出する場合、まずは日付が何曜日かを判定する必要があります。判定方法としては WEEKDAY関数(もしくは...
View ArticlePower Query:新規のクエリを作成する
今更なんですが、結構この説明をするのに時間を取られることがありまして……何もない状態から「空のクエリ」を作る方法を下記にまとめています。新規クエリを作る方法は大きく分けて2つあります。ブックから操作して作る方法と、Power Queryエディタ上から作る方法です。まずはブックから作る場合の方法です。ブックから新規クエリを作る方法[手順1][データ]の[データの取得] [手順2]→[その他のデータ...
View ArticlePower Query:複数ファイルの1つ目のシートを読み込んで結合する
多分一番要望として多いからだと思うんですが、複数のファイルを一括で読み込むクエリの質問が増えてきています。ただ、ヘルパークエリどころかパワークエリがどんなものかすら、よくわからないまま使っている人がかなり多い印象があります。なので質問がちんぷんかんぷんということもよくあります。「ノーコード・ローコードといっても意味不明なまま触るんだったら...
View Article数式/関数:スピル配列の最終行/列の値を取得する
本日3つ目。スピル配列の最終行列の値を取得する方法についてです。わかる人からすると、「こんなことくらい」なんでしょうけど、時々「検索結果」に出てくるんですよね、これ。Ecxel2021以降、数式の結果はスピル(動的配列)で1セルからはみ出して表示されるようになりました。その結果を参照するスピル参照演算子も追加されています。例えば...
View Article数式/関数:複数条件で検索する
複数条件で合計を出すのは SUMIFS関数。複数条件で件数を出すのは COUNTIFS関数。では複数条件で検索をするのはなんでしょう。別段、これと決まった関数があるわけではないんですが、大体は「配列の論理演算」を使う場合が多いでしょうか。論理値(「TRUE」と「FALSE」)に演算を加えることで、AND条件や...
View Article数式/関数:連続データの末尾に小計を入れる
小計行を入れたい場合、ピボットテーブルやデータの「小計」機能を使えばいいんですが、末尾の行の右横に小計を表示させたい場合もあるかと思います。単純には下のセルと比較する数式を組めばいいです。C1:=IF(A2=A3,"",SUM(B$1:B2)-SUM(C$1:C1))...
View Article数式/関数:「0」を表示させない
今更なんですが、エクセルユーザーでは比較的多い要望なので、空白セルを参照した時に「0」を表示しない方法をまとめました。単純にセルを参照した場合、あるいは検索系関数の検索結果が空白セルだった場合、数式の結果は「0」となります。これは、エクセルでは数式の結果で「何も返さない」はできないからです(エクセルでは「表示させる」ことを「返す」と表現します)。Googleスプレッドシートでは「空白」を返すことがで...
View Article数式/関数:数に合わせて金額を案分(按分)する
エクセルに限らず、案分(按分)計算では作業列を使うのが基本です。というのも場合によっては結果に端数が発生するからです。例えば下の画像の例で見てみましょう。B1の金額を B4:B8の人数に合わせて案分計算しました(四捨五入の場合)。=ROUND(金額/人数計*@人数,0) ところがこれだと、合計が最初の金額(125,000円)より1円増えてしまいます。原因はすべての行に丸め計算をして(上では...
View ArticlePower Query:いずれかの検索ワードに部分一致する行を抽出する
久々のパワークエリネタです。検索値が用意したリストとデータ一致するかをチェックする方法はいくつかあるんですけど、「~を含む」を検索する場合は方法が限られてきます。上記の画像では、「電気・水道・ガス」のいずれかのワードを含む値をテーブル1から抽出しています。これが一致する値/一致しない値だったらマージしてから抽出する形でもいいんですけども。ひとまず簡単なので、「検索リストのいずれかに一致する」行の抽出...
View ArticlePower Query:セル値をパラメータ(変数)にする
パワークエリ便利ですよね。ただ使っている内に、「セルの値を条件にして抽出したい」のようなことを考えるようになるかもしれません。セル値をパラメータ(変数)として使う方法はいくつかありますが、単純にはクエリとして読み込めばいいだけなので、それほど難しくはありません。以下、かなり丁寧に説明していますので、パラメータの設定方法だけ知りたいという人は、他の手順はすっ飛ばしてこちらから読んでください。上の画像の...
View Article