I am new to excel, I know only basic excel formulas, so how can i achieve the following result which i want and mentioned below?

[i have multiple excel workbook files with the same format, like column A1:A2-” payer id “,column B1:B2-“payer name”,column C1:D1-“payments”,column C2-cash payment,column D2-Credit payment. Each excel workbook gives different month payers & their payments. and the payers also repeated in the different month workbooks and new payers may also added in the consecutive months and previous payers may also not involved in the consecutive months(consecutive months means separate excel workbooks). Now finally what i want is, i want a new workbook which has unique payers(i.e not repeated) who are involved in the total 12-months and their cash payments total and credit payments total separately(i.e sum of 12 month cash & Credit payments separably like previous format. and the following details also i want please refer the attached image.,And please try to do this without VBA & If it take more time please explain it and go to VBA…. Please answer me as soon as possible. I am waiting for your valuable answers!! enter image description here

What are the basic differences between BTC ,LTC and BTG?

What are the basic differences between BTC ,LTC and BTG? What are the advantages and disadvantages of these basic differences? Do these disadvantages (advantages ) weaken (strengthen ) the basic principles of BLOCKCHAIN which we have belived in and excited (decentralization, Consensus Concept, low fees, high security , transparency …) ? i wish to get clear answers to these questions, especially from the members who have experienced the Bitcoin technology since its inception and They have knew the precise details of the conditions that led to appearance of LTC & BTG .

c# console Snake game basic movement

I have created a small c# snake game. It has no gameover case and no collision with corners and itself. Has a bug. As snake gets longer, it seems to disappear(having some buggy kind of transparency). Please take a look. Any suggestions and critic is very wanted.

Program.cs

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Threading; using static System.Console;  namespace Snake {     class Program     {         static void Main(string[] args)         {             int speed = 50;              Snake snake = new Snake(speed);             Feed feed = new Feed();              Start(snake, feed);         }         static void Start(Snake snake, Feed feed)         {             bool exit = false;             feed.Draw();              while (exit == false)             {                 snake.Draw(false);                 GetDirection(snake, ref exit);                 snake.MoveHead();                 snake.CheckCollision(feed);                 snake.MoveBody();                  if (snake.HasCollision == true)                 {                     snake.IncreaseLen();                     feed.ChangePos(snake);                     feed.Draw();                 }                 snake.Draw();                 Thread.Sleep(                     snake.Speed                 );             }         }         static void GetDirection(Snake snake, ref bool exit)         {             bool dirIsHoriz = snake.Direction % 2 == 0;              while (KeyAvailable)             {                 ConsoleKey key = ReadKey(true).Key;                 switch (key)                 {                     case ConsoleKey.LeftArrow:                         if(!dirIsHoriz)                             snake.Direction = 0;                         break;                      case ConsoleKey.UpArrow:                         if (dirIsHoriz)                             snake.Direction = 1;                         break;                      case ConsoleKey.RightArrow:                         if (!dirIsHoriz)                             snake.Direction = 2;                         break;                      case ConsoleKey.DownArrow:                         if (dirIsHoriz)                             snake.Direction = 3;                         break;                      case ConsoleKey.Escape:                         exit = true;                         break;                      default: break;                 }             }         }     } } 

Point.cs

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using static System.Console;  namespace Snake {     class Point     {         int x;         int y;         ConsoleColor color;          public int X         {             get => x;             set             {                 if(value > 0 && value < WindowWidth)                     x = value;             }         }         public int Y         {             get => y;             set             {                 if (value > 0 && value < WindowHeight)                     y = value;             }         }         public ConsoleColor Color         {             get => color;             set => color = value;         }          public Point()         {             X = WindowWidth / 2;             Y = WindowHeight / 2;             Color = (ConsoleColor)7;         }         public Point(int x, int y, int color = 7)         {             X = x;             Y = y;             Color = (ConsoleColor)color;         }          public void Draw(bool draw = true)         {             BackgroundColor = Color;             SetCursorPosition(X, Y);              if (draw)                 Write(' ');             else             {                 BackgroundColor = 0;                 Write(' ');             }              //WriteLine(this);         }          public override string ToString()         {             return X + "\t" + Y + "\t" + Color;         }          public override int GetHashCode()         {             return ToString().GetHashCode();         }          public override bool Equals(object obj)         {             if (obj is Point)             {                 Point obj1 = obj as Point;                 return obj.GetHashCode() == obj1.GetHashCode();             }             return false;         }     } } 

Snake.cs

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Threading; using static System.Console;  namespace Snake {     class Snake     {         public Point[] Body = new Point[WindowWidth * WindowHeight];         int direction;         int speed;         int length;         bool hasCollision = false;          public Point this[int index]         {             get => Body[index];         }         Point PrevPos{ get; set; }          public int Direction         {             get => direction;             set             {                 if (value > -1 && value < 4)                     direction = value;             }         }         public int Speed         {             get => speed;             set             {                 if (value > 0 && value <= 1000)                     speed = value;             }         }         public int Length         {             get => length;             set             {                 if (value > 0)                     length = value;             }         }         public bool HasCollision         {             get => hasCollision;             set => hasCollision = value;         }          public Snake(int speed)         {             Point item = new Point(WindowWidth / 2, WindowHeight / 2, 12);             Body[Length] = item;             Length++;             Body[Length] = new Point(item.X + Length, item.Y);             Length++;             Speed = speed;         }          public void Draw(bool draw = true)         {             HasCollision = false;             for (int i = 0; i < Length; i++)             {                 Body[i].Draw(draw);             }         }          public void MoveHead()         {             Point Head = Body[0];             Point Tail = Body[Length - 1];             PrevPos = new Point(Head.X, Head.Y);              switch (Direction)             {                 case 0:                     Head.X--;                     break;                  case 1:                     Head.Y--;                     break;                  case 2:                     Head.X++;                     break;                  case 3:                     Head.Y++;                     break;                  default: break;             }         }         public void CheckCollision(Feed feed)         {             if (Body[0].X == feed.X &&                 Body[0].Y == feed.Y)             {                 HasCollision = true;             }         }         public void IncreaseLen()         {             Point Tail = Body[Length - 1];             int x = 0;             int y = 0;             switch (Direction)             {                 case 0:                     x = Tail.X + 1;                     y = Tail.Y;                     break;                  case 1:                     x = Tail.X;                     y = Tail.Y + 1;                     break;                  case 2:                     x = Tail.X - 1;                     y = Tail.Y;                     break;                  case 3:                     x = Tail.X;                     y = Tail.Y - 1;                     break;                  default: break;             }             Body[Length] = new Point(x, y);             Length++;             Speed--;         }         public void MoveBody()         {             for (int i = 1; i < Length; i++)             {                 int tmpX = Body[i].X;                 int tmpY = Body[i].Y;                 Point bodyItem = Body[i];                  bodyItem.X = PrevPos.X;                 bodyItem.Y = PrevPos.Y;                  PrevPos.X = tmpX;                 PrevPos.Y = tmpY;             }         }          public override string ToString()         {             return Body + "\t" +                    PrevPos + "\t" +                    Speed + "\t" +                    Direction + "\t" +                    Length + "\t" +                    HasCollision;         }         public override int GetHashCode()         {             return ToString().GetHashCode();         }         public override bool Equals(object obj)         {             if (obj is Snake)             {                 Snake obj1 = obj as Snake;                 return obj1.Equals(obj);             }             return false;         }     } } 

Feed.cs

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using static System.Console;  namespace Snake {     class Feed : Point     {         public Feed()         {             X = WindowWidth / 3 + 10;             Y = WindowHeight / 3 - 10;             Color = (ConsoleColor)10;         }         public void ChangePos(Snake snake)         {             Random rnd = new Random();             X = rnd.Next(0, WindowWidth + 1);             Y = rnd.Next(0, WindowHeight + 1);             bool posIsCorrect = true;             for(int i = 0; i < snake.Length; i++)             {                 if (X == snake.Body[i].X && Y == snake.Body[i].Y)                     posIsCorrect = false;             }             if (posIsCorrect)                 return;             ChangePos(snake);         }     } }