おしらせ:文章の書き方を変更します
「自分にとっての備忘録を、ですます調で書くなんて変だ」との思いで、断定調で2年ほど続けてみたんですが、既に内容が自分宛の記事ではなくなりつつあります。すごく書きづらくなってきたので、本日を機に常体から敬体に変えていきたいと思います。古い記事も、徐々にですが変更していきます。以前の形に慣れていた方は違和感があるかもしれませんが、何卒お許しください。それにしても生成AIは便利ですね。「この文章を敬体にし...
View ArticlePower Query:列の分割
基本的な機能なので、普通に使う分にはなんてことのない話なんですが。区切り文字を使って列を分割する際の話です。機能としては至極単純で、区切りたい列を選択して「列の分割」を選ぶだけです。区切りたい列を選択した状態で右クリック...
View ArticlePower Query:購入履歴から返金分を取り除く
購入履歴のデータを読み込むと、途中で間違いに気付いてキャンセルされた履歴も混じってきますよね。集計する際にはいらない情報なんで、今回はこれを取り除いてみようと思います。今回の購入履歴データについては、下記を前提としています。当日中のキャンセルには購入の後に返金履歴が入るキャンセルは、注文番号を指定して行うまた左の購入履歴テーブルは、接続のみでクエリを作成しているものとします。この場合、「購入日」「注...
View Article数式/関数/パワークエリ:金種を計算する
金種計算(紙幣や硬貨などの通貨の枚数を計算する)については、昔から色んなやり方がありますし、条件を絞れば比較的簡単に計算できます。ただ、金額範囲と通貨範囲を指定してスピルで計算しようとすると、少し面倒になります。金種自体は「金額を、大きいほうの隣りの通貨(紙幣・硬貨)で割った時の余りを、指定の通貨で割る」ことで求められます。例:「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関数/数式:縦横が重複しない組み合わせをランダムに作る
当番表やローテーションが被らないよう、ランダムに組み合わせたいと考えた時、従来であれば数式でやるのはそれなりに大変だったんですが、Microsoft365ならそうでもないなと思った次第です。例えば、5×5の枠に1~5の5つの数字を、縦横(斜めは除外)に重複しないようランダムで配置する場合で考えてみましょう。画像の場合なら、縦横の合計は全て「1+2+3+4+5」で「15」になるはずです。また重複を省い...
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