タグ

excelに関するteddy-gのブックマーク (81)

  • 因子分析をExcelで理解する - Qiita

    主成分分析とは似て非なる手法として「因子分析」(Factor Analysis) があります。 主成分分析(PCA)では、説明変数に対して重み行列(固有ベクトル)a を線形結合した「主成分」 yPC1を合成しました。ここで、主成分は、説明変数と同じ数だけ定義します。 yPC1 = a1,1 x1 + a1,2 x2 + a1,3 x3 + a1,4 x4 + a1,5 + ... 因子分析では、説明変数(観測変数)x が「因子」(factor) という潜在変数から合成されるという考え方に基づき、その因子得点 f と重み行列(因子負荷) w 、そして独自因子 e を特定します(主成分分析に独自因子という考え方はありません)。 x1 = w1,1 f1 + w1,2 f2 + e1 x2 = w2,1 f1 + w2,2 f2 + e2 x3 = w3,1 f1 + w3,2 f2 + e3

    因子分析をExcelで理解する - Qiita
    teddy-g
    teddy-g 2023/10/14
    因子分析をEXCELでやる方法…なんだけど、この通り進めていくと途中で手詰まりになる。おとなしくRかPython使った方が早い。
  • ExcelのSUMPRODUCT関数の使い方|範囲または配列の積を合計する

    掛け算した結果が複数あり、それを合計したい場合、SUMPRODUCT関数が便利です。SUM関数でも求めることができますが、SUMPRODUCT関数なら1つの数式で可能です。 SUMPRODUCT関数の書式から使い方、応用まで幅広くご紹介しています。

    ExcelのSUMPRODUCT関数の使い方|範囲または配列の積を合計する
    teddy-g
    teddy-g 2023/05/28
    SUMPRODUCTで特定の文字を含むセルに紐づけられた数字セルを足したり掛け合せたりするやつ。時々使うテクニックだが忘れがち。備忘。
  • Excel VBA DateDiff関数の使い方と2つの日付間をループする | やさしいExcelVBA

    今回はDateDiff関数の使い方と、サンプルとして2つの日付の日数分ループする方法についてご説明します。 DateDiff関数は指定した2つの日付の日数や月数、年数を取得するために使用します。 日付を操作する場合に、日数分ループするなどによく使用します。 日付の指定方法は「IsDate」「DateValue」「DateSerial」「DateAdd」「DateDiff」と色々ありますが、今回はこの「DateDiff関数」を使用した方法になります。 その他の日付や時間の操作は次の記事をご覧ください。 IsDate関数の使い方と日付に変換する方法DateSerial関数の使い方と月初、月末の指定DateValue関数、TimeValue関数の使い方と日付、時刻の変換方法DateAdd関数の使い方と何日(時間)後を取得する方法 1.DateDiff関数の使い方 DateDiff関数は指定した2

    Excel VBA DateDiff関数の使い方と2つの日付間をループする | やさしいExcelVBA
    teddy-g
    teddy-g 2023/01/06
    EXCEL VBAではDatediffを使ってループさせるとX日間の処理ができる。日付を足すのはDateAdd。時系列データの簡易処理に。
  • 【Excel関数】指定範囲で空白でない最初のセル位置を取得したい - Qiita

    やりたいこと 次のような表があった場合に、各行で値が入っている最も左のセルがどこなのかを知りたい。 これをExcelのワークシート関数(VBAを使わずに)だけで実現したい。 どのようにして取得するのか 実行環境 Excel のバージョン 確認環境:Office365 ただし、INDEX関数とMATCH関数が使えれば、他のバージョンでも利用可能なはず 方針 INDEX関数が、第一引数に配列を指定できることを利用します。 (下記の1のパターン) 数式の推移と解説 F列の数式を入れることで、各行の最も左にある値の入ったセルの列番号(G列)を取得することができます。 表の4行目を例として解説します。 = MATCH(0,INDEX(0/(A4:E4<>""),),0) INDEXの第一引数に 0/(A4:E4<>"") を指定。ここに注目です。 = MATCH(0,INDEX(0/({FALSE,

    【Excel関数】指定範囲で空白でない最初のセル位置を取得したい - Qiita
    teddy-g
    teddy-g 2022/10/17
    0/{対象セル}として数字が入ってるセルはゼロ値、それ以外はエラーにした配列にし、MATCH関数でゼロにマッチした部分を抽出すると。なるほど。
  • テーブルを使ったドロップダウンリストは時代遅れに!? エクセルの新関数でもっと便利に【残業を減らす!Officeテクニック】

    テーブルを使ったドロップダウンリストは時代遅れに!? エクセルの新関数でもっと便利に【残業を減らす!Officeテクニック】
    teddy-g
    teddy-g 2022/09/22
    ここで覚えるべきは一点だけ。「[元の値]の入力欄に「=製品マスタ!$E$2#」と入力します。(中略)UNIQUE関数の結果はスピルで抽出されます。(中略)動的配列を参照する記号が最後の「#」になります。」
  • FILTER関数で検索条件を「空白以外」とするには?|除外

    ここでは、FILTER関数で「空白以外」と条件指定する方法を解説します。 「〇〇以外」と指定する方法を知っていれば、簡単に指定できます。 他の関数にも応用できますよ。

    teddy-g
    teddy-g 2022/09/22
    Filter関数を使って空白以外を抽出するというネタは重宝しそう。範囲指定して<>""とするだけ。
  • エクセル バブルチャートの作り方

    エクセルのバブルチャートの作り方を紹介します。 見出しを含めないでデータ 3 列を範囲選択し 挿入 > バブル チャートの挿入 から、バブルチャートグラフを作成できます。 3 種類のデータの相関関係を見つけるのに向いています。 ラベルに名前を表示したり色分けできます。Z 軸が円の大きさになります。グラフが重なるときの順番や X 軸と Y 軸を入れ替えられます。 バブルチャートの作り方 グラフにする [データ 3 列] を見出しを含めないで範囲選択します。左から X 軸、Y 軸、Z 軸の値になります。Z 軸が円の大きさになります。 [挿入] タブをクリックし、グラフグループにある [バブル チャートの挿入] をクリックして一覧の中から [種類] を選択します。 データのラベルを表示する グラフを選択した状態で [+] をクリックして [データラベル] をチェックします。[▼] から表示する位

    エクセル バブルチャートの作り方
    teddy-g
    teddy-g 2022/02/28
    Excelのバブルチャートもいっつも調べ直してる…。備忘。
  • ピボットテーブルで一意の値をカウントする方法は?

    デフォルトでは、重複する値を含むデータの範囲に基づいてピボットテーブルを作成すると、すべてのレコードもカウントされますが、場合によっては、XNUMXつの列に基づいて一意の値をカウントして適切な値を取得する必要があります。スクリーンショットの結果。 この記事では、ピボットテーブルの一意の値をカウントする方法について説明します。 ヘルパー列を使用してピボットテーブルの一意の値をカウントします Excel2013以降のバージョンの値フィールド設定を使用してピボットテーブルの一意の値をカウントします ヘルパー列を使用してピボットテーブルの一意の値をカウントします Excelでは、一意の値を識別するためのヘルパー列を作成する必要があります。次の手順で実行してください。 1。 データ以外の新しい列に、この式を入力してください =IF(SUMPRODUCT(($A$2:$A2=A2)*($B$2:$B2

    teddy-g
    teddy-g 2021/03/08
    ピボットでユニークカウントする方法。なるほどという感じ。条件を複数掛け合わせるのにSUMPRODUCTを使っているのがポイント。
  • 【ExcelVBA】HTTP/HTTPS通信でWebページを取得する - Qiita

    はじめに 業務でVBAのプログラムを作っていた時に、内閣府の祝日情報を扱いたいと思ったのですが、VBAではお手軽にHTTP/HTTPS通信出来る組み込みの関数が用意されていませんでした。 (※内閣府の祝日情報はCSV形式で提供されています。) そこで様々なサイトを参考にしながら、HTTP/HTTPS通信でWebページを取得できるモジュール(クラス)を作成してみました。 作成したクラス VBAでHTTP通信するプログラムを作るにあたり、こちらの記事を参考にしてベースのプログラムを作りました。 また、HTTPS通信に対応させるにあたって、こちらの記事を参考にしました。 幾つかのサイトで紹介されていたサンプルコードにはCreateObject("MSXML2.XMLHTTP")が使われていましたが、この書き方だとTLS1.2を利用しているページでエラーとなってしまいます。 HTMLではなく単なる

    【ExcelVBA】HTTP/HTTPS通信でWebページを取得する - Qiita
    teddy-g
    teddy-g 2021/01/24
    HTTPSでちゃんとresponseBody取れるのは良い。問題はUTF-8だ。
  • エクセルVBAでIEを使わずにHTMLドキュメントを取得する方法

    エクセルVBAでHTTPリクエストをする方法をお伝えしました。 しかし、この方法で取得したHTMLドキュメントは”文字列”なんですね。 正規表現を使って処理をすることはできますが、getElement~メソッドを使ってIDやClass、タグ名などを使って要素を取り出すということが残念ながらできません。 ということで、今回はエクセルVBAでHTTPリクエストにより取得したHTMLテキストから、HTMLドキュメントオブジェクトを生成する方法をお伝えします。 つまり、IEを使わずにHTMLドキュメントを取得するということになります。 では、行ってみましょう。 前回のおさらいと今回のお題 まずおさらいからです。 前回のプログラムはこちらです。 Sub HTTPリクエスト() Dim httpReq As XMLHTTP60 Set httpReq = New XMLHTTP60 httpReq.O

    エクセルVBAでIEを使わずにHTMLドキュメントを取得する方法
    teddy-g
    teddy-g 2021/01/24
    HTMLDocumentにWriteすればエレメントでアクセスできるのは便利。
  • Mac版ExcelでVBAのDictionaryを使えるようにするまで - Qiita

    Mac版のExcelを使ってVBAを開発していると使えない機能があって嫌になることが投げ出したくなることが、VBAの勉強を初めて1週間で、すでに2回もありました。(いやもっとあったけど、Macに限る話じゃないからカウントしません。) 1つ目は、ユーザーフォームを開発できない。 これ致命的じゃないでしょうか?マイクロソフトさん。2011年のMacExcelでは使えていたみたいですけど、2016年版くらいから使えなくなったという、後のバージョンで使えなくなるというマイクロソフトさんお得意の、機能を減らして新バージョンを購入させる戦法ですね。。 2つ目は、Mac版ではDictionaryが使えないということ。これも致命的というか、もうVBAMacで開発できない、動かないと言っているようなもの。ユーザーフォームが使えないのは妥協しても流石に根幹的な機能であるDictionaryが使えないのは、

    Mac版ExcelでVBAのDictionaryを使えるようにするまで - Qiita
    teddy-g
    teddy-g 2020/06/30
    Mac版ExcelではDictionaryが使えないという衝撃の事実
  • 【VBA】Formatで日付・時刻、数値、文字列の表示設定

    Format関数って使ってますか? Format関数は出力表示する際の表示形式を設定する場合に使用します。日付・時刻の表示形式は、和暦や曜日の表示なども色々と設定できるようになっていますので、使う機会も多いかと思います。 この記事では、Format関数について

    【VBA】Formatで日付・時刻、数値、文字列の表示設定
    teddy-g
    teddy-g 2020/06/30
    Excel VBAで日付をフォーマットするときはFormat関数が便利
  • Easy PCA - 簡単に主成分分析ができるページ

    At this site, you can easily execute PCA(principal components analysis). You can try by clicking the 'Show Demo' button.

    teddy-g
    teddy-g 2020/05/31
    EXCELで作業しててちょっとPCAで散布図作ってみたいなーというときに超便利。
  • VBAでJSONを読み込んでみる - Qiita

    なんかふと気になったのでExcelでJSONを読み取る方法を探した。 JSONパース自体はこちらを参考にさせてもらった。 ExcelでJSONを扱う場合のつまずきポイント まず前提として、外部ファイルであるJSONファイルを開き読み込んでシートに一覧出力する、 という処理を行いたい。 JSONの構造 JSONの構造は下記。 {"tweet":[ { "id":"0001", "daytime":[ { "year":"2019", "month":"01", "day":"01", "hour":"12", "minute":"00" } ], "contents":"テストテストテスト" }, { "id":"0002", "daytime":[ { "year":"2019", "month":"01", "day":"01", "hour":"12", "minute":"00" }

    VBAでJSONを読み込んでみる - Qiita
    teddy-g
    teddy-g 2020/02/13
    ScriptControlは64bitでは無理なんだよたえこ。
  • VBAで安全にエラーハンドリングする - Qiita

    VBAは「Try-Catch」ができない!? 「!?」なんて言ってますが、もちろんできないです。(笑) ちなみに、VB.NETならできます。 ただ、Try-Catchがあろうなかろうが、正しくエラーハンドリングができるかどうかは別です。 大事なのは、モジュールを構造化したときに、 正しい経路で、エラーを伝播できるか だと思います。 ということで、VBAにおけるエラーハンドリングについて説明していきます。 何もしなかったらどうなる? こんな処理を考えてみましょう。 ' こいつは上位 Sub Main() ErrorMethod MsgBox "完了しました。" End Sub ' こいつは下位 Sub ErrorMethod() Err.Raise 513, "なにか起きた" End Sub このとき、Mainが上位、ErrorMethodが下位になります。 下位モジュールでエラーが起きてま

    VBAで安全にエラーハンドリングする - Qiita
    teddy-g
    teddy-g 2020/02/13
    Try Catchを実装する気はないのだろうか。いまどきOn Error Go ToってBASICかよ!ってBASICだったな。
  • 宇宙一わかりやすい?VBA-JSONを使ったJSONパースのしかた - Qiita

    はじめに VBAでJSONをパースする際にはCreateObject("ScriptControl")を使用するのが一般的でしょう。(サンプル例) しかし、この手段は32bit限定であり、64bitでは使用できません。将来性を考えたら他の手法を用いるべきであり、JSONパースのライブラリーとして一般的なVBA-JSONを使ってみることにしました。 導入の背景 Excel2010のサポートもそろそろ来年にきれるし、必要なときに必要なだけバラバラに買っていたのをやめて、Office365にバージョンアップしようとしたら64bit版がインストールされてしまって、JSONを使えなりました。なお、"HtmlFile"なる手段を使うやり方もあるようですが、IEやedgeの将来性を考えたらこれもつかいたくありません。 今までVBA-JSONを見送った背景 なら、VBA-JSONしかないとなりましたが、

    宇宙一わかりやすい?VBA-JSONを使ったJSONパースのしかた - Qiita
    teddy-g
    teddy-g 2020/02/13
    いろいろ試したが、結局このVBA-JSONを使わないと問題解決しなかった。ユーザ定義関数にして作業が楽になった。ただし重い。
  • ユーザー定義関数を作る:Excel VBA|即効テクニック|Excel VBAを学ぶならmoug

    ツイート VBAには、値を返さないSubプロシージャと、値を返すFunctionプロシージャがあります。 Sub Sample1() Dim buf As Long buf = 123 MsgBox Func1(buf) End Sub Function Func1(arg As Long) Func1 = arg * 2 End Function Func1のような、値を返すFunctionプロシージャは、ワークシート上でも使用できます。 ワークシート上で使用することを目的としたFunctionプロシージャを、ユーザー定義関数と呼びます。 たとえば、上記のFunc1は、セルに「=Func1(123)」のように入力することで、SUM関数やVLOOKUP関数などと同じように使うことができます。 引数として数字を受け取るユーザー定義関数は、上記Func1の「(arg As Long)」のように

    teddy-g
    teddy-g 2020/02/13
    ユーザ定義関数のTips色々。オプションの引数とか、不定の引数とか。忘れやすいので。
  • Excelでメール送信~HYPERLINK関数で件名と本文入りメールを送信する

    Excelでメール送信 2013Excel関数技BEST 69回 HYPERLINK関数で社員に同じ内容のメールを送信 前回は、HYPERLINK関数を使って、社員用のメールアドレスにハイパーリンクしてメール送信できるように設定しました。 今回は応用技です。同じ内容のメールを送る場合に便利なように、件名と文が同じ内容のメールを送信できるようにします。 (サンプルファイルは、こちらから 2013関数技69回サンプルデータ) HYPERLINK関数で件名と文入りメールを送信する メールアドレスのリンクをクリックすると、 メールソフトに CC、BCC、件名、文を自動的に入力させることができるようになります。 ただし、これでは、件名と文はコピーで貼り付けなければなりません。どうせなら、それも関数の式に入れてしまいたいものです。

    Excelでメール送信~HYPERLINK関数で件名と本文入りメールを送信する
    teddy-g
    teddy-g 2019/11/11
    HYPERLINK関数でメール送信は簡単にできる。%0aで改行、%09でタブ等の文字操作も可能。但し、リンクの文字列長が256を超えるとエラーになる。
  • 分単位を時間に「〇時間〇分」の形式に変更する | Excel備忘録

    時間の計算は意外の分かりにくかったりします。 分単位で表記されているものを時間の形式に変更してみます。 下図をご覧ください。 A列に分単位の数値を入れてる場合B列のように式を入力します。 =分÷1440 ※この「1440」の数値がどこから出てきたのかというと、 =24(時間)×60(分)=1440 という計算です。 分を1440で割っているので値はC列のような少数表示になります。 これを「セルの書式設定」の「ユーザー定義」で、「標準」のところを下記のように修正します。 [h]"時間"mm"分" すると表示が下図のように変更されます。 5行目は少し極端な数値ですが、このように24時間を超える値がある場合は通常の「h"時間"mm"分"」では表示できませんので、「h」の両サイドにカッコをつけて「[h]"時間"mm"分"」と指定しています。 これは24時間未満の表示でも影響はありません。 秒数を分

    teddy-g
    teddy-g 2019/07/17
    書式設定でhをカッコで囲むと24時間以上の表記にできるとは知らなんだ
  • フィルタで抽出した結果の中からCOUNTIFを使いたい(SUBTOTALではできない) | Excel備忘録

    フィルタで抽出した結果を計算するときにSUBTOTALを使うと思います。 しかしSUBTOTAL内で指定できる集計方法11種類の中にはCOUNTIFがありません。 例えば担当者「A」で抽出した結果の中から特定の商品を指定してカウントしたい、ということがあると思います。 値を出したいものがひとつだけならば、さらに商品の列でフィルタをかければ良いことですが、担当者「A」で絞り込んだときに同時に複数の商品をカウントしたい、という場合には、いちいち商品ごとにフィルタをかけ直すのは面倒ですね。 こういった時に便利な関数です。 下図のように各担当者ごとに商品があります。 COUNTIFで計算すると「みかん6個」「りんご3個」「桃4個」・・・となります。 フィルタで担当者「a」を抽出したとしても、SUBTOTALと違うので、値の結果は変化しません。 これでは計算できませんので、関数を工夫します。 以下の

    teddy-g
    teddy-g 2019/05/28
    オートフィルタを使っても通常COUNTIFはフィルタされた部分もあわせて計算する。SUMPRODUCTとSUBTOTALを組み合わせることで問題解決。