6/01/2022

Excel。HSTACK関数は、手早く列ごとに抽出することができます。【HSTACK】

Excel。HSTACK関数は、手早く列ごとに抽出することができます。

<HSTACK関数>

2022年3月に追加された、「HSTACK関数」

表から、必要な列だけを抽出して、別の表を手早くつくることができる便利な関数です。


まずは、どのような構文なのかを確認しておきましょう。

HSTACK関数

読み方: エイチスタック

分類: 検索/行列 

HSTACK(array1,[array2],…)


次にどのように使うのかを確認します。

A1:E7に3年分のデータが用意されています。


 上記の表から、2023年だけを抽出した、新たな表を作りたいときに、HSTACK関数を使用すると手早くつくることができます。


A11に次の数式を設定します。

=HSTACK(A2:B7,E2:E7)


A2:B7とE2:E7を設定するだけです。


この程度の表の大きさならば、コピーペーストのほうが早いかもしれませんが、この列とこの列とこの列と…というようにアチコチから列を持ってきたい時には、このHSTACK関数をつかうことで、手早くつくることができます。


今回新しく加わった関数は、使えるものが多いようですので、色々試してみると、日頃の作業が改善できるものがあるかもしれませんね。

5/31/2022

Excel。BYCOL関数は、ラムダ関数を各列に適用し結果の配列を返します【BYCOL】

Excel。BYCOL関数は、ラムダ関数を各列に適用し結果の配列を返します

<関数辞典:BYCOL関数>

BYCOL関数

読み方: バイカラム

読み方: ビーワイカラム

分類: 論理 

BYCOL(array,[function])

ラムダ関数を各列に適用し、結果の配列を返す

5/30/2022

Excel。VBA。条件と合致した行全体を手早く塗りつぶしたい。【Interior】

Excel。VBA。条件と合致した行全体を手早く塗りつぶしたい。

<Excel VBA:Interior>

データを読み込んだ後に、毎回同じ設定をするのは、意外と面倒です。


やりたい作業は、販売数が80以上のデータがある行全体を塗りつぶしたいわけです。


条件付き書式をつかって、数式で「=$D2>=80」として塗りつぶしを設定すればいいだけなのですが、データを読み込むたびに設定するのは、大変です。


そこで、Excel VBAでプログラムをつくって対応することにしましょう。

次のようにプログラムを書いてみました。


Sub 行塗りつぶし()

    Dim i As Long

    Dim lastrow As Long

    lastrow = Cells(Rows.Count, "a").End(xlUp).Row

    

    For i = 2 To lastrow

        If Cells(i, "d") >= 80 Then

            With Range(Cells(i, "a"), Cells(i, "f")).Interior

                .ThemeColor = xlThemeColorAccent1

                .TintAndShade = 0.8

            End With

        End If

    Next

End Sub


とりあえず、実行して確認してみましょう。


このように、販売数が、80以上のデータがある行全体を塗りつぶすことができました。


では、プログラム文を確認しておきましょう。

お馴染みの変数宣言ですね。

Dim i As Long

Dim lastrow As Long


lastrow = Cells(Rows.Count, "a").End(xlUp).Row


変数名のlastrowは、データ件数を入れるための変数です。

データ件数繰り返したいので、用意しました。


For i = 2 To lastrow

    If Cells(i, "d") >= 80 Then

        With Range(Cells(i, "a"), Cells(i, "f")).Interior

            .ThemeColor = xlThemeColorAccent1

            .TintAndShade = 0.8

        End With

    End If

Next


For To Nextはデータ件数分繰り返し処理をしています。


If~End Ifは、販売数が80以上だったらという条件で、処理を振り分けています。


With~End Withは、80以上のデータだった場合、行全体を塗りつぶす処理をしています。

「Range(Cells(i, "a"), Cells(i, "f")).Interior」を繰り返し入力するのは、これまた面倒なので、With文をつかって、繰り返し入力する作業を減らしています。


Interiorプロパティをつかうことで、塗りつぶしすることができます。


「ThemeColor = xlThemeColorAccent1」と「TintAndShade = 0.8」ですが、これはテーマの色を設定しています。

この2つは何を意味しているのかというと、カラーパレットを見れば、一目瞭然です。


テーマカラーは、Accent1で、「0.8」すなわち、80%なので、「青、アクセント1 白+基本色80%」で、セルを塗りつぶすように指示しているわけです。


条件付き書式を設定するのもいいですが、何度も同じことをするようでしたら、Excel VBAでプログラムをつくってしまうというのも、作業効率の面から見ても、いいかもしれませんね。

5/29/2022

Excel。今週のFacebookページの投稿 2022/5/23-2022/5/29【Trivia】

Excel。今週のFacebookページの投稿 2022/5/23-2022/5/29

<Facebookページ>

Facebookページで【書いてみた】Excelの豆知識(Trivia)です。

5月23日

Excel。

COVARIANCE.P関数

読み方は、コバリアンス・ピーで、2組のデータの母共分散を算出します



5月24日

Excel。

COVARIANCE.S関数

読み方は、コバリアンス・エスで、2組のデータの共分散を算出します



5月25日

Excel。

CRITBINOM関数

読み方は、クリテリアバイノムで、累計二項分布が基準値以上になる最小値を算出します



5月26日

Excel。

CSC関数

読み方は、コセカントで、角度の余割を算出します



5月27日

Excel。

CUBEKPIMEMBER関数

読み方は、キューブケーピーアイメンバーで、主要業績評価指標(KPI)を返します



5月28日

Excel。

CUBEMEMBER関数

読み方は、キューブメンバーで、キューブからメンバーまたは組を返します



5月29日

Excel。

CUBEMEMBERPROPERTY関数

読み方は、キューブメンバープロパティで、キューブからメンバーのプロパティの値を返します

5/28/2022

Excel。BITXOR関数は、排他的論理和を算出します。【BITXOR】

Excel。BITXOR関数は、排他的論理和を算出します。

<関数辞典:BITXOR関数>

BITXOR関数

読み方: ビットエックスオア

読み方: ビットエクスクルーシブオア


分類: エンジニアリング 


BITXOR(数値1,数値2)

BITXOR関数

排他的論理和を算出する 

5/27/2022

Access。クエリ。データの上位25%の降順リストを手早くつくりたい【Top 25%】

Access。クエリ。データの上位25%の降順リストを手早くつくりたい

<トップ値>

Excel以上にAccessは大きな大量のデータをつかって、集計や抽出を行うことが多いようです。


そこで、TOP10とかではなくて、全体のうち、上位25%のデータを降順で手早く、抽出したい場合、どのようにしたらいいでしょうか。


テーブルを用意しました。


このテーブルから、商品別の売上高合計金額が、上位25%に該当する降順のクエリをつくっていきます。


作成タブのクエリデザインをクリックします。


 

デザインビューにかわりますので、必要なフィールドを設定します。


売上高の並べ替え設定を「降順」にしておきます。


初期のままだと、商品名ごとと、「グループ化」することができませんので、クエリデザインタブにある「集計」をクリックして、集計行を追加します。


グループ化したい、商品名フィールドの集計は、「グループ化」と設定します。


合算値を算出したい売上高フィールドの集計には「合計」と設定します。


ここまでの状況を確認しますので、データシートビューで確認します。


次に「売上高の合計」の上位25%に抽出する作業をしていきますので、デザインビューに移動します。


クエリデザインタブの「プロパティシート」をクリックして、プロパティシート作業ウィンドウを表示します。


「トップ値」に「25%」と設定します。


あとは、クエリ名をつけて、完成です。

それでは、データシートビューで確認します。


このように、上位25%のデータのみにすることができました。


プロパティシートの中にあるということで、なかなか使う機会はないかもしれませんが、トップ値をつかうことで、色々なデータを抽出することができますよ。

5/26/2022

Excel。EXPAND関数をつかえば、表からのセル参照を手早く設定できます。【EXPAND】

Excel。EXPAND関数をつかえば、表からのセル参照を手早く設定できます。

<EXPAND関数>

2022年3月に追加された、「EXPAND関数」。

新しく加わった14個の関数の中で、イマイチという感じもしますが、大きな表を基にしたセル参照などでは、使い勝手がいい関数といえます。


EXPAND関数の基本情報から確認しておきます。

EXPAND関数

読み方: エクスパンド

分類: 検索/行列

引数は、

EXPAND(array,rows,[columns],[pad_with])

配列を指定した行数列数に展開または埋め込むことができます。

1番目の引数「array」は、配列。範囲のことですね。

2番目の引数「rows」は、行

3番目の引数「columns」は、列

4番目の引数「pad_with」は、埋め込みに使用する値


説明用に次の表を用意しました。


A9には、EXPAND関数をつかった数式を設定しました。

=EXPAND(A2:C5,,)


この関数も「スピル機能」が動くので、自動的に数式が拡張されます。

設定すると、A2:C5までの値を参照して表示してくれます。


C2:C5にデータを入力してみます。


「=セル番地」のセル参照のように、数値が表示されました。


さて、ここからがEXPAND関数の本領発揮。

D2:E5までも同じように、セル参照をするとしたら、「=C2」のようなセル参照の数式をオートフィルでコピーするはずです。


ただ、表が大きな場合、オートフィルで数式をコピーする作業は単純ではありますが、面倒です。


そこで、A9に設定した、EXPAND関数を次のように修正してみます。


=EXPAND(A2:E5,,)


C5をE5に修正しただけで、自動的にセル参照が拡張することができました。


もっと便利な使い方がありそうなので、色々探ってみると面白い関数なのかもしれませんね。