お知らせ

現在サイトのリニューアル作業中のため、表示が崩れているページが存在することがあります。
投稿日:ソフトウェア::Excel

いつも使う時に忘れるので自分用の備忘録がてら。組み合わせることでGrep結果の集計とか、ある程度パターン化されているエクセル設計書の集計とかに使える

こんな地獄のような数式使わないに越したことはないと思うんですが、世の中それで済んだらExcelなんて要らないんですよね!

パターンで文字切り出し

A2<hoge>あいうえお</hoge>みたいな文字があるとして

D2<hoge>, E2</hoge>があるとする場合、B2辺りに以下の数式を入れると特定の文字列で囲まれた文字列を切り出せる

=MID(A2,FIND(D$2,A2)+LEN(D$2),(FIND(E$2,A2)-FIND(D$2,A2)-LEN(D$2)))

条件付き書式を複数列反映

D列の値を条件として同一行複数列に書式設定するものとする

条件式で$D1="HOGE"のように列名をロックした式を設定し、範囲をA:Gのようにすると、常にD列を参照した状態で範囲的に設定できる

最初に出現する行位置の特定

=MATCH("hoge",A:A,0)

ワイルドカード

アスタリスクを生やす

=MATCH("*hoge",A:A,0)

セクション行のグルーピング

Grepとかで抜き出した結果をエクセルに貼り付けてグルーピングする時に使えるやつ

これを

Title
C:\Hoge\Foo\Src\Hoge001.txt
100,1: aaaa
101,1: bbb
C:\Hoge\Foo\Src\Hoge002.txt
10,1: aaaa
11,1: bbb
18,8: cccc
...

こうしたい

Title Section
C:\Hoge\Foo\Src\Hoge001.txt Hoge001
100,1: aaaa Hoge001
101,1: bbb Hoge001
C:\Hoge\Foo\Src\Hoge002.txt Hoge002
10,1: aaaa Hoge002
11,1: bbb Hoge002
18,8: cccc Hoge002
... ...

手法

Sectionを抜く列を作る

B2だけは決め打ちで2を入れておき、B3以降に設定

=IF(ISERROR(FIND(E$2,A3)),B2,ROW())

Section名を抜く列を作る

C2以降に設定、タイトル行ならD2E2の値を元にA列の内容を切り出し、タイトル行でなければB列の値を行番号とし、C列の行を当てに行くロジック

=IF(ISERROR(FIND(D$2,A2)),INDIRECT("C"&B2),MID(A2,FIND(D$2,A2)+LEN(D$2),(FIND(E$2,A2)-FIND(D$2,A2)-LEN(D$2))))

複数条件でのCOUNTIF

COUNTIF()で複数条件を実現するには文字列結合した列を作る事があると思いますが、COUNTIFS()ならその必要はない

=COUNTIFS(条件列1, 条件1, 条件列2, 条件2, ...)

便利関数メモ

よく使うやつ

  • IF(), AND(), OR(), NOT()
    • 条件分岐でよく使う
  • SUM()
    • 集計用。SUMIFS()はあんま使ったことない
  • COUNTIF(), COUNTIFS()
    • 条件付き集計
  • COUNT(), COUNTA(), COUNTBLANK()
    • 個数カウント
  • VLOOKUP(), MATCH()
    • 検索用
  • ADDRESS(), INDIRECT(), INDEX()
    • MATCH()結果からセルを当てる時に有用
    • INDIRECT()はシート名を書いておくとシート名の変更時に追従しやすい(その際シート名管理用のセルをどっかに作っておく)
  • FIND(), LEN(),MID()
    • 文字列切り出しの鉄板

まれに使うやつ

  • DATEDIF()

    • DATEの差分がINTで取れる便利な子
投稿日:その他::ドコモ口座ジャンル::生活

台風で財布が虚空へ舞ってしまい、現金とキャッシュカードを失い駐輪場から自転車が出せなくなりかけた管理人です。そんな最中、今回はスマホで口座預金を引き出す方法を見つけたので簡単に紹介します。三井住友銀行の場合、キャッシュカードの停止手続きをしてても引き出せました。

どんなときに有用か?

何かしらの事情で財布がなくなったときに非常に使えると思います。スマホまでなくなっている場合は知りませんが...。

利用できる金融機関

2019/10/16現在、この方法を利用できる金融機関の一覧です。

手順

ドコモ口座を作る

ドコモ口座はセブンイレブンとスマホさえあればATMから現金を引き出せるサービスです。

ドコモ口座

銀行口座からドコモ口座へ入金する

次のリンクにある手順で銀行口座からドコモ口座へ入金できます。

銀行口座からチャージ

セブンイレブンで出金

出金時に出金手数料として税抜200円が口座から引かれるので、口座に2000円以上入れておかないと引き出せないと思います。

スマホを持ってATMを設置しているセブンイレブンへ行き、次のリンクにある手順で出金します。

銀行口座で払い出し

投稿日:ジャンル::ガジェット

今回はエレキギターを買ってみました。いきなり唐突だなぁという感じですが、私もそう思います。取り敢えず今回はお買い物レポートです。

購入動機

ここ最近一年弱ですがバンドリ関係をちょこちょこ漁っていて、なんとバンドリとESPがコラボしてギターを出しているという情報を目にして以来、気が気でないと言うか、その事ばかり考えていたら電柱に頭をぶつけたり、寝るに寝れなかったり、実生活に悪影響が出てきたので、天啓と思い買ってみた次第です。つまりよくわかりません。要するに管理人はアホなんですね。

因みにこれまでに楽器経験はなく、楽譜は読めないし、DTMもやったことないです。

購入モデル

ESPがリリースしているBanG Dream! M-II SAYOというモデルで、実売価格は税込60kほど。流石に楽器だけあり値が張りますが一応これでもコストダウンモデルで、劇中再現モデルであるESP M-II ROSELIA SAYOは税込520kほどと、桁が変わります。

劇中モデルの方は、実際のライブで使われている機材と同一品らしいので、高価なのも頷けます。

因みにポピパとRoseliaのギター、ベースはESP全部出してます。ドラムセットやキーボードは多分ないと思われる。

参考写真

開封の儀で撮影したものですが、参考程度に。

同時に買ったもの

ギターだけ買えば使えるとは思ってなかったので、必要なものを幾らか買っています。

ピック

ギターを弾くためのアイテムですね。必須アイテムだと思うのですが、まだ届いてません。

ESPから出てる氷川紗夜のピックです。

【10 枚セット】ESP× バンドリ! BanG Dream! ガールズバンドパーティ! GBP Sayo 2 Roselia 氷川紗夜 ギター ピック

チューナ

音の高低をチューニングするのに使います。ギターは弾いたり動かしたりするとチューニングが狂うそうなので必要です。

NEUMAのNCT-20というクリップチューナーです。死ぬほど怪しいんですが多分使えると思います。音感がないので正直まだよくわからないですが、取り敢えず安いです。

スタンド

転倒や破損防止に必要です。床においてると踏むし、壁に立て掛けてるとネックが曲がるということなので。

キクタニのGS-101Bというのにしました。安くて省スペースなので、悪くなさそうです。

シールド

エレキギター単体では音が出ないので、アンプなどにつなぐために必要です。

Syncwireのシールドにしました。怪しさ満点ですが、取り敢えず仕事はしてくれています。シールドの素材は結構頑丈そうに見えます。

入門書

折角楽器を買ったのですから、演奏できるようにしたいですよね。

リットーミュージックからバンドリ! ではじめるエレキ・ギターです。アニメの一期を見たあとに読むと、かなり読みやすく捗ると思います。

元から持っていたもの

エレキギターを使うに当たり必要だけど、持っているため特に買わなかったものです。

オーディオインターフェース

アンプの代わりです。PCに音声入力したり出力するユニット。

Roland Rubix22。元々はサウンドカードの代わりに使っていたものを今回アンプの代用として使用。付属のDAWソフトを入れればギターの音が聴けます。

ヘッドホン

賃貸でスピーカーはちょっとないですからね…。

SONY MDR-CD900ST。遥か太古の昔、今は亡き友人に勧められてずっと使ってるやつです。今こそレコーディングするとき!

投稿日:言語::C#.NET

なぜこんな実装が必要なのかさっぱり不明ですが、必要になって困ったのでメモ。

DataTableを内部結合したList<Dictionary>をLINQで作る

var loc = new DataTable();
var pep = new DataTable();
loc.Columns.Add("ID");
loc.Columns.Add("LOCATION");
loc.Columns.Add("DELETE_FLG");
loc.Rows.Add("100", "US", "0");
loc.Rows.Add("101", "AU", "1");
loc.Rows.Add("102", "JP", "1");
loc.Rows.Add("103", "CH", "1");
loc.Rows.Add("104", "UK", "1");
loc.Rows.Add("105", "RU", "1");

pep.Columns.Add("LOCATION_ID");
pep.Columns.Add("NAME");
pep.Columns.Add("DELETE_FLG");
pep.Rows.Add("100", "TAKANA", "0");
pep.Rows.Add("101", "YAKATA", "1");
pep.Rows.Add("100", "WADA", "1");
pep.Rows.Add("101", "SHINODA", "1");
pep.Rows.Add("100", "HARUKA", "1");
pep.Rows.Add("105", "SAIONJI", "0");


var result = (
    from l in loc.AsEnumerable()
    join p in pep.AsEnumerable()
    on new {
        a = l.Field<string>("ID"),
        b = l.Field<string>("DELETE_FLG")
    } equals new {
        a = p.Field<string>("LOCATION_ID"),
        b = p.Field<string>("DELETE_FLG")
    }
    select new Dictionary<string, string> {
        {
            "LOCATION_ID",
            l.Field<string>("ID")
        },
        {
            "NAME",
            p.Field<string>("NAME")
        }
    }
).ToList();

List<Dictionary>DataTableを外部結合してList<Dictionary>を操作する

var location = new List<Dictionary<string, string>>();
var fruits = new DataTable();

location.Add(
    new Dictionary<string, string> {
        {
            "ID",
            "001"
        },
        {
            "NAME",
            "Hokkaido"
        }
    }
);
location.Add(
    new Dictionary<string, string> {
        {
            "ID",
            "002"
        },
        {
            "NAME",
            "Aomori"
        }
    }
);
location.Add(
    new Dictionary<string, string> {
        {
            "ID",
            "003"
        },
        {
            "NAME",
            "Iwate"
        }
    }
);

fruits.Columns.Add("LOCATION_ID");
fruits.Columns.Add("NAME");
fruits.Columns.Add("FRUITS_FLG");
fruits.Rows.Add("001", "ikura", "1");
fruits.Rows.Add("001", "uni", "1");
fruits.Rows.Add("002", "ringo", "0");

// dummyは処置待ち用のダミー。locationの操作が目的
var dummy = location
    .Join(
        fruits.AsEnumerable()
        , loc => loc["ID"]
        , fruit => fruit.Field<string>("LOCATION_ID")
        , (loc, fruit) => new { lo = loc, fru = fruit }
    )
    .Select(
        joined => {
            joined.lo["FRUITS_NAME"] = joined.fru.Field<string>("NAME");
            joined.lo["FRUITS_FLG"] = joined.fru.Field<string>("FRUITS_FLG");
            return new Dictionary<string, string>();
        }
    )
    .ToList();

この記事はCooler Master MasterCase H500M付属のARGBコントローラーをAURA SYNCで制御するための情報です。多分RGB FusionとかMystic Lightでも同様に可能だと思います。

概要

AURA SYNCが使えるか不明なだったので調べてみました。
取り敢えず付属のマニュアルは役に立ちませんね。

マニュアル
マニュアル

SATAケーブルを挿しただけではARGBケーブルのハブとしてしか機能しません。

結論から言うとUSBを刺さないとマザボからのARGB制御が通りません。

なお、この事はマニュアルに一切書かれていません。

利用手順

既にH500M付属のARGBコントローラがH500Mに装着されており、ARGBデバイスのライトニングに利用されている前提で話を進めます。

マザーボードにH500M付属のMicroUSBケーブルを接続する

付属のMicroUSBケーブルを無くした人は市販品でも特に問題ないと思います。

ARGBコントローラーにMicroUSBケーブルを接続する

電源ケーブルカバーからARGBコントローラーを外して先程のMicroUSBケーブルを接続します。取り付けたままでは刺さりません。

ARGBコントローラーを電源ケーブルカバーに戻す

そのまま戻してもケーブルが収まらないので、適当に収まるようにします。この時SATAケーブルを抜いたまま進めると後で一手間減ります。

MasterPlus+のインストール

MasterPlus+のダウンロードページからダウンロードします。Download (V803) とか書いてあるボタンです。見辛いので注意してください。

なんでそんなものが...?と思うのですが、つべこべ言わずに入れます。

ファームウェアのインストールやMasterPlus+の設定

ARGBコントローラーとマザーボードがMicroUSBを介して接続されていないとMasterPlus+がエラーを吐くことがあります。

インストールウィザードを適当に進めてたら勝手にファームウェアアップデータが起動すると思いますが、起動していなかったらMasterPlus+を起動することで起動します。

ファームウェアのインストール

H500M FirmwareのInstallにチェックを入れて進めます。

何故かH500Mのダウンロードページに転がってるファームウェアより新しいです。いかにもクラマスクオリティという感じがしますね。

この画面が出てきたらARGBコントローラーからSATAケーブルを抜き、マザーボードからMicroUSBケーブルを抜き、次へ進みます。

次の画面でUSBを繋げと出るのでMicroUSBケーブルを繋ぎ、次へ進むとファームウェアのインストールが終わります。

インストールが完了したらこんな画面が出てくると思うので、ARGBコントローラーにSATAケーブルを繋ぎます。

MasterPlus+の設定

その後は下図のように画面を操作し、マザーボードを選ぶことでマザーボードからのARGB制御(AURA SYNC)が通るようになります。

連動確認

AURA SYNC側でなんか適当に設定して設定どおりに光れば成功です。これは解りやすくするため意図的に単色にしてあります。

これはAURA SYNCでレインボー設定したもの。

トラブルシューティング

MasterPlus+がエラーを吐く

ARGBコントローラーとマザーボードがMicroUSBで接続されていること、ファームウェアがインストール出来ていることを確認出来ればでなくなると思います。タブン。

エラーが見切れて読めませんが、恐らく互換性に問題があるとでも言っているのでしょう。

謝辞

本記事を執筆するに当たりohdongwon氏のYoutubeを参考にさせて頂きました。情報公開ありがとうございます。

https://www.youtube.com/watch?v=U4xsVpPi3xA

この動画説明にはちょっと笑ってしまいましたが、言っていることは正しくその通りですね...w

Please Install Fucking LightingControl !!
Hey Cooler Master. Write that H500M Manual !!!!