Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 11 Home : Microsoft 365)
PIVOTBY関数で0を入れたい
投稿日時: 26/07/18 09:41:58
投稿者: toma100

こんにちは、よろしくお願いいたします
 
PIVOTBY関数で、データがないところには「0」としたいのですが
空白で表示されます。
0をいれるにはどうしたらよいでしょうか?
 
名前    色    金額
A    赤    500
B    ピンク    1000
A    ピンク    1000
A    赤    500
C    赤    1500
 
のデータを「=PIVOTBY(A1:A6,B1:B6,C1:C6,SUM)」と
数式を作成すると
 
 
    ピンク    赤    合計
A    1000    1000    2000
B    1000        1000
C        1500    1500
合計    2000    2500    4500
 
となりますが、そこに「0」を入れたいです。
IFERROR関数に組み合わせて「空白だった場合」とするしか方法は
ないでしょうか?
 
 

回答
投稿日時: 26/07/19 06:52:06
投稿者: んなっと

最初の(左上の)セルの空白はそのまま、それ以外の空白は0に変換
 
    ピンク  赤 合計
  A  1000 1000 2000
  B  1000   0 1000
  C    0 1500 1500
合計  2000 2500 4500
 
=SCAN("",PIVOTBY(A2:A6,B2:B6,C2:C6,SUM),LAMBDA(s,t,IF((s<>"")*(t=""),0,t)))

回答
投稿日時: 26/07/19 13:53:34
投稿者: んなっと

ちなみに

引用:
IFERROR関数に組み合わせて「空白だった場合」とする

→IF関数に組み合わせて「空白だった場合」とする として作成すると、
最初のセルも0になってしまいます。失敗。
 
  0  ピンク  赤 合計
  A  1000 1000 2000
  B  1000   0 1000
  C    0 1500 1500
合計  2000 2500 4500
 
=LET(a,PIVOTBY(A2:A6,B2:B6,C2:C6,SUM),IF(a="",0,a))

回答
投稿日時: 26/07/19 14:47:18
投稿者: んなっと

最初の式はこれでもOK
 
=SCAN(NA(),PIVOTBY(A2:A6,B2:B6,C2:C6,SUM),LAMBDA(s,t,IF(ISNA(s)+(t<>""),t,0)))

投稿日時: 26/07/20 10:14:34
投稿者: toma100

んなっと様!!
 
ご返信遅くなって申し訳ございません!
いつもありがとうございます。
 
SCANとLAMBDAは難しいので
=LET(a,PIVOTBY(A2:A6,B2:B6,C2:C6,SUM),IF(a="",0,a))
を使うことにしました
でできました!!!
ありがとうございました(>_<)