advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 228 for エラー値 #N/A (0.018 sec.)
エラー値 (861), #n/a (1385)
[[20150829175403]]
#score: 10842
@digest: 3a200b3c80cf9fe3713c76332259f559
@id: 68790
@mdate: 2015-09-01T06:16:17Z
@size: 7249
@type: text/plain
#keywords: t1508 (28853), 困憊 (18382), 労困 (18382), 疲労 (15880), 全グ (14608), 一グ (7616), 店1 (7527), (t1 (6579), プ別 (5237), エエ (5064), countifs (4311), グル (3700), 得点 (2871), プ内 (2468), ムリ (2416), 列: (2282), ソー (2245), 意外 (2217), 2015 (2042), 順位 (1884), ープ (1793), 単一 (1676), ルー (1635), スッ (1527), ラン (1473), 降順 (1250), gobgob (1239), 99 (1159), iferror (1143), ッキ (1045), 日) (855), 前提 (848)
『差の出し方』(T1508)
お世話になります。 A列:グループ名 C,H,M...列:数値 E,J,O...列:C,H,M...列の順位(グループ別の) G,L,Q...列:E,J,O...列の1位には2位との差を、2位には3位との差を.. と以下順に表示する G,L,Q...列に関数式を入力したいのですが、同順位があったり「飛び」順位が あるため、うまくいきません。 考え方をご教示願えないでしょうか? 尚、順位は最大で18位まで、全体の行数は10000行程度までです。 < 使用 Excel:Excel2010、使用 OS:Windows7 > ---- 頭を捻らずに理解ができるよう、 そして問題が正確に伝わるよう、 具体的なサンプルを提示してもらえますか? (γ) 2015/08/29(土) 19:36 ---- うまく説明できずにすみません。 A B C D E F G H I J K L 店1 - 43.9 - 4 - - 20 - 8 - - 店1 - 54.5 - 3 - 10.6 135 - 1 - 85 店1 - 23 - 12 - - 50 - 3 - - 店1 - 72.3 - 2 - 17.8 135 - 1 - 85 ("-" は省略です) 例えばですが、1位が2個あれば2位はないので、1位のところは1位と3位の差を表示したいです。 作業列を設ければ何とかなりそうに思うのですが、列数も結構あり今から 手を加えるのも面倒そうなので... (T1508) 2015/08/29(土) 23:22 ---- 首を突っ込んだ手前、何もしないのもどうかと思いコメントしておきます。 A列 B C D 1 グループ 得点 ランク 得点差 2 g1 50 7 #N/A 3 g1 55 6 5 4 g1 60 4 5 5 g1 60 4 5 6 g1 80 2 20 7 g1 80 2 20 8 g1 100 1 20 9 g2 50 7 #N/A 10 g2 58 6 8 11 g2 70 4 12 12 g2 70 4 12 13 g2 80 3 10 14 g2 90 2 10 15 g2 100 1 10 -------------- ランクをどういう式で作成しているのか教えて欲しいですが、 (少なくとも500グループはある計算になるが、手作業なんだろうか。) 以下は、マクロと計算式の折衷案です。 ワークシート関数の達人からの回答を楽しみにしています。 (1)もとの順番をどこかの列に持って置いて(復元のため)、 順序を一時的に変更することを前提にします。 (2)グループ別、得点の昇順(ランクの降順)にソートします。 (3)マクロでグループの最初の行、最後の行を繰り返しで求め、 以下の計算式をD列に書き込みます。 D2: =B2-INDEX($B$2:$B$8,MATCH(C2+1,$C$2:$C$8,-1)) D3: =B3-INDEX($B$2:$B$8,MATCH(C3+1,$C$2:$C$8,-1)) 以下略 (4)エラー値のみジャンプで検出して、クリアー (5)式を値に変換します。(値のみ貼り付け) (6)元の順序に戻します。 実際のコードはどうぞ、そちらで工夫して下さい。 面倒?の丸投げに協力している暇も余りないので。 (γ) 2015/08/30(日) 10:09 ---- γさんありがとうございます。 ランクは「COUNTIFS」で計算させてます。 ただ、提供されるデータに不都合があり、それらは対象外の意味で IF文で「99」にしています。 ご提示の方法は理解できたつもりです。 書かれている手順をマクロ化できればいいわけですが しかしこれはさすがにハードル高く、今の私にはムリ(涙) (いずれは挑戦したいと思ってますが..) 差を求めたい項目が7項目ほどあるのですが、一つマクロできたら それを7個つなげるイメージですかね、マクロは.. INDEX,MATCHでいろいろやってたんですが、関数ではムリっぽいですかね。 もう少しあがいてみることにします... (T1508) 2015/08/30(日) 11:59 ---- ああ、簡単な数式でできましたね。 (1)(2)のソートするところまでは同じ。 (3)のところは、 D2: =IF(A2<>A1,"",IF(B2<>B1,B2-B1,D1)) として下にコピーペイストするだけでした。 あとは、値にして、ソートを元に戻します。 (γ) 2015/08/30(日) 13:37 ---- ありがとうございます。 ソートを前提にしたいろいろな方法を学べました。 他の事例で応用できそうです。 今回はA,B列を共通にC,H,M列...と7項目のデータがあり、 順位はそれぞれ昇順あり降順ありとなっています。 ソート前提だと作業時間が大変そうです。(関数式だけでは) ※説明不足ご容赦ください、ご回答をヒントに何とかなると 勝手に思っていました どうも関数式では“一筋縄”ではいきそうにないような..(涙) マクロを齧り始めましたが、どうなることやら... (T1508) 2015/08/30(日) 22:29 ---- 7項目だけとも言えますね。大したことないです。 同一作業を繰り返し行う可能性があるなら、 マクロ記録をとって、それをマクロにしておけばよいでしょう。 必要なら勉強されることだと思います。頑張ってください。 (γ) 2015/08/30(日) 22:49 ---- G1 =IF(OR(E1="",E1>=LARGE(E:E,COUNTIF(E:E,99)+1)),"",C1-INDEX(C:C,MATCH(COUNTIF(E:E,"<="&E1)+1,E:E,0))) 下にコピー。 G列をコピーして計算する列へコピー。 ってこと? (GobGob) 2015/08/31(月) 15:52 ---- あっ。 グループか。。。 G1 =IF(E1=99,"",IFERROR(C1-SUMIFS(C:C,$A:$A,$A1,E:E,COUNTIFS($A:$A,$A1,E:E,"<="&E1)+1)/COUNTIFS($A:$A,$A1,E:E,COUNTIFS($A:$A,$A1,E:E,"<="&E1)+1),"")) (GobGob) 2015/08/31(月) 16:03 ---- GobGobさん、ありがとうございます。 いやぁ〜、こんなにアッサリとできるもんなんですねぇ.. 私はSUMPRODUCTをひねくってましたが、どうにも... COUNTIFSでこのように“割って引く”ことに思いが到りませんでした。 スッキリして素晴らしい式だとただただ感服しています。 今日は単一グループ内でのマクロ(ソートなし)はできたんですが、 これを全グループ範囲に適用する方法がわからず..疲労困憊です(涙) 実務はご提案の式を使わせていただいて、マクロはまだまだこれからの 課題とします。 これからもよろしくお願いします。 (T1508) 2015/08/31(月) 17:30 ---- 「99」の存在がねぇ。。。 COUNTIFSの結果が「99」のとき、なんか 不具合ありそうなので、 ランクの列は「99」やめて「-」とかにしたほうが いいかもね。(検証してまへん) あと、参考に 配列数式なら G1 =IFERROR(C1-LOOKUP(1,0/(($A$1:$A$99=$A1)*(E$1:E$99=SUMPRODUCT(($A$1:$A$99=$A1)*(E$1:E$99<=E1))+1)),C$1:C$99),"") G1 =IFERROR(C1-LOOKUP(1,0/(($A$1:$A$99=$A1)*(E$1:E$99=COUNTIFS($A$1:$A$99,$A1,E$1:E$99,"<="&E1)+1)),C$1:C$99),"") とか。 ※これも「99」検証してまへん。 (GobGob) 2015/08/31(月) 18:33 ---- よく見たら最大18位なんすね。 なら99気にしなくてエエねw (GobGob) 2015/08/31(月) 18:47 ---- よくよく考えたらランキングされてるんやから G1 =IF(E1=99,"",IFERROR(C1-SUMIFS(C:C,$A:$A,$A1,E:E,E1+COUNTIFS($A:$A,$A1,E:E,E1))/COUNTIFS($A:$A,$A1,E:E,E1+COUNTIFS($A:$A,$A1,E:E,E1)),"")) で、エエかも。 (GobGob) 2015/08/31(月) 23:24 ---- なるほど、言われてみればという感じですね。 参考にさせていただきました。 ところで、 私が提示したのは、ソートさえすれば、 全グループに対してまったく同一の計算式で、 しかも、前の1行との関係だけ見れば算出できるというものでした。 しかるに、 > 今日は単一グループ内でのマクロ(ソートなし)はできたんですが、 > これを全グループ範囲に適用する方法がわからず..疲労困憊です と全く別の方向に進まれたのは意外でしたし、 疲労困憊と言われましてもという感じです。 (γ) 2015/09/01(火) 06:38 ---- GobGobさん、βさん、再度ありがとうございます。 ご提示の式、さらにスッキリしていいですね..勉強になります。 >...と全く別の方向に進まれたのは意外でした... これは失礼しました。 マクロのオートフィルタで手こずりいつのまにか脱線していました。 (当たり前ですが自分以外のせいにしているわけではありません) 時間かかろうと必ずやり遂げるつもりでいますが、“白旗”を挙げた時は 手を差伸べていただきたく...(苦笑) これからもよろしくお願いします。 (T1508) 2015/09/01(火) 15:16 ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/201508/20150829175403.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97044 documents and 608215 words.

訪問者:カウンタValid HTML 4.01 Transitional