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.
訪問者: